diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md
index 8c24e6af52..c270d78354 100644
--- a/.github/ISSUE_TEMPLATE/feature_request.md
+++ b/.github/ISSUE_TEMPLATE/feature_request.md
@@ -1,6 +1,6 @@
---
name: Feature request
-about: Suggest an idea for this project
+about: Do not make a new issue for feature requests! Instead, post it on FeatHub, see the README.
---
diff --git a/README.md b/README.md
index 555f3b3e09..2f0cab8ff3 100644
--- a/README.md
+++ b/README.md
@@ -17,7 +17,7 @@ See [CONTRIBUTING](CONTRIBUTING.md).
Bleeding-edge live builds are generated automatically for every commit. You can see them [here](https://github.com/Anuken/MindustryBuilds/releases). Old builds might still be on [jenkins](https://jenkins.hellomouse.net/job/mindustry/).
If you'd rather compile on your own, follow these instructions.
-First, make sure you have [Java 8](https://www.java.com/en/download/) and [JDK 8](https://adoptopenjdk.net/) installed. Open a terminal in the root directory, `cd` to the Mindustry folder and run the following commands:
+First, make sure you have [JDK 8](https://adoptopenjdk.net/) installed. Open a terminal in the root directory, `cd` to the Mindustry folder and run the following commands:
#### Windows
@@ -49,11 +49,6 @@ If the terminal returns `Permission denied` or `Command not found` on Mac/Linux,
Gradle may take up to several minutes to download files. Be patient.
After building, the output .JAR file should be in `/desktop/build/libs/Mindustry.jar` for desktop builds, and in `/server/build/libs/server-release.jar` for server builds.
-### Feature Requests
-
-[](https://feathub.com/Anuken/Mindustry)
-
-
### Downloads
[
](https://f-droid.org/packages/io.anuke.mindustry/)
+
+### Feature Requests
+
+[](https://feathub.com/Anuken/Mindustry)
diff --git a/core/assets-raw/sprites/blocks/production/liquid-void.png b/core/assets-raw/sprites/blocks/production/liquid-void.png
new file mode 100644
index 0000000000..cd81df317d
Binary files /dev/null and b/core/assets-raw/sprites/blocks/production/liquid-void.png differ
diff --git a/core/assets/bundles/bundle.properties b/core/assets/bundles/bundle.properties
index 162f8b7307..1660a34d7c 100644
--- a/core/assets/bundles/bundle.properties
+++ b/core/assets/bundles/bundle.properties
@@ -29,6 +29,13 @@ load.system = System
load.mod = Mods
load.scripts = Scripts
+be.update = A new Bleeding Edge build is available:
+be.update.confirm = Download it and restart now?
+be.updating = Updating...
+be.ignore = Ignore
+be.noupdates = No updates found.
+be.check = Check for updates
+
schematic = Schematic
schematic.add = Save Schematic...
schematics = Schematics
@@ -148,6 +155,7 @@ server.kicked.nameEmpty = Your chosen name is invalid.
server.kicked.idInUse = You are already on this server! Connecting with two accounts is not permitted.
server.kicked.customClient = This server does not support custom builds. Download an official version.
server.kicked.gameover = Game over!
+server.kicked.serverRestarting = The server is restarting.
server.versions = Your version:[accent] {0}[]\nServer version:[accent] {1}[]
host.info = The [accent]host[] button hosts a server on port [scarlet]6567[]. \nAnybody on the same [lightgray]wifi or local network[] should be able to see your server in their server list.\n\nIf you want people to be able to connect from anywhere by IP, [accent]port forwarding[] is required.\n\n[lightgray]Note: If someone is experiencing trouble connecting to your LAN game, make sure you have allowed Mindustry access to your local network in your firewall settings. Note that public networks sometimes do not allow server discovery.
join.info = Here, you can enter a [accent]server IP[] to connect to, or discover [accent]local network[] servers to connect to.\nBoth LAN and WAN multiplayer is supported.\n\n[lightgray]Note: There is no automatic global server list; if you want to connect to someone by IP, you would need to ask the host for their IP.
@@ -635,6 +643,7 @@ setting.screenshake.name = Screen Shake
setting.effects.name = Display Effects
setting.destroyedblocks.name = Display Destroyed Blocks
setting.conveyorpathfinding.name = Conveyor Placement Pathfinding
+setting.coreselect.name = Allow Schematic Cores
setting.sensitivity.name = Controller Sensitivity
setting.saveinterval.name = Save Interval
setting.seconds = {0} seconds
@@ -658,6 +667,7 @@ setting.savecreate.name = Auto-Create Saves
setting.publichost.name = Public Game Visibility
setting.chatopacity.name = Chat Opacity
setting.lasersopacity.name = Power Laser Opacity
+setting.bridgeopacity.name = Bridge Opacity
setting.playerchat.name = Display Player Bubble Chat
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.
@@ -746,6 +756,7 @@ rules.enemyCheat = Infinite AI (Red Team) Resources
rules.unitdrops = Unit Drops
rules.unitbuildspeedmultiplier = Unit Production Speed Multiplier
rules.unithealthmultiplier = Unit Health Multiplier
+rules.blockhealthmultiplier = Block Health Multiplier
rules.playerhealthmultiplier = Player Health Multiplier
rules.playerdamagemultiplier = Player Damage Multiplier
rules.unitdamagemultiplier = Unit Damage Multiplier
@@ -969,6 +980,7 @@ block.mechanical-pump.name = Mechanical Pump
block.item-source.name = Item Source
block.item-void.name = Item Void
block.liquid-source.name = Liquid Source
+block.liquid-void.name = Liquid Void
block.power-void.name = Power Void
block.power-source.name = Power Infinite
block.unloader.name = Unloader
@@ -1132,6 +1144,7 @@ block.power-source.description = Infinitely outputs power. Sandbox only.
block.item-source.description = Infinitely outputs items. Sandbox only.
block.item-void.description = Destroys any items. Sandbox only.
block.liquid-source.description = Infinitely outputs liquids. Sandbox only.
+block.liquid-void.description = Removes any liquids. Sandbox only.
block.copper-wall.description = A cheap defensive block.\nUseful for protecting the core and turrets in the first few waves.
block.copper-wall-large.description = A cheap defensive block.\nUseful for protecting the core and turrets in the first few waves.\nSpans multiple tiles.
block.titanium-wall.description = A moderately strong defensive block.\nProvides moderate protection from enemies.
diff --git a/core/assets/bundles/bundle_cs.properties b/core/assets/bundles/bundle_cs.properties
index 2160901318..2c09d6393d 100644
--- a/core/assets/bundles/bundle_cs.properties
+++ b/core/assets/bundles/bundle_cs.properties
@@ -1,534 +1,569 @@
credits.text = Vytvořil [ROYAL]Anuken[] - [SKY]anukendev@gmail.com[]
-credits = Kredity
-contributors = Překladatelé a Sponzoři
-discord = Připoj se k Mindustry na Discordu!
-link.discord.description = Oficiální Mindustry chatroom na Discordu!
-link.reddit.description = The Mindustry subreddit
+credits = Titulky
+contributors = Překladatelé a sponzoři
+discord = Připoj se k Mindustry\nna Discord serveru!
+link.discord.description = Oficiální kanál Mindustry na serveru Discord
+link.reddit.description = Mindustry na Redditu
link.github.description = Zdrojový kód hry
link.changelog.description = Seznam úprav
-link.dev-builds.description = Nestabilní verze vývoje hry
-link.trello.description = Oficiální Trello board pro plánované funkce
-link.itch.io.description = itch.io stránka pro stažení PC nebo webové verze
-link.google-play.description = Google Play store
-link.wiki.description = Oficiální Mindustry wiki
-linkfail = Nepodařilo se otevřít odkaz!\nURL byla zkopírována do schránky.
+link.dev-builds.description = Nestabilní vývojová verze hry
+link.trello.description = Oficiální Trello nástěnka s plánovanými novinkami
+link.itch.io.description = Stránka na itch.io s odkazy na stažení hry
+link.google-play.description = Obchod Google Play
+link.f-droid.description = Katalog F-Droid
+link.wiki.description = Oficiální Wiki Mindustry
+link.feathub.description = Navrhni něco nového do hry!
+linkfail = Nepodařilo se otevřít odkaz!\nAdresa URL byla zkopírována do schránky.
screenshot = Snímek obrazovky uložen {0}
-screenshot.invalid = Mapa je moc velká, nemusí být dost paměti pro snímek obrazovky.
+screenshot.invalid = Mapa je moc velká, nemusí být dost paměti pro získání snímku obrazovky.
gameover = Konec hry
-gameover.pvp = [accent] {0}[] Tým Vyhrál!
+gameover.pvp = Vyhrál tým [accent]{0}[]!
highscore = [accent]Nový rekord!
-copied = Copied.
+copied = Zkopírováno.
+
load.sound = Zvuky
load.map = Mapy
load.image = Obrázky
load.content = Obsah
-load.system = System
-load.mod = Módy
-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.system = Systém
+load.mod = Modifikace
+load.scripts = Skripty
+
+be.update = Je dostupná zbrusu nová vývojářská verze:
+be.update.confirm = Chceš ji stáhnout a restartovat hru?
+be.updating = Aktualizuji...
+be.ignore = Přeskočit verzi
+be.noupdates = Aktualizace nebyla nalezena.
+be.check = Zkontrolovat aktualizace
+
+schematic = Šablona
+schematic.add = Ukládám šablonu...
+schematics = Šablony
+schematic.replace = Šablona tohoto jména již existuje. Chceš ji nahradit?
+schematic.import = Importuji šablonu...
+schematic.exportfile = Exportovat soubor
+schematic.importfile = Importovat soubor
+schematic.browseworkshop = Procházet dílnu
+schematic.copy = Zkopírovat do schránky
+schematic.copy.import = Importovat ze schránky
+schematic.shareworkshop = Sdílet skrze Steam Workshop
+schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Převrátit šablonu
+schematic.saved = Šablona byla uložena.
+schematic.delete.confirm = Šablona bude kompletně vyhlazena.
+schematic.rename = Přejmenovat šablonu
+schematic.info = {0}x{1}, {2} bloků
+
stat.wave = Vln poraženo:[accent] {0}
stat.enemiesDestroyed = Nepřátel zničeno:[accent] {0}
stat.built = Budov postaveno:[accent] {0}
stat.destroyed = Budov zničeno:[accent] {0}
stat.deconstructed = Budov rozebráno:[accent] {0}
-stat.delivered = Materiálu odesláno:
-stat.rank = Závěrečné hodnocení: [accent]{0}
-launcheditems = [accent]Odeslané předměty
-launchinfo = [unlaunched][[LAUNCH] your core to obtain the items indicated in blue.
-map.delete = Jsi si jistý že chceš smazat mapu "[accent]{0}[]"?
-level.highscore = Nejvyšší skóre: [accent]{0}
-level.select = Výběr levelu
+stat.delivered = Materiálu vysláno:
+stat.rank = Celková známka: [accent]{0}
+
+launcheditems = [accent]Vyslané předměty[]
+launchinfo = [unlaunched][Je třeba [LAUNCH] Tvé jádro, abys získal věci vyznačené modře.
+map.delete = Jsi si jistý, že chceš smazat mapu "[accent]{0}[]"?
+level.highscore = Nejvyšší skóre: [accent]{0}[]
+level.select = Výběr úrovně
level.mode = Herní mód:
-showagain = Znovu neukazovat !
+showagain = Znovu neukazovat
coreattack = < Jádro je pod útokem! >
-nearpoint = [[ [scarlet]IHNED OPUSŤTE PROSTOR VÝSADKŮ[] ]\nNebezpečí okamžité smrti
-database = Databáze objektů
+nearpoint = [ [scarlet]IHNED OPUSŤTE PROSTOR VÝSADKU[] ]\nNebezpečí okamžité smrti!
+database = Databáze objektů ve hře
savegame = Uložit hru
loadgame = Načíst hru
joingame = Připojit se ke hře
customgame = Vlastní hra
newgame = Nová hra
none = <žádný>
-minimap = Minimapa
-position = Position
+minimap = Mapička
+position = Pozice
close = Zavřít
-website = Web. stránky
+website = Webové stránky
quit = Ukončit
save.quit = Uložit a ukončit
maps = Mapy
maps.browse = Procházet mapy
continue = Pokračovat
-maps.none = [LIGHT_GRAY]Žádné mapy nebyly nalezeny!
+maps.none = [lightgray]Mapy nebyly nalezeny.[]
invalid = Neplatné
-preparingconfig = Připravuji Config
-preparingcontent = Připravuji obsah
-uploadingcontent = Nahrávám obsah
-uploadingpreviewfile = Nahrávám prohlížecí soubor
+pickcolor = Vyber barvu
+preparingconfig = Připravuji konfiguraci
+preparingcontent = Připravuji obsah hry
+uploadingcontent = Nahrávám obsah hry
+uploadingpreviewfile = Nahrávám soubor s náhledem
committingchanges = Provádím změny
done = Hotovo
-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 = Tvoje zařízení nepodporuje tuto vlastnost hry.
+
+mods.alphainfo = Měj na paměti, že modifikace jsou stále v alfa fázi vývoje a mohou být [scarlet]velmi chybové[].\nNahlaš, prosím, jakékoliv závady na GitHub nebo Discord serveru Mindustry. Děkujeme!
+mods.alpha = [accent](Alfa)[]
+mods = Mody
+mods.none = [LIGHT_GRAY]Modifikace nebyly nalezeny.[]
+mods.guide = Průvodce modifikacemi
+mods.report = Nahlásit závadu
+mods.openfolder = Otevřít složku s modifikacemi
+mod.enabled = [lightgray]Povoleno[]
+mod.disabled = [scarlet]Zakázáno[]
+mod.disable = Zakázat
+mod.delete.error = Nebylo možnost smazat modifikaci. Soubor může být používán.
+mod.requiresversion = [scarlet]Minimální požadovaná verze hry: [accent]{0}[]
+mod.missingdependencies = [scarlet]Chybějící závislosti: {0}[]
+mod.erroredcontent = [scarlet]V obsahu jsou chyby[]
+mod.errors = Při načítání obsahu hry se vyskytly problémy.
+mod.noerrorplay = [scarlet]Máš modifikace s chybami.[] Buď zakaž dotčené modifikace, nebo oprav chyby před tím, než začneš hrát.
+mod.nowdisabled = [scarlet]Modifikaci '{0}' chybí tyto závislosti: [accent]{1}\n[lightgray]Tyto modifikace je třeba nejprve stáhnout.\nTato modifikace bude nyní automaticky zakázána.
+mod.enable = Povolit
+mod.requiresrestart = Hra bude ukončena, aby bylo možné nasadit modifikace.
+mod.reloadrequired = [scarlet]Je vyžadováno znovuspuštění hry.
+mod.import = Importovat modifikaci
+mod.import.github = Import modifikaci z GitHubu
+mod.item.remove = Tato položka je součástí [accent]'{0}'[] modifikace. Pokud ji chcete odstranit, odinstalujte tuto modifikaci.
+mod.remove.confirm = Tato modifikace bude odstraněna.
+mod.author = [LIGHT_GRAY]Autor:[] {0}
+mod.missing = Toto uložení hra obsahuje modifikace, které byly nedávno aktualizovány, nebo již nejsou nainstalovány. Použití tohoto uložení může vést k chybám. Jsi si jist, že chceš nahrát toto uložení hry?\n[lightgray]Modifikace:\n{0}
+mod.preview.missing = Než vystavíš svou modifikaci v dílně, musíš přidat obrázek pro náhled.\nUmísti obrázek pojmenovaný [accent]preview.png[] do složky modifikace a zkus to znovu.
+mod.folder.missing = V dílně mohou být vystaveny pouze modifikace ve formě složky.\nAbys převedl modifikaci na formu složky, jednoduše rozbal zip soubor do složky a smaž starý zip soubor. Potom znovu spusť hru nebo znovu načti modifikace.
+mod.scripts.unsupported = Tvoje zařízení nepodporuje skripty. Některé modifikace nemusí správně fungovat.
+
about.button = O hře
name = Jméno:
-noname = Nejdřív si vyber[accent] herní jméno[].
-filename = Jméno složky:
-unlocked = Nový blok odemčen!
-completed = [accent]Dokončeno
+noname = Nejdřív si vyber [accent]jméno ve hře[].
+filename = Název souboru:
+unlocked = Byl odemmknut nový blok!
+completed = [accent]Dokončeno[]
techtree = Technologie
-research.list = [LIGHT_GRAY]Výzkum:
+research.list = [lightgray]Výzkum:[]
research = Výzkum
-researched = [LIGHT_GRAY]{0} vyzkoumán(o).
-players = {0} hráčů online
-players.single = {0} hráč online
-server.closing = [accent]Zavírám server...
+researched = Dokončen výzkum technologie: [lightgray]{0}[].
+players = Hráčů: {0}
+players.single = Hráč: {0}
+server.closing = [accent]Ukončuji server...[]
server.kicked.kick = Byl jsi vykopnut ze serveru!
-server.kicked.whitelist = Na server ti nebyl udělen přístup.
-server.kicked.serverClose = Server je zavřený.
-server.kicked.vote = Byl jsi odhlasován a vykopnut. Sbohem.
-server.kicked.clientOutdated = Zastaralý klient hry! Aktualizuj si hru!
-server.kicked.serverOutdated = Zastaralý server! Řekni hostiteli o aktualizaci!
-server.kicked.banned = Jsi zabanován na tomto serveru.
-server.kicked.typeMismatch = Tento server není kompatibilní s verzí tvého klienta
-server.kicked.playerLimit = Tento server je plný, vyčkej na volné místo.
-server.kicked.recentKick = Před nedávnem jsi byl vykopnut.\nPočkej než se znovu připojíš.
-server.kicked.nameInUse = Někdo se stejným jménem\nje aktuálně na serveru.
-server.kicked.nameEmpty = Tvé jméno je neplatné.
-server.kicked.idInUse = Již jsi na tomhle serveru připojen! Připojování se dvěma účty není povoleno.
-server.kicked.customClient = Tento server nepodporuje vlastní verze hry. Stáhni si oficiální verzi.
+server.kicked.whitelist = Na server Ti nebyl udělen přístup.
+server.kicked.serverClose = Server není otevřený.
+server.kicked.vote = Bylo odhlasováno, že budeš vykopnut ze serveru. Tak čau.
+server.kicked.clientOutdated = Byl detekována zastaralá verze klienta hry. Aktualizuj si hru!
+server.kicked.serverOutdated = Byl detekována zastaralá verze serveru. Požádej hostitele o aktualizaci!
+server.kicked.banned = Byl Ti zakázán přístup na tento server.
+server.kicked.typeMismatch = Tento server není kompatibilní s verzí Tvého klienta.
+server.kicked.playerLimit = Tento server je plný, vyčkej prosím, až se uvolní místo.
+server.kicked.recentKick = Před nedávnem jsi byl vykopnut z tohoto serveru.\nPočkej proto chvíli, než se zkusíš znovu připojit.
+server.kicked.nameInUse = Někdo se stejným jménem jako Ty\nje aktuálně přihlášen na serveru.
+server.kicked.nameEmpty = Tvé jméno není platné. Možná je prostě jen není nastaveno?
+server.kicked.idInUse = Na tomhle serveru jsi již připojen. Připojování se pod dvěma účty není dovoleno!
+server.kicked.customClient = Tento server nepodporuje upravené verze hry. Stáhni si, prosím. oficiální verzi.
server.kicked.gameover = Konec hry!
-server.versions = Verze klienta:[accent] {0}[]\nVerze serveru:[accent] {1}[]
-host.info = [accent]hostitel[] hostuje server na portu [scarlet]6567[]. \nKdokoliv na stejné [LIGHT_GRAY]wifi nebo místní síti[] by měl vidět server ve svém listu serverů.\n\nJestli chcete aby se uživatelé připojovali odkudkoliv pomocí IP, [accent]přesměrování portů[] je nutné.\n\n[LIGHT_GRAY]Poznámka: Jestli někdo má problém s připojením ke své LAN hře, ujistěte se že má Mindustry povolený přístup k místní síti v nastavení Firewallu.
-join.info = Tady můžeš vložit [accent]IP serveru[] ke kterému se chceš připojit, nebo objevit [accent]Servery Místní sítě[] ke kterým se chceš připojit.\nLAN i Multiplayer jsou podporovány.\n\n[LIGHT_GRAY]Poznámka: Není žádný globální seznam serverů; Pokud se budeš chtít připojit k někomu pomocí IP, budeš jí muset znát od hostitele.
-hostserver = Hostovat hru
+server.kicked.serverRestarting = Server se restartuje.
+server.versions = Verze klienta: [accent]{0}[]\nVerze serveru: [accent]{1}[]
+host.info = Tento [accent]hostitel[] hostuje server na portu [scarlet]6567[]. \nKdokoliv na stejné [LIGHT_GRAY]síti Wifi nebo LAN (místní)[] by měl vidět server ve svém listu serverů.\n\nJestliže chcete, aby se uživatelé připojovali odkudkoliv pomocí adresy IP, může být nezbytné nastavit [accent]přesměrování portů[].\n\n[LIGHT_GRAY]Poznámka: Jestliže má někdo problém s připojením k LAN hře, ujisti se, že má program Mindustry povolený přístup k místní síti v nastavení místního firewallu.
+join.info = Zde můžeš vložit [accent]adresu IP serveru[], ke kterému se chceš připojit, nebo zkusit nalézt [accent]servery v místní síti[], ke kterým se můžeš připojit.\nJsou podporovány režimy hry více hráčů přes LAN i WAN.\n\n[LIGHT_GRAY]Poznámka: Neexistuje automatický globální seznam serverů Mindustry. Pokud se chceš k někomu připojit pomocí adresy IP, budeš ji muset znát od hostitele.
+hostserver = Hostovat hru více hráčů
invitefriends = Pozvat přátele
-hostserver.mobile = Hostovat\nHru
+hostserver.mobile = Hostovat\nhru
host = Hostitel
-hosting = [accent]Otevírám server...
+hosting = [accent]Otevírám server...[]
hosts.refresh = Obnovit
-hosts.discovering = Hledám hry LAN
+hosts.discovering = Hledám hry v místní síti (LAN)
hosts.discovering.any = Hledám hry
-server.refreshing = Obnovuji servery
-hosts.none = [lightgray]Žádné místní hry nebyly nalezeny!
-host.invalid = [scarlet]Nejde se připojit k hostiteli.
+server.refreshing = Aktualizuji stav serverů
+hosts.none = [lightgray]Žádné místní hry nebyly nalezeny![]
+host.invalid = [scarlet]Nejde se připojit k hostiteli.[]
trace = Vystopovat hráče
-trace.playername = Jméno hráče: [accent]{0}
-trace.ip = IP: [accent]{0}
-trace.id = Unikátní ID: [accent]{0}
-trace.mobile = Mobilní klient: [accent]{0}
-trace.modclient = Vlastní Klient: [accent]{0}
-invalidid = Neplatná IP klienta! Poslat zprávu o chybě.
-server.bans = Bany.
-server.bans.none = Žádní hráči s banem nebyli nalezeni.
-server.admins = Admini
-server.admins.none = Žádní admini nebyli nalezeni.
+trace.playername = Jméno hráče: [accent]{0}[]
+trace.ip = Adresa IP: [accent]{0}[]
+trace.id = Unikátní ID: [accent]{0}[]
+trace.mobile = Mobilní klient hry: [accent]{0}[]
+trace.modclient = Upravený klient hry: [accent]{0}[]
+invalidid = Neplatná adresa IP klienta! Zašli prosím zprávu o chybě.
+server.bans = Zákazy
+server.bans.none = Žádní hráči se zákazem nebyli nalezeni.
+server.admins = Správci
+server.admins.none = Žádní správci nebyli nalezeni.
server.add = Přidat server
-server.delete = Jsi si jistý že chceš smazat tento server?
+server.delete = Jsi si jistý, že chceš smazat tento server?
server.edit = Upravit server
-server.outdated = [crimson]Zastaralý server![]
-server.outdated.client = [crimson]Zastaralý klient![]
-server.version = [lightgray]Verze: {0} {1}
-server.custombuild = [yellow]Vlastní verze
-confirmban = Jsi si jistý že chceš zabanovat tohoto hráče?
-confirmkick = Jsi si jistý že chceš vykopnout tohoto hráče?
-confirmvotekick = Jsi si jistý že chceš hlasovat pro vykopnutí tohoto hráče?
-confirmunban = Jsi si jistý že chceš odbanovat tohoto hráče
-confirmadmin = Jsi si jistý že chceš tohoto hráče pasovat na admina?
-confirmunadmin = Jsi si jistý že chceš odebrat práva tomuto hráči?
+server.outdated = [crimson]Zastaralá verze serveru![]
+server.outdated.client = [crimson]Zastaralá verze klienta![]
+server.version = [gray]Verze: {0} {1}[]
+server.custombuild = [yellow]Upravená verze hry[]
+confirmban = Jsi si jistý, že chceš zakázat tohoto hráče?
+confirmkick = Jsi si jistý, že chceš vykopnout tohoto hráče?
+confirmvotekick = Jsi si jistý, že chceš hlasovat pro vykopnutí tohoto hráče?
+confirmunban = Jsi si jistý, že chceš zrušit zákaz pro tohoto hráče?
+confirmadmin = Jsi si jistý, že chceš tohoto hráče povýšit na admina?
+confirmunadmin = Jsi si jistý, že chceš odebrat správcovská práva tomuto hráči?
joingame.title = Připojit se ke hře
-joingame.ip = Adresa:
-disconnect = Odpojen.
+joingame.ip = Adresa IP:
+disconnect = Odpojeno.
disconnect.error = Chyba připojení.
disconnect.closed = Připojení bylo uzavřeno.
disconnect.timeout = Vypršel čas pro připojení.
-disconnect.data = Chyba načtení dat světa!
-cantconnect = Není možno připojit se ke hře ([accent]{0}[]).
-connecting = [accent]Připojuji se...
-connecting.data = [accent]Načítám data světa...
+disconnect.data = Chyba načtení dat ze serveru!
+cantconnect = Není možno se připojit ke hře ([accent]{0}[]).
+connecting = [accent]Připojuji se...[]
+connecting.data = [accent]Načítám data ze serveru...[]
server.port = Port:
server.addressinuse = Adresu již někdo používá!
server.invalidport = Neplatné číslo portu!
-server.error = [crimson]Chyba při hostování serveru: [accent]{0}
-save.new = Nové uložení
-save.overwrite = Jsi si jistý že chceš přepsat\ntento ukládaci slot?
+server.error = [crimson]Chyba při hostování serveru.[]
+save.new = Nové uložení hry
+save.overwrite = Jsi si jistý, že chceš přepsat\ntuto pozici pro uložení hry?
overwrite = Přepsat
-save.none = Žádné uložené pozice nebyly nalezeny
-saveload = [accent]Ukládám...
+save.none = Žádné uložené pozice nebyly nalezeny.
+saveload = Ukládám...
savefail = Nepodařilo se uložit hru!
-save.delete.confirm = Jsi si jistý že chceš smazat toto uložení?
+save.delete.confirm = Jsi si jistý, že chceš smazat toto uložení hry?
save.delete = Smazat
-save.export = Exportovat uložení
-save.import.invalid = [accent]Toto uložení je neplatné!
-save.import.fail = [crimson]Nepodařilo se importovat uložení: [accent]{0}
-save.export.fail = [crimson]Nepodařilo se exportovat uložení: [accent]{0}
-save.import = Importovat uložení
+save.export = Exportovat uložení hry
+save.import.invalid = [accent]Toto uložení není v pořádku![]
+save.import.fail = [crimson]Nepodařilo se importovat uložení hry: [accent]{0}[]
+save.export.fail = [crimson]Nepodařilo se exportovat uložení hry: [accent]{0}[]
+save.import = Importovat uložení hry
save.newslot = Uložit hru:
save.rename = Přejmenovat
save.rename.text = Nové jméno:
-selectslot = Vyber uložení.
-slot = [accent]Slot {0}
+selectslot = Vyber pozici pro uložení hry.
+slot = [accent]Pozice {0}[]
editmessage = Upravit zprávu
-save.corrupted = [accent]Uložení je poškozené nebo neplatné\nPokud jsi právě aktualizoval svou hru, je to možná změnou formátu pro ukládání a [scarlet]NE[] chyba hry.
+save.corrupted = Uložení je poškozené nebo neplatné.
empty =
on = On
off = Off
save.autosave = Automatické uložení: {0}
save.map = Mapa: {0}
-save.wave = Vlna {0}
+save.wave = Vlna: {0}
save.mode = Herní mod: {0}
save.date = Naposledy uloženo: {0}
save.playtime = Herní čas: {0}
warning = Varování.
confirm = Potvrdit
delete = Smazat
-view.workshop = Prohlédnout ve workshopu
-workshop.listing = Edit Workshop Listing
+view.workshop = Prohlédnout v dílně
+workshop.listing = Upravit popis v dílně
ok = OK
open = Otevřít
-customize = Přizpůsobit
+customize = Přizpůsobit pravidla
cancel = Zrušit
-openlink = Otevřít Odkaz
-copylink = Zkopírovat Odkaz
+openlink = Otevřít odkaz
+copylink = Zkopírovat odkaz
back = Zpět
-data.export = Exportuj Data
-data.import = Importuj Data
-data.exported = Data exportována.
-data.invalid = Neplatná herní data.
-data.import.confirm = Import externích dat smaže[scarlet] všechna[] vaše současná herní data.\n[accent]To nelze vrátit zpět![]\n\nPo importu data se hra ukončí.
-classic.export = Exportovat klasická data
-classic.export.text = [accent]Mindustry[] právě mělo významně velkou aktualizaci.\nKlasické (v3.5 build 40) uložení nebo mapa byly detekovány. Chtěl by jsi exportovat toto uložení do domácího adresáře tvého zařízení , pro pozdější použití v klasické verzi Mindustry ?
-quit.confirm = Jsi si jistý že chceš ukončit ?
-quit.confirm.tutorial = Jste si vážně jist?\nTutoriál se dá znovu spustit v[accent] Nastavení->Hra->Spusť Tutoriál.[]
+data.export = Exportovat data
+data.import = Importovat data
+data.exported = Data byla exportována.
+data.invalid = Herní data nejsou v pořádku.
+data.import.confirm = Import externích dat smaže [scarlet]všechna[] Tvá současná herní data.\n[accent]Toto nelze vrátit zpět![]\n\nPo importu dat se hra bezprostředně sama ukončí.
+classic.export = Exportovat data pro verzi Classic
+classic.export.text = [accent]Mindustry[] mělo významnou aktualizaci.\nByly detekovány uložení hry nebo mapy pro předchozí verzi Classic (v3.5 build 40). Chtěl bys exportovat tato uložení do domovského zařízení Tvého telefonu, pro pozdější použití v této verzi Mindustry Classic?
+quit.confirm = Jsi si jistý, že chceš ukončit hru?
+quit.confirm.tutorial = Jsi si jistý?Výuku je možné znovu spustit v [accent]Volby->Hra->Spustit znovu výuku[].
loading = [accent]Načítám...
-reloading = [accent]načítám módy ...
+reloading = [accent]Načítám modifikace...
saving = [accent]Ukládám...
-cancelbuilding = [accent][[{0}][] to clear plan
-selectschematic = [accent][[{0}][] to select+copy
-pausebuilding = [accent][[{0}][] to pause building
-resumebuilding = [scarlet][[{0}][] to resume building
-wave = [accent]Vlna {0}
-wave.waiting = [LIGHT_GRAY]Vlna za {0}
-wave.waveInProgress = [LIGHT_GRAY]Vlna v pohybu
-waiting = [LIGHT_GRAY]Čekám...
+cancelbuilding = [accent][[{0}][] vyčistí plán šablony
+selectschematic = [accent][[{0}][] provede výběr a zkopírování
+pausebuilding = [accent][[{0}][] zastaví stavění
+resumebuilding = [scarlet][[{0}][] bude pokračovat ve stavění
+wave = [accent]Vlna číslo {0}[]
+wave.waiting = [lightgray]Vlna za {0} vteřin[]
+wave.waveInProgress = [lightgray]Vlna přichází![]
+waiting = [lightgray]Čekám...[]
waiting.players = Čekání na hráče...
-wave.enemies = [LIGHT_GRAY]{0} Nepřátel zbývá
-wave.enemy = [LIGHT_GRAY]{0} Nepřítel zbývá
+wave.enemies = [lightgray]{0} zbývajících nepřátel
+wave.enemy = [lightgray]{0} zbývající nepřítel
loadimage = Nahrát obrázek
saveimage = Uložit obrázek
unknown = Neznámý
-custom = Vlastní
-builtin = Zabudovaný
-map.delete.confirm = Jsi si jistý žechceš tuto mapu smazat? tato akce je nevratná!
-map.random = [accent]Náhodná mapa
-map.nospawn = Tato mapa nemá žádné jádro pro hráče ke spawnutí! Přidej v editoru do této mapy[ROYAL] modré[] jádro.
-map.nospawn.pvp = Tato mapa nemá žádné nepřátelské jádro pro druhého hráče! Přidej v editoru do této mapy[SCARLET] červené[] jádro.
-map.nospawn.attack = Tato mapa nemá žádná nepřátelská jádra ke zničení! Přidej v editoru do této mapy [SCARLET] červené[] jádro.
+custom = Upraveno
+builtin = Vestavěno
+map.delete.confirm = Jsi si jistý, že chceš tuto mapu smazat? Tato akce je nevratná!
+map.random = [accent]Náhodná mapa[]
+map.nospawn = Na této mapě nejsou jádra, u kterých by se mohli zrodit hráči. Přidej v editoru do této mapy aspoň jedno [accent]oranžové[] jádro.
+map.nospawn.pvp = Tato mapa nemá nepřátelská jádra, u kterých by se mohli zrodit hráči. Přidej v editoru do této mapy aspoň jedno [SCARLET]neoranžové[] jádro.
+map.nospawn.attack = Tato mapa nemá nepřátelská jádra, která by mohla být zničena. Přidej v editoru do této mapy aspoň jedno [SCARLET]červené[] jádro.
map.invalid = Chyba v načítání mapy: poškozený nebo neplatný soubor mapy.
-workshop.update = Update Item
-workshop.error = Error fetching workshop details: {0}
-map.publish.confirm = Jsi si jistý že chceš publikovat tuto mapu?\n\n[lightgray]Ujisti se že jsi nejprve souhlasil se smluvními podmínkami workshopu, tvá mapa se jinak nezobrazí.
-workshop.menu = Select what you would like to do with this item.
-workshop.info = Item Info
-changelog = Changelog (optional):
-eula = Smluvní podmínky Steam
-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}
+workshop.update = Aktualizovat položku
+workshop.error = Chyba při načítání podrobností z dílny: {0}
+map.publish.confirm = Jsi si jistý, že chceš vystavit tuto mapu?\n\n[lightgray]Ujisti se nejprve, že souhlasíš se smluvními podmínkami dílny (EULA), jinak se Tvoje mapa nezobrazí.[]
+workshop.menu = Vybwer si, co bys chtěl dělat s touto položkou.
+workshop.info = Informace o položce
+changelog = Seznam změn (volitelně):
+eula = Smluvní podmínky platformy Steam
+missing = Tato položka byla smazána nebo přesunuta.\n[lightgray]Položka bude automaticky odebrána ze seznamu dílny.
+publishing = [accent]Publikuji...
+publish.confirm = Opravdu chceš toto vystavit?\n\n[lightgray]Ujisti se nejprve, že souhlasíš se smluvními podmínkami dílny (EULA), jinak se Tvoje položky nezobrazí.[]
+publish.error = Chyba při vystavování položky: {0}
+steam.error = Nepodařilo se inicializovat služby platformy Steam.Chyba: {0}
+
editor.brush = Štětec
-editor.openin = Otevřít v editoru.
-editor.oregen = Generovat nerostné zdroje.
-editor.oregen.info = Generování nerostných zdrojů:
+editor.openin = Otevřít v editoru
+editor.oregen = Generování rud
+editor.oregen.info = Generování rud:
editor.mapinfo = Informace o mapě
editor.author = Autor:
editor.description = Popis:
-editor.nodescription = Tvá mapa musí mít popisek minimálně o 4 znacích aby mohla být publikována
+editor.nodescription = Než může být mapa publikována, musí mít popisek dlouhý nejméně 4 znaky.
editor.waves = Vln:
editor.rules = Pravidla:
editor.generation = Generace:
editor.ingame = Upravit ve hře
-editor.publish.workshop = Publikovat na workshop
+editor.publish.workshop = Vystavit v dílně
editor.newmap = Nová mapa
-workshop = Workshop
-waves.title = Vln
+workshop = Dílna
+waves.title = Vlny
waves.remove = Odebrat
waves.never =
waves.every = každých
waves.waves = vln(y)
waves.perspawn = za zrození
waves.to = do
-waves.boss = Bosse
-waves.preview = Prohlížet
+waves.boss = Záporák
+waves.preview = Náhled
waves.edit = Upravit....
waves.copy = Uložit do schránky
waves.load = Načíst ze schránky
-waves.invalid = Neplatné vlny ve schránce
-waves.copied = Vln zkopírováno.
-waves.none = Žádní nepřátelé definováni.\nPřipomínka toho že prázdné rozložení vln se automaticky změní na výchozí nastavení.
-editor.default = [LIGHT_GRAY]
-details = Detaily...
-edit = Upravit
+waves.invalid = Neplatné vlny ve schránce.
+waves.copied = Vlny byly zkopírovány.
+waves.none = Žádní nepřátelé nebyli definováni.\nVlny s prázdným rozložením budou automaticky upraveny na výchozí rozložení.
+editor.default = [lightgray][]
+details = Podrobnosti...
+edit = Upravit...
editor.name = Jméno:
-editor.spawn = Zrodit jednotku.
-editor.removeunit = Odebrat jednotku.
+editor.spawn = Zrodit jednotku
+editor.removeunit = Odstranit jednotku
editor.teams = Týmy
-editor.errorload = Chyba při načítání souboru:\n[accent]{0}
-editor.errorsave = Chyba při ukládání souboru:\n[accent]{0}
-editor.errorimage = Toto je obrázek a ne mapa,nemysli si že změnou formátu souboru tohle obejdeš s tím že to bude fungovat.\n\nJestli chceš použít legacy mapu, použij 'importovat legacy mapu' v menu editoru.
-editor.errorlegacy = Tato mapa je příliš stará a užití legacy formátu již dávno není podporováno.
+editor.errorload = Chyba při načítání souboru.
+editor.errorsave = Chyba při ukládání souboru.
+editor.errorimage = Toto je obrázek, ne mapa.\nPokud chceš importovat mapu z verze 3.5/sestavení 40, použij položku nabídky 'Importovat starou mapu'.
+editor.errorlegacy = Tato mapa je příliš stará a používá formát mapy, který už není podporován.
editor.errornot = Toto není soubor mapy.
-editor.errorheader = Tento soubor mapy je buď neplatný a nebo poškozen.
-editor.errorname = Mapa nemá definované jméno.
+editor.errorheader = Tento soubor mapy je buď neplatný nebo poškozen.
+editor.errorname = Mapa nemá definované jméno. Nesnažíš se náhodou nahrát soubor s uložením hry?
editor.update = Aktualizovat
-editor.randomize = Náhodně
+editor.randomize = Náhodně vygenerovat
editor.apply = Aplikovat
editor.generate = Generovat
editor.resize = Změnit velikost
editor.loadmap = Načíst mapu
editor.savemap = Uložit mapu
editor.saved = Uloženo!
-editor.save.noname = Tvoje mapa nemá jméno! Jméno nastavíš v Informacích o mapě.
-editor.save.overwrite = Tvoje mapa přepisuje vestavěnou mapu! Vyber odlišné jméno v Informacích o mapě.
-editor.import.exists = [scarlet]Není možno importovat:[] vestavěná mapa jménem '{0}' již existuje!
-editor.import = Import
+editor.save.noname = Tvoje mapa nemá jméno! Jméno nastavíš v položce nabídky "Informace o mapě".
+editor.save.overwrite = Tvoje mapa přepisuje vestavěnou mapu! Nastav jí radši jiné jméno v položce nabídky "Informace o mapě".
+editor.import.exists = [scarlet]Není možno importovat:[] existuje vestavěná mapa se stejným jménem '{0}'!
+editor.import = Import...
editor.importmap = Importovat mapu
editor.importmap.description = Importovat již existující mapu
editor.importfile = Importovat soubor
-editor.importfile.description = Importovat externí soubor mapy
-editor.importimage = Importovat Legacy Obrázek
-editor.importimage.description = Importovat exrerní obrázek mapy
-editor.export = Export
+editor.importfile.description = Importovat soubor s externí mapou
+editor.importimage = Importovat starou mapu
+editor.importimage.description = Importovat soubor s externím obrázkem mapy
+editor.export = Export...
editor.exportfile = Exportovat soubor
-editor.exportfile.description = Exportovat soubor mapy
+editor.exportfile.description = Exportovat mapu do souboru
editor.exportimage = Exportovat obrázek terénu
-editor.exportimage.description = Exportovat obrázek souboru mapy
+editor.exportimage.description = Exportovat obrázek mapy do souboru
editor.loadimage = Importovat terén
editor.saveimage = Exportovat terén
-editor.unsaved = [scarlet]Máš neuložené změny![]\nPřesto chceš ukončit?
+editor.unsaved = [scarlet]Máš neuložené změny![]\nPřesto chceš odejít z editoru? Změny budou ztraceny.
editor.resizemap = Změnit velikost mapy
editor.mapname = Jméno mapy:
-editor.overwrite = [accent]Varování!\nToto přepíše již existující mapu.
-editor.overwrite.confirm = [scarlet]Varování![] Mapa s tímto jménem již existuje. Jsi si jistý že ji chceš přepsat?
+editor.overwrite = [accent]Varování!\nToto přepíše již existující mapu.[]
+editor.overwrite.confirm = [scarlet]Varování![] Mapa s tímto jménem již existuje. Jsi si jistý, že ji chceš přepsat?
editor.exists = Mapa s tímto jménem již existuje.
editor.selectmap = Vyber mapu k načtení:
-toolmode.replace = Nahradit.
+
+toolmode.replace = Nahradit
toolmode.replace.description = Kreslí jen na pevných blocích.
toolmode.replaceall = Nahradit vše
-toolmode.replaceall.description = Nahradit všechny bloky na mapě.
-toolmode.orthogonal = Ortogonální
-toolmode.orthogonal.description = Kreslí jen Ortogonální linie.
+toolmode.replaceall.description = Nahradí všechny bloky na mapě.
+toolmode.orthogonal = Pravoúhle
+toolmode.orthogonal.description = Kreslí jen vodorovně nebo svisle.
toolmode.square = Čtverec
toolmode.square.description = Čtvercový štětec.
-toolmode.eraseores = Maže rudy.
+toolmode.eraseores = Mazat rudy
toolmode.eraseores.description = Maže jen rudy.
-toolmode.fillteams = Doplnit skupinu
-toolmode.fillteams.description = Doplní hromadně namísto po blocích.
-toolmode.drawteams = Kreslí skupiny
-toolmode.drawteams.description = Kreslí skupiny namísto po blocích.
-filters.empty = [LIGHT_GRAY]Žádné filtry! Přidej ho tlačítkem níže.
-filter.distort = Distorze
-filter.noise = Hluk
+toolmode.fillteams = Doplnit týmy
+toolmode.fillteams.description = Doplní týmy místo bloků.
+toolmode.drawteams = Kreslit týmy
+toolmode.drawteams.description = Kreslí týmy místo bloků.
+
+filters.empty = [lightgray]Nejsou zadány žádné filtry, přidej filtr tlačítkem níže.[]
+filter.distort = Zkreslení
+filter.noise = Zašumění
filter.median = Medián
filter.oremedian = Medián rud
-filter.blend = Splynutí
-filter.defaultores = Výchozí bloky
+filter.blend = Prolnutí
+filter.defaultores = Výchozí rudy
filter.ore = Rudy
-filter.rivernoise = Hluk řek
+filter.rivernoise = Zašumění řek
filter.mirror = Zrcadlit
filter.clear = Vyčistit
filter.option.ignore = Ignorovat
-filter.scatter = Rozházet
+filter.scatter = Rozptýlení
filter.terrain = Terén
filter.option.scale = Měřítko
-filter.option.chance = Šance
+filter.option.chance = Náhoda
filter.option.mag = Velikost
filter.option.threshold = Práh
-filter.option.circle-scale = Měřítko kruhu
+filter.option.circle-scale = Poloměr kružnice
filter.option.octaves = Octávy
-filter.option.falloff = Spád
+filter.option.falloff = Pokles
filter.option.angle = Úhel
filter.option.block = Blok
-filter.option.floor = Podlaha
-filter.option.flooronto = Cílová podlaha
+filter.option.floor = Povrch
+filter.option.flooronto = Cílový povrch
filter.option.wall = Stěna
filter.option.ore = Ruda
-filter.option.floor2 = Sekundární podlaží
-filter.option.threshold2 = Sekundární podlaží
+filter.option.floor2 = Druhotný povrch
+filter.option.threshold2 = Druhotný práh
filter.option.radius = Poloměr
filter.option.percentile = Percentil
+
width = Šířka:
height = Výška:
-menu = Hlavní menu
+menu = Hlavní nabídka
play = Hrát
campaign = Kampaň
load = Načíst
save = Uložit
fps = FPS: {0}
-ping = Odezva: {0}ms
-language.restart = Prosím restartuj hru aby se provedla změna jazyka!
-settings = Nastavení
-tutorial = Tutoriál
-tutorial.retake = Zopáknout si výuku.
+ping = Odezva: {0} ms
+language.restart = Prosím restartuj hru, aby se provedla změna jazyka!
+settings = Volby
+tutorial = Výuka
+tutorial.retake = Spustit znovu výuku.
editor = Editor
mapeditor = Editor map
+
abandon = Opustit
abandon.text = Tato zóna a všechny její zdroje připadnou nepříteli.
locked = Zamčeno
-complete = [LIGHT_GRAY]Hotovo:
-requirement.wave = Reach Wave {0} in {1}
-requirement.core = znič nepřátelskou základnu v {0}
-requirement.unlock = odemknuto {0}
-resume = Zpět k zóně:\n[LIGHT_GRAY]{0}
-bestwave = [LIGHT_GRAY]Nejlepší: {0}
-launch = Vyslat
-launch.title = Vyslání úspěšné
-launch.next = [LIGHT_GRAY]další možnost až ve vlně {0}
-launch.unable2 = [scarlet]Není možno vyslat.[]
-launch.confirm = Toto vyšle veškeré suroviny ve tvém jádru .\nJiž se na tuto základnu nebudeš moci vrátit.
-launch.skip.confirm = Jestli teď zůstaneš, budeš moci odejít až v pozdější fázi.
-uncover = Odkrýt
+complete = [lightgray]Dokončeno:
+requirement.wave = Dosáhni vlny {0} na mapě {1}
+requirement.core = Znič nepřátelské jádro na mapě {0}
+requirement.unlock = Odemknuto {0}
+resume = Zpět k mapě:\n[lightgray]{0}[]
+bestwave = [lightgray]Nejvyšší vlna: {0}
+launch = Vyslat do této zóny Tvé jádro
+launch.title = Vyslání bylo úspěšné
+launch.next = [lightgray]další možnost bude až ve vlně {0}[]
+launch.unable2 = [scarlet]Není možno se vyslat.[]
+launch.confirm = Toto vyšle veškeré suroviny ve Tvém jádře zpět.\nJiž se na tuto základnu nebudeš moci vrátit.
+launch.skip.confirm = Jestli teď zůstaneš, budeš moci odejít až po několika dalších vlnách.
+uncover = Odkrýt mapu
configure = Přizpůsobit vybavení
-bannedblocks = Banned Blocks
-addall = Add All
-configure.locked = [LIGHT_GRAY]Dosáhni vlny {0}\nk nastavení svého vybavení.
-configure.invalid = Hodnota musí být mezi 0 a{0}.
-zone.unlocked = [LIGHT_GRAY]{0} odemčeno.
-zone.requirement.complete = Vlna {0} dosažena:\n{1} podmínky zóny splněny.
-zone.config.unlocked = Loadout unlocked:[lightgray]\n{0}
-zone.resources = Suroviny detekovány:
-zone.objective = [lightgray]Cíl: [accent]{0}
+bannedblocks = Zakázané bloky
+addall = Přidat vše
+configure.locked = [lightgray]Dosáhni vlny {0},\naby sis mohl přizpůsobit vybavení pro mapu.
+configure.invalid = Hodnota musí být číslo mezi 0 a {0}.
+zone.unlocked = [lightgray]Mapa {0} byla odemknuta.
+zone.requirement.complete = Bylo dosaženo vlny {0},\nčímž byla splněna podmínka pro mapu {1}.
+zone.config.unlocked = Odemknuto přizpůsobení vybavení pro mapu:[lightgray]\n{0}[]
+zone.resources = [lightgray]Byly detekovány tyto suroviny:[]
+zone.objective = [lightgray]Úkol: [][accent]{0}[]
zone.objective.survival = Přežij
zone.objective.attack = Znič nepřátelské jádro
-add = Přidat
-boss.health = Životy bosse
-connectfail = [crimson]Nepovedlo se připojení k serveru:\n\n[accent]{0}
-error.unreachable = Server je nedostupný.\nJe adresa napsaná správně?
-error.invalidaddress = Neplatná adresa.
-error.timedout = Čas vypršel!\nUjisti se že hostitel má nastavené přesměrování portů a adresa je napsaná správně!
-error.mismatch = Chyba Packetu:\nKlient/Verze serveru se neshodují.\nUjisti se že máš nejnovější verzi Mindustry!
-error.alreadyconnected = Již připojeno.
-error.mapnotfound = Soubor mapy nebyl nalezen!
-error.io = Chyba I/O sítě.
-error.any = neznámá chyba sítě.
-error.bloom = Chyba inicializace bloomu.\nTvé zařízení ho nemusí podporovat.
-zone.groundZero.name = Zóna dopadu
-zone.desertWastes.name = Pouštní Odpady
+add = Přidat...
+boss.health = Životy Záporáka
+
+connectfail = [crimson]Nepovedlo se připojení k serveru:\n\n[accent]{0}[]
+error.unreachable = Server je nedostupný.\nJe IP adresa napsaná správně (XXX.XXX.XXX.XXX)?
+error.invalidaddress = Neplatná IP adresa.
+error.timedout = Čas pro spojení se serverem vypršel!\nUjisti se, že IP adresa je napsaná správně. Zkus také zjistit, zda má hostitel správně nastavené přesměrování portů.
+error.mismatch = Chyba při komunikaci se serverem:\nVerze klienta a serveru se možná neshodují.\nUjisti se, že máš nejnovější verzi Mindustry, a když to nevyřeší problém, kontaktuj správce serveru.
+error.alreadyconnected = Připojeni k serveru.
+error.mapnotfound = Soubor s mapou nebyl nalezen!
+error.io = Vstupně/výstupní (I/O) chyba sítě.
+error.any = Ueznámá chyba sítě.
+error.bloom = Chyba inicializace filtru Bloom.\nTvé zařízení ho nejspíš nepodporuje.
+
+zone.groundZero.name = Základní tábor
+zone.desertWastes.name = Pouštní pustiny
zone.craters.name = Krátery
-zone.frozenForest.name = Zmrzlý les
-zone.ruinousShores.name = Zničující pobřeží
-zone.stainedMountains.name = Poskvrněné hory
-zone.desolateRift.name = Trhlina pustoty
-zone.nuclearComplex.name = Komplex nukleární produkce
-zone.overgrowth.name = Porost
-zone.tarFields.name = Tarová pole
+zone.frozenForest.name = Zamrzlý les
+zone.ruinousShores.name = Zničené pobřeží
+zone.stainedMountains.name = Skvrnité pohoří
+zone.desolateRift.name = Bezútěšná trhlina
+zone.nuclearComplex.name = Komplex jaderné výroby
+zone.overgrowth.name = Džungle
+zone.tarFields.name = Dehtová pole
zone.saltFlats.name = Solné nížiny
-zone.impact0078.name = Dopad 0078
-zone.crags.name = Praskliny
-zone.fungalPass.name = Houbový průsmyk
-zone.groundZero.description = Optimální lokace kde znovu začít. Nízký výskyt nepřátel. Pár surovin.\nPosbírej co nejvíce olova a mědi.\nBěž dál.
-zone.frozenForest.description = Dokonce tady, blíž k horám se spóry dokázaly rozrůst. Tyto mrazivé teploty je nemohou zadržet navěky.\n\nZačni pracovat s pomocí energie. Stav spalovací generátory. Nauč se jak používat opravovací věže.
-zone.desertWastes.description = Tyto odpadní zóny jsou rozsáhlé, nepředvídatelné a skrz naskrz se hemží opuštěnými budovami.\nV této oblasti se hojně vyskytuje uhlí. Spal ho v generátorech na energii nebo syntetizuj na Grafit.\n\n[lightgray]Tato výsadková zóna není garantovaná.
-zone.saltFlats.description = Na okraji pouště leží Solné nížiny. V této lokaci se nachází nemnoho surovin.\n\nNepřítel zde vybudoval zásobovací komplex. Znič jeho jádro. Nenechej kámen na kameni.
-zone.craters.description = V těchto kráterech jenž jsou relikvie starých válek,se nahromadilo velké množství vody. Zmocni se této oblasti. Sbírej písek. Vyrob z něj sklo. Použij vodu k chlazení svých vrtů a střílen.
-zone.ruinousShores.description = Za odpadní zónou se nachází pobřeží. Kdysi tuto oblast obýval pobřežní obranný sytém. Moc z něj nezbylo. Jen ty nejprimitivnější struktůry zůstaly nerozprášeny, zbytek padl jen v kusy oceli.\nPokračuj ve své expanzi hlouběji. Objev ztracenou technologii.
-zone.stainedMountains.description = Dále ve vnitrozemí leží hory, dosud neposkvrněny spóry.\nVytěž tuto oblast oplývající titániem. Nauč se ho používat.\n\nPřítomnost nepřátelských jednotek je zde větší. Nedej jim čas na vytasení jejich největšího kalibru.
-zone.overgrowth.description = Tato přerostlá džungle se nachází blíže ke zdroji spór.\nNepřítel zde zbudoval základnu. Postav jednotky Dagger a znič ji. Získej to co mělo být dávno ztraceno.
-zone.tarFields.description = Hranice produkční ropné oblasti mezi horami a pouští. Jedna z mála oblastí kde se stále nachází Tar.\nAčkoliv se oblast zdá opuštěná, stále se zde nachází nepřátelské jednotky s velkou silou. Není radno je podcenit.\n\n[lightgray]Vyzkoumej technologii na produkci surovin z ropy.
-zone.desolateRift.description = Extrémně nebezpečná zóna. Za cenu prostoru se zde nachází přehršel surovin. Vysoká šance na sebedestrukci. Opusť tuto oblast co nejdříve to půjde. Nenech se zmást dlouhými prodlevami mezi vlnami nepřátel.
-zone.nuclearComplex.description = Bývalá továrna na zpracování thoria, dnes leží v troskách.\n[lightgray]Objev thorium a jeho široké využití.\n\nNepřátelské jednotky se zde nacházejí v hojném počtu, neustále prohledává okolí kvůli útočníkůn.
-zone.fungalPass.description = Přechodová oblast mezi vysokými horami a spóry nasycenou zemí. Nachází se zde malá průzkumná základna tvého nepřítele.\nZnič ji.\nPoužij Dagger a Crawler jednotky. Znič obě nepřátelské já.
-zone.impact0078.description =
-zone.crags.description =
+zone.impact0078.name = Zóna dopadu 0078
+zone.crags.name = Skalní útesy
+zone.fungalPass.name = Plísňový průsmyk
+
+zone.groundZero.description = Optimální místo, kde znovu začít. Nízký výskyt nepřátel. Několik málo surovin.\nPosbírej co nejvíce olova a mědi.\nBěž dál.
+zone.frozenForest.description = Dokonce až sem, blízko hor, se dokázaly spóry rozrůst. Mráz je však nemůže zadržet navěky.\n\nPusť se do práce za pomocí energie. Stav spalovací generátory. Nauč se, jak používat opravovací věže.
+zone.desertWastes.description = Tyto pustiny jsou rozsáhlé, nepředvídatelné a skrz naskrz se hemží opuštěnými budovami.\nV této oblasti nalezneš uhlí. Spal ho v generátorech na energii nebo syntetizuj na grafit.\n\n[lightgray]Tato výsadková zóna není zaručena[]
+zone.saltFlats.description = Na okraji pouště leží Solné nížiny. V této lokaci se nachází jen několik málo surovin.\n\nNepřítel zde vybudoval zásobovací komplex. Znič jádro v jeho základně. Nenechej kámen na kameni.
+zone.craters.description = V těchto relikviích starých válek se nahromadilo velké množství vody. Znovu získej tuto oblast. Sbírej písek. Vyrob z něj metasklo. Použij vodu k chlazení svých vrtů a střílen.
+zone.ruinousShores.description = Za pustinou se nachází pobřeží. Kdysi zde stál obranný pobřežní systém. Moc z něj už dneska nezbylo. Jen základní stavby zůstaly ušetřeny, zbytek se rozpadl na šrot.\nPokračuj ve své expanzi hlouběji. Objev ztracenou technologii.
+zone.stainedMountains.description = Dále ve vnitrozemí leží hory, dosud neposkvrněny spórami.\nVytěž titánium, kterým tato oblast oplývá. Nauč se jej používat.\n\nPřítomnost nepřátelských jednotek je zde větší. Radši jim nedej moc času na vyslání jejich nejsilnějších jednotech.
+zone.overgrowth.description = Tato přerostlá džungle se nachází blíže ke zdroji spór.\nNepřítel zde zbudoval předsunutou hlídku. Stav jednotky Dagger a znič s jejich pomocí jádro základny. Získej znovu to, co bylo již dávno ztraceno.
+zone.tarFields.description = Rozhraní produkční ropné oblasti mezi horami a pouští. Jedna z mála oblastí, kde se stále nachází dehet.\nAčkoliv je oblast opuštěná, stále se v jejím okolí nachází nebezpečné nepřátelské síly. Není radno je podcenit.\n\n[lightgray]Vyzkoumej technologii na zpracování ropy.[]
+zone.desolateRift.description = Extrémně nebezpečná zóna. Na úkor prostoru se zde nachází přehršel surovin. Vysoká pravděpodobnost zničení. Opusť tuto oblast co nejdříve to půjde. Nenech se zmást dlouhými prodlevami mezi vlnami nepřátel.
+zone.nuclearComplex.description = Bývalá továrna na zpracování thoria, dnes v troskách.\n[lightgray]Objev thorium a jeho široké využití.[]\n\nNepřátelské jednotky se zde nacházejí v hojném počtu, a neustále prohledávají oblast.
+zone.fungalPass.description = Přechodová oblast mezi vysokými horami a spórami nasycenou zemí. Nachází se zde malá průzkumná základna Tvého nepřítele.\nZnič ji.\nPoužij jednotky Dagger a Crawler. Znič obě nepřátelské jádra.
+zone.impact0078.description =
+zone.crags.description =
+
settings.language = Jazyk
settings.data = Data hry
-settings.reset = nastavit výchozí
-settings.rebind = Přenastavit
+settings.reset = Nastavit na původní hodnoty
+settings.rebind = Přemapovat
+settings.resetKey = Vrátit změny
settings.controls = Ovládání
settings.game = Hra
-settings.sound = zvuky
-settings.graphics = Zobrazení
-settings.cleardata = Resetovat data hry...
-settings.clear.confirm = Jsi si jistý že chceš resetovat obsah hry?\nTento krok je nevratný!
-settings.clearall.confirm = [scarlet]Varování![]\nToto vyresetuje všechna data, včetně uložení, map, odemykatelných a nastavení ovládání.\nJakmile stiskneš 'ok' data se vymažou a hra se automaticky ukončí.
-paused = [accent]< Pauza >
-clear = Clear
-banned = [scarlet]Banned
+settings.sound = Zvuky
+settings.graphics = Grafika
+settings.cleardata = Vymazat data hry...
+settings.clear.confirm = Jsi si jistý, že chceš vymazat Tvá data ve hře?\nTento krok je nevratný!
+settings.clearall.confirm = [scarlet]Varování![]\nToto vyresetuje všechna Tvá data ve hře, včetně uložení hry, map, odemknutého postupu v kampani a nastavení ovládání.\nJakmile stiskneš "OK", všechna data se vymažou a hra se automaticky ukončí.
+paused = [accent]< Pozastaveno >[]
+clear = Vyčistit
+banned = [scarlet]Zakázán[]
yes = Ano
no = Ne
info.title = Informace
-error.title = [crimson]Objevila se chyba
+error.title = [crimson]Objevila se chyba[]
error.crashtitle = Objevila se chyba
blocks.input = Vstup
blocks.output = Výstup
-blocks.booster = Booster
-block.unknown = [LIGHT_GRAY]???
+blocks.booster = Posilovač
+block.unknown = [lightgray]???[]
blocks.powercapacity = Kapacita energie
-blocks.powershot = Energie na výstřel
+blocks.powershot = Energie na 1 výstřel
blocks.damage = Poškození
blocks.targetsair = Zaměřuje vzdušné jednotky
blocks.targetsground = Zaměřuje pozemní jednotky
blocks.itemsmoved = Rychlost pohybu
blocks.launchtime = Čas mezi vysláním
blocks.shootrange = Dostřel
-blocks.size = velikost
+blocks.size = Velikost
blocks.liquidcapacity = Kapacita tekutin
blocks.powerrange = Rozsah energie
-blocks.powerconnections = Max Connections
-blocks.poweruse = Spotřebuje energie
-blocks.powerdamage = Energie na poškození
-blocks.itemcapacity = kapacita předmětů
+blocks.powerconnections = Nejvyšší počet spojení
+blocks.poweruse = Spotřeba energie
+blocks.powerdamage = Energie na jednotku poškození
+blocks.itemcapacity = Kapacita předmětů
blocks.basepowergeneration = Základní generování energie
blocks.productiontime = Čas produkce
blocks.repairtime = Čas do úplné opravy
blocks.speedincrease = Zvýšení rychlosti
blocks.range = Dosah
-blocks.drilltier = Vrtatelné
+blocks.drilltier = Lze těžit
blocks.drillspeed = Základní rychlost vrtu
-blocks.boosteffect = Efekt boostu
-blocks.maxunits = Max. počet jednotek
+blocks.boosteffect = Účinek posílení
+blocks.maxunits = Nejvýše aktivních jednotek
blocks.health = Životy
blocks.buildtime = Čas stavby
blocks.buildcost = Cena stavby
-blocks.inaccuracy = Nepřesnost/výchylka
+blocks.inaccuracy = Nepřesnost
blocks.shots = Střely
-blocks.reload = Střely za sekundu
+blocks.reload = Střel za 1s
blocks.ammo = Střelivo
+
bar.drilltierreq = Je vyžadován lepší vrt
bar.drillspeed = Rychlost vrtu: {0}/s
bar.pumpspeed = Pump Speed: {0}/s
@@ -544,6 +579,9 @@ bar.heat = Teplo
bar.power = Energie
bar.progress = Proces stavby
bar.spawned = Jednotek: {0}/{1}
+bar.input = Input
+bar.output = Output
+
bullet.damage = [stat]{0}[lightgray] poškození
bullet.splashdamage = [stat]{0}[lightgray] AOE ~[stat] {1}[lightgray] bloků
bullet.incendiary = [stat]zápalné
@@ -555,6 +593,7 @@ bullet.freezing = [stat]ledové
bullet.tarred = [stat]tarové
bullet.multiplier = [stat]{0}[lightgray]x násobič střeliva
bullet.reload = [stat]{0}[lightgray]x nabití
+
unit.blocks = Bloky
unit.powersecond = jednotek energie/sekunda
unit.liquidsecond = jednotek tekutin/sekundu
@@ -567,6 +606,8 @@ unit.persecond = /sek
unit.timesspeed = x rychlost
unit.percent = %
unit.items = předměty
+unit.thousands = k
+unit.millions = mil
category.general = Všeobecné
category.power = Energie
category.liquids = Tekutiny
@@ -579,6 +620,7 @@ setting.shadows.name = Stíny
setting.blockreplace.name = Automatic Block Suggestions
setting.linear.name = Lineární filtrování
setting.hints.name = Hints
+setting.buildautopause.name = Auto-Pause Building
setting.animatedwater.name = Animovaná voda
setting.animatedshields.name = Animované štíty
setting.antialias.name = Antialias[LIGHT_GRAY] (vyžaduje restart)[]
@@ -601,12 +643,16 @@ setting.screenshake.name = Třes obrazu
setting.effects.name = Zobrazit efekty
setting.destroyedblocks.name = Display Destroyed Blocks
setting.conveyorpathfinding.name = Conveyor Placement Pathfinding
+setting.coreselect.name = Allow Schematic Cores
setting.sensitivity.name = Citlivost ovladače
setting.saveinterval.name = Interval automatického ukládání
setting.seconds = {0} Sekund
+setting.blockselecttimeout.name = Block Select Timeout
+setting.milliseconds = {0} milliseconds
setting.fullscreen.name = Celá obrazovka
setting.borderlesswindow.name = Bezokrajové okno[LIGHT_GRAY] (může vyžadovat restart)
setting.fps.name = Ukázat snímky/sekundu
+setting.blockselectkeys.name = Show Block Select Keys
setting.vsync.name = Vertikální synchronizace
setting.pixelate.name = Pixelizovat [LIGHT_GRAY](může snížit výkon)
setting.minimap.name = Ukázat minimapu
@@ -635,16 +681,36 @@ category.multiplayer.name = Multiplayer
command.attack = Útok
command.rally = Rally
command.retreat = Ústup
+placement.blockselectkeys = \n[lightgray]Key: [{0},
keybind.clear_building.name = Clear Building
keybind.press = Stiskni klívesu...
keybind.press.axis = Stiskni osu nebo klávesu...
keybind.screenshot.name = Sníměk mapy
+keybind.toggle_power_lines.name = Toggle Power Lasers
keybind.move_x.name = Pohyb na X
keybind.move_y.name = Pohyb na Y
+keybind.mouse_move.name = Follow Mouse
+keybind.dash.name = Sprint
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_menu.name = Šablona Menu
+keybind.schematic_flip_x.name = Flip Šablona X
+keybind.schematic_flip_y.name = Flip Šablona Y
+keybind.category_prev.name = Previous Category
+keybind.category_next.name = Next Category
+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 = Toggle Fullscreen
keybind.select.name = Vybrat/Střílet
keybind.diagonal_placement.name = Diagonal Placement
@@ -657,7 +723,6 @@ keybind.menu.name = Hlavní nabídka
keybind.pause.name = pauza
keybind.pause_building.name = Pause/Resume Building
keybind.minimap.name = Minimapa
-keybind.dash.name = Sprint
keybind.chat.name = Chat
keybind.player_list.name = Seznam hráčů
keybind.console.name = Konzole
@@ -671,23 +736,26 @@ keybind.drop_unit.name = Zahodit jednotku
keybind.zoom_minimap.name = Přiblížit minimapu
mode.help.title = Popis módů
mode.survival.name = Survival
-mode.survival.description = Normální mód .Limitované suroviny a automatické přepínání vln.
+mode.survival.description = Normální mód. Limitované suroviny a automatické přepínání vln.
mode.sandbox.name = Sandbox
mode.sandbox.description = Nekonečné zdroje a žádný čas pro vlny nepřátel.
mode.editor.name = Editor
mode.pvp.name = PvP
mode.pvp.description = Bojuj proti ostatním hráčům v lokální síti.
mode.attack.name = Útok
-mode.attack.description = Bez vln znič nepř@telsou základnu.
+mode.attack.description = Znič nepřátelskou základnu.\n[gray]Vyžaduje přítomnost červeného jádra na mapě.[]
mode.custom = Custom Rules
+
rules.infiniteresources = Nekonečno surovin
+rules.reactorexplosions = Reactor Explosions
rules.wavetimer = Časovač vln
-rules.waves = Wlny
+rules.waves = Vlny
rules.attack = Attack Mode
rules.enemyCheat = Infinite AI Resources
rules.unitdrops = Unit Drops
rules.unitbuildspeedmultiplier = Unit Creation Speed Multiplier
rules.unithealthmultiplier = Unit Health Multiplier
+rules.blockhealthmultiplier = Block Health Multiplier
rules.playerhealthmultiplier = Hráčovy životy(multiplejer)
rules.playerdamagemultiplier = Hráčův útok (multiplejer)
rules.unitdamagemultiplier = Demič jedmotek (Multiplejer)
@@ -706,9 +774,13 @@ rules.title.resourcesbuilding = surovyny & Stavby
rules.title.player = Hráči
rules.title.enemy = Nepřátelé
rules.title.unit = Jednotky
+rules.title.experimental = Experimental
+rules.lighting = Lighting
+rules.ambientlight = Ambient Light
+
content.item.name = Předměty
content.liquid.name = Tekutiny
-content.unit.name = jednotky
+content.unit.name = Jednotky
content.block.name = Blocks
content.mech.name = Mechy
item.copper.name = Měď
@@ -725,8 +797,8 @@ item.spore-pod.name = Spore Pod
item.sand.name = Písek
item.blast-compound.name = Výbušná směs
item.pyratite.name = Pyratite
-item.metaglass.name = Tvrzené sklo
-item.scrap.name = Scrap
+item.metaglass.name = Metasklo
+item.scrap.name = Šrot
liquid.water.name = Voda
liquid.slag.name = Rostavené železo
liquid.oil.name = Ropa
@@ -738,20 +810,21 @@ mech.delta-mech.name = Delta
mech.delta-mech.weapon = Obloukový generátor
mech.delta-mech.ability = Průtok
mech.tau-mech.name = Tau
-mech.tau-mech.weapon = Restruktní Laser
+mech.tau-mech.weapon = Restruktní laser
mech.tau-mech.ability = Opravná dávka
mech.omega-mech.name = Omega
mech.omega-mech.weapon = Rojové střely
-mech.omega-mech.ability = Obrněná Konfigurace
+mech.omega-mech.ability = Obrněná konfigurace
mech.dart-ship.name = Šipka
mech.dart-ship.weapon = Opakovač
mech.javelin-ship.name = Oštěp
-mech.javelin-ship.weapon = Dávka Raket
-mech.javelin-ship.ability = Výbojový Posilovač
+mech.javelin-ship.weapon = Dávka raket
+mech.javelin-ship.ability = Výbojový posilovač
mech.trident-ship.name = Trojzubec
mech.trident-ship.weapon = Bombová zátoka
mech.glaive-ship.name = Glaiva
-mech.glaive-ship.weapon = Plamenný Opakovač
+mech.glaive-ship.weapon = Plamenný opakovač
+item.corestorable = [lightgray]Storable in Core: {0}
item.explosiveness = [LIGHT_GRAY]Výbušnost: {0}%
item.flammability = [LIGHT_GRAY]Zápalnost: {0}%
item.radioactivity = [LIGHT_GRAY]Radioaktivita: {0}%
@@ -767,34 +840,35 @@ mech.buildspeed = [LIGHT_GRAY]Rychlost stavění: {0}%
liquid.heatcapacity = [LIGHT_GRAY]Kapacita teploty: {0}
liquid.viscosity = [LIGHT_GRAY]Viskozita: {0}
liquid.temperature = [LIGHT_GRAY]Teplota: {0}
-block.sand-boulder.name = Sand Boulder
+
+block.sand-boulder.name = Balvan písku
block.grass.name = Tráva
-block.salt.name = sůl
+block.salt.name = Sůl
block.saltrocks.name = Solný kámen
-block.pebbles.name = Pebbles
+block.pebbles.name = Oblázky
block.tendrils.name = Tendrils
block.sandrocks.name = Písečný kámen
-block.spore-pine.name = Spore Pine
-block.sporerocks.name = Spore Rocks
-block.rock.name = Rock
+block.spore-pine.name = Spórová borovice
+block.sporerocks.name = Spórové kamení
+block.rock.name = Kámen
block.snowrock.name = Sněhový kámen
-block.snow-pine.name = Snow Pine
-block.shale.name = Shale
-block.shale-boulder.name = Shale Boulder
+block.snow-pine.name = Sněžná borovice
+block.shale.name = Břidlice
+block.shale-boulder.name = Břidličný balvan
block.moss.name = Mech
-block.shrubs.name = Shrubs
-block.spore-moss.name = Spore Moss
-block.shalerocks.name = Shale Rocks
+block.shrubs.name = Křoví
+block.spore-moss.name = Spórový mech
+block.shalerocks.name = Břidlicové kamení
block.scrap-wall.name = Stará zeď
block.scrap-wall-large.name = Velá stará zeď
-block.scrap-wall-huge.name = obří stará zeď
+block.scrap-wall-huge.name = Obří stará zeď
block.scrap-wall-gigantic.name = Gigantická stará zeď
block.thruster.name = Thruster
-block.kiln.name = Kiln
+block.kiln.name = Pec
block.graphite-press.name = Graphitový lis
-block.multi-press.name = Všětraný lys
-block.constructing = {0} [LIGHT_GRAY](Constructing)
-block.spawn.name = Nepřátelský Spawn
+block.multi-press.name = Všětraný lis
+block.constructing = {0} [LIGHT_GRAY](Ve výstavbě)
+block.spawn.name = Nepřátelský spawn
block.core-shard.name = Core: Shard
block.core-foundation.name = Core: Foundation
block.core-nucleus.name = Core: Nucleus
@@ -836,14 +910,14 @@ block.dark-panel-6.name = Dark Panel 6
block.dark-metal.name = Dark Metal
block.ignarock.name = Igna Rock
block.hotrock.name = Hot Rock
-block.magmarock.name = Magma Rock
-block.cliffs.name = Cliffs
+block.magmarock.name = Magmatický kámen
+block.cliffs.name = Útesy
block.copper-wall.name = Měděná zeď
block.copper-wall-large.name = Velká měděná zeď
-block.titanium-wall.name = Titanium Zeď
-block.titanium-wall-large.name = Velká Titanium Zeď
-block.plastanium-wall.name = Plastanium Zeď
-block.plastanium-wall-large.name = Velká Plastanium Zeď
+block.titanium-wall.name = Titaniová zeď
+block.titanium-wall-large.name = Velká titaniová zeď
+block.plastanium-wall.name = Plastaniová zeď
+block.plastanium-wall-large.name = Velká plastaniová zeď
block.phase-wall.name = Fázová stěna
block.phase-wall-large.name = Velká fázová stěna
block.thorium-wall.name = Thoriová stěna
@@ -857,14 +931,16 @@ block.hail.name = Hail
block.lancer.name = Lancer
block.conveyor.name = Dopravník
block.titanium-conveyor.name = Titániový dopravník
-block.armored-conveyor.name = Armored Conveyor
-block.armored-conveyor.description = Moves items at the same speed as titanium conveyors, but possesses more armor. Does not accept inputs from the sides from anything but other conveyors.
+block.armored-conveyor.name = Obrněný dopravník
+block.armored-conveyor.description = Přepravuje předměty stejně rychle jako titaniový přepravník. Je obrněný a déle vydrží, avšak nepřijímá předměty z boku z ničeho jiného než jiných přepravníků.
block.junction.name = Křižovatka
block.router.name = Směrovač
block.distributor.name = Distributor
block.sorter.name = Dělička
-block.inverted-sorter.name = Inverted Sorter
-block.message.name = Message
+block.inverted-sorter.name = Obrácená třídička
+block.message.name = Zpráva
+block.illuminator.name = Illuminator
+block.illuminator.description = A small, compact, configurable light source. Requires power to function.
block.overflow-gate.name = Brána přetečení
block.silicon-smelter.name = Silicon Smelter
block.phase-weaver.name = Tkalcovna pro fázovou tkaninu
@@ -878,6 +954,7 @@ block.coal-centrifuge.name = Coal Centrifuge
block.power-node.name = Energetický uzel
block.power-node-large.name = Velký energetický uzel
block.surge-tower.name = Surge Tower
+block.diode.name = Battery Diode
block.battery.name = Baterie
block.battery-large.name = Velká baterie
block.combustion-generator.name = Spalovací generátor
@@ -901,6 +978,7 @@ block.mechanical-pump.name = Mechanická pumpa
block.item-source.name = Zdroj předmětů
block.item-void.name = Prázdnota pro předměty
block.liquid-source.name = Zdroj tekutin
+block.liquid-void.name = Liquid Void
block.power-void.name = Prázdnota pro energii
block.power-source.name = Nekonečný zdroj energie
block.unloader.name = Odbavovač
@@ -911,48 +989,49 @@ block.salvo.name = Salva
block.ripple.name = Vlnění
block.phase-conveyor.name = Fázový přepravník
block.bridge-conveyor.name = Mostový přepravník
-block.plastanium-compressor.name = Kompresor na Plastanium
+block.plastanium-compressor.name = Kompresor na plastanium
block.pyratite-mixer.name = Pyratit mixér
block.blast-mixer.name = Výbušninový mixér
block.solar-panel.name = Solární panel
block.solar-panel-large.name = Velký solární panel
-block.oil-extractor.name = Ropný Extraktor
+block.oil-extractor.name = Ropný extraktor
block.command-center.name = Řídící středisko
block.draug-factory.name = Draug Miner Drone Factory
-block.spirit-factory.name = Továrna na Spirit Drony
-block.phantom-factory.name = Továrna na Fantom Drony
+block.spirit-factory.name = Továrna na Spirit drony
+block.phantom-factory.name = Továrna na Fantom drony
block.wraith-factory.name = Továrna na Wraithy
-block.ghoul-factory.name = Továrna na Ghůl Bombardéry
-block.dagger-factory.name = Továrna na Dagger Mechy
-block.crawler-factory.name = Crawler Mech Factory
-block.titan-factory.name = Továrna na Titán Mechy
-block.fortress-factory.name = Továrna na Fortress Mechy
+block.ghoul-factory.name = Továrna na Ghůl bombardéry
+block.dagger-factory.name = Továrna na Dagger mechy
+block.crawler-factory.name = Továrna na Crawler mechy
+block.titan-factory.name = Továrna na Titán mechy
+block.fortress-factory.name = Továrna na Fortress mechy
block.revenant-factory.name = Továrna na Revenanty
-block.repair-point.name = Opravný Bod
+block.repair-point.name = Opravný bod
block.pulse-conduit.name = Pulzní potrubí
+block.plated-conduit.name = Plated Conduit
block.phase-conduit.name = Fázové potrubí
block.liquid-router.name = Směrovač tekutin
block.liquid-tank.name = Nádrž na tekutiny
block.liquid-junction.name = Křižovatka tekutin
block.bridge-conduit.name = Mostové potrubí
block.rotary-pump.name = Rotační pumpa
-block.thorium-reactor.name = Thoriový Reaktor
-block.mass-driver.name = Hromadný Distributor
+block.thorium-reactor.name = Thoriový reaktor
+block.mass-driver.name = Hromadný distributor
block.blast-drill.name = Tlakovzdušný vrt
block.thermal-pump.name = Termální pumpa
-block.thermal-generator.name = Termální Generátor
+block.thermal-generator.name = Termální generátor
block.alloy-smelter.name = Slitinová pec
block.mender.name = Mender
block.mend-projector.name = Opravný projektor
block.surge-wall.name = Impulzní stěna
-block.surge-wall-large.name = Velká Impulzní stěna
+block.surge-wall-large.name = Velká impulzní stěna
block.cyclone.name = Cyklón
block.fuse.name = Fůze
block.shock-mine.name = Šoková mina
block.overdrive-projector.name = Vysokorychlostní projektor
block.force-projector.name = Silový projektor
block.arc.name = Oblouk
-block.rtg-generator.name = RTG Generátor
+block.rtg-generator.name = RTG generátor
block.spectre.name = Spektr
block.meltdown.name = Meltdown
block.container.name = Kontejnér
@@ -965,14 +1044,14 @@ team.orange.name = oranžová
team.derelict.name = derelict
team.green.name = zelená
team.purple.name = fialová
-unit.spirit.name = Spirit Dron
+unit.spirit.name = Spirit dron
unit.draug.name = Draug Miner Drone
-unit.phantom.name = Fantom Dron
+unit.phantom.name = Fantom dron
unit.dagger.name = Dagger
unit.crawler.name = Crawler
unit.titan.name = Titán
-unit.ghoul.name = Ghůl Bombardér
-unit.wraith.name = Bojovník Wraith
+unit.ghoul.name = Ghůl bombardér
+unit.wraith.name = Wraith
unit.fortress.name = Pevnost
unit.revenant.name = Revenant
unit.eruptor.name = Eruptor
@@ -980,31 +1059,32 @@ unit.chaos-array.name = Chaos Array
unit.eradicator.name = Eradicator
unit.lich.name = Lich
unit.reaper.name = Reaper
-tutorial.next = [lightgray]
-tutorial.intro = You have entered the[scarlet] Mindustry Tutorial.[]\nBegin by[accent] mining copper[]. Tap a copper ore vein near your core to do this.\n\n[accent]{0}/{1} copper
-tutorial.intro.mobile = You have entered the[scarlet] Mindustry Tutorial.[]\nSwipe the screen to move.\n[accent]Pinch with 2 fingers [] to zoom in and out.\nBegin by[accent] mining copper[]. Move close to it, then tap a copper ore vein near your core to do this.\n\n[accent]{0}/{1} copper
-tutorial.drill = Manuální těžba je neefektivní.\n[accent]Vrty []budou těžit automaticky.\npolož jeden na měděnou rudu.
-tutorial.drill.mobile = Mining manually is inefficient.\n[accent]Drills []can mine automatically.\nTap the drill tab in the bottom right.\nSelect the[accent] mechanical drill[].\nPlace it on a copper vein by tapping, then press the[accent] checkmark[] below to confirm your selection.\nPress the[accent] X button[] to cancel placement.
-tutorial.blockinfo = Each block has different stats. Each drill can only mine certain ores.\nTo check a block's info and stats,[accent] tap the "?" button while selecting it in the build menu.[]\n\n[accent]Access the Mechanical Drill's stats now.[]
-tutorial.conveyor = [accent]Dopravníky[] jsou zapotřebí k dopravě materiálu k jádru.\nVytvoř řadu dopravníku od vrtu až k jádru.
-tutorial.conveyor.mobile = [accent]Conveyors[] are used to transport items to the core.\nMake a line of conveyors from the drill to the core.\n[accent] Place in a line by holding down your finger for a few seconds[] and dragging in a direction.\n\n[accent]{0}/{1} conveyors placed in line\n[accent]0/1 items delivered
+tutorial.next = [lightgray]
+tutorial.intro = Vítej ve [scarlet]výuce Mindustry.[]\nZačni [accent] těžením mědi[] - klikni na měděnou žílu v blízkosti jádra.\n\n[accent]{0}/{1} copper
+tutorial.intro.mobile = Vítej ve [scarlet]výuce Mindustry.[]\nPohybuj se táhnutím do stran.\nPřibližuj a oddaluj [accent]2 prsty [].\nZačni [accent] těžením mědi[] - přibliž se k měděné žíle v blízkosti jádra a klepni na ni.\n\n[accent]{0}/{1} mědi
+tutorial.drill = Manuální těžba je neefektivní.\n[accent]Vrty []budou těžit automaticky.\nPostav jeden na měděnou rudu.
+tutorial.drill.mobile = Manuální těžba je neefektivní.\n[accent]Vrty []budou těžit automaticky.\nKlepni na vrt v záložce dole vpravo.\nVyber [accent] mechanický vrt[].\nPolož ho klepnutím na měděnou žílu a následně potvrď [accent] fajfkou[] níže.\nStiskni [accent] X [] pro zrušení stavby.
+tutorial.blockinfo = Každý blok má jiné vlastnosti. Každý vrt může těžit pouze některé suroviny.\nNa tyto vlastnosti se můžeš podívat [accent] klepnutím na "?" ve stavebním menu.[]\n\n[accent] Nyní se podívej na vlastnosti mechanického vrtu.[]
+tutorial.conveyor = [accent]Dopravníky[] jsou zapotřebí k dopravě materiálu k jádru.\nVytvoř řadu dopravníků od vrtu až k jádru
+tutorial.conveyor.mobile = [accent]Dopravníky[] jsou zapotřebí k dopravě materiálu k jádru.\nVytvoř řadu dopravníku od vrtu až k jádru.\n[accent] Pokládej dopravníky v řadě dlouhým stiskem prstu[] a táhnutím v požadovaném směru.\n\n[accent]{0}/{1} přepravníků položeno v řadě\n[accent]0/1 předmětů doručeno
tutorial.turret = Defenzivní stavby musí být postaveny za účelem obrany vůči[LIGHT_GRAY] nepříteli[].\nPostav střílnu Duo blízko svého jádra.
-tutorial.drillturret = Duo střílny požadují[accent] měd jako střelivo []ke střelbě.\nPolož vrt blízko střílny pro zásobování mědí.
-tutorial.pause = During battle, you are able to[accent] pause the game.[]\nYou may queue buildings while paused.\n\n[accent]Press space to pause.
-tutorial.pause.mobile = During battle, you are able to[accent] pause the game.[]\nYou may queue buildings while paused.\n\n[accent]Press this button in the top left to pause.
-tutorial.unpause = Now press space again to unpause.
-tutorial.unpause.mobile = Now press it again to unpause.
-tutorial.breaking = Blocks frequently need to be destroyed.\n[accent]Hold down right-click[] to destroy all blocks in a selection.[]\n\n[accent]Destroy all the scrap blocks to the left of your core using area selection.
-tutorial.breaking.mobile = Blocks frequently need to be destroyed.\n[accent]Select deconstruction mode[], then tap a block to begin breaking it.\nDestroy an area by holding down your finger for a few seconds[] and dragging in a direction.\nPress the checkmark button to confirm breaking.\n\n[accent]Destroy all the scrap blocks to the left of your core using area selection.
-tutorial.withdraw = In some situations, taking items directly from blocks is necessary.\nTo do this, [accent]tap a block[] with items in it, then [accent]tap the item[] in the inventory.\nMultiple items can be withdrawn by [accent]tapping and holding[].\n\n[accent]Withdraw some copper from the core.[]
-tutorial.deposit = Deposit items into blocks by dragging from your ship to the destination block.\n\n[accent]Deposit your copper back into the core.[]
-tutorial.waves = [LIGHT_GRAY] nepřítel[] je přibližuje.\n\nBraň své jádro po dobu dvou vln, postav více střílen.
-tutorial.waves.mobile = The[lightgray] enemy[] approaches.\n\nDefend the core for 2 waves. Your ship will automatically fire at enemies.\nBuild more turrets and drills. Mine more copper.
-tutorial.launch = Once you reach a specific wave, you are able to[accent] launch the core[], leaving your defenses behind and[accent] obtaining all the resources in your core.[]\nThese resources can then be used to research new technology.\n\n[accent]Press the launch button.
+tutorial.drillturret = Duo střílny požadují[accent] měděnou munici []jako střelivo.\nPolož mechanický vrt blízko střílny pro zásobování mědí.
+tutorial.pause = Během boje můžeš[accent] pauznout hru.[]\nBěhem pauzy je možné plánovat stavbu budov.\n\n[accent]Pauzni mezerníkem.
+tutorial.pause.mobile = Během boje můžeš[accent] pauznout hru.[]\nBěhem pauzy je možné plánovat stavbu budov.\n\n[accent]Pauzu dáš tímhle tlačítkem vlevo nahoře.
+tutorial.unpause = Teď zmáčkni mezerník znova a odpauzuj hru.
+tutorial.unpause.mobile = Teď ho zmáčkni znova a odpauzuj hru.
+tutorial.breaking = Často je nutné bloky i ničit.\n[accent]Drž pravé tlačítko[] a táhni pro výběr oblasti bloků ke zničení.[]\n\n[accent]Znič všechny bloky šrotu vlevo od Tvého jádra.
+tutorial.breaking.mobile = Často je nutné bloky i ničit.\n[accent]Vyber rozebírací mód[] a klepni na blok, který chceš zničit.\nZnič celou oblast delším stiskem prstu[] a táhnutím v nějakém směru.\nZmáčkni fajfku pro potvrzení zničení.\n\n[accent]Znič všechny bloky šrotu vlevo od Tvého jádra.
+tutorial.withdraw = Někdy je třeba odebírat předměty přímo z bloků.\n[accent]Klikni na blok[], ve kterém jsou předměty a pak [accent]klikni na předmět[] z jeho inventáře.\nVícero předmětů může být odebráno [accent]kliknutím a držením[].\n\n[accent]Odeber nějakou měď z jádra.[]
+tutorial.deposit = Vložit předměty dovnitř bloku můžeš přetažením z Tvé lodi na cílový blok.\n\n[accent]Vlož svou měď zpět do jádra.[]
+tutorial.waves = [LIGHT_GRAY] Nepřítel[] se přibližuje.\n\nUbraň své jádro po dobu 2 vln, postav více střílen.
+tutorial.waves.mobile = [lightgray] Nepřítel[] se přibližuje.\n\nUbraň své jádro po dobu 2 vln. Tvá loď bude automaticky střílet po nepřátelských jednotkách.\nPostav více střílen a vrtů. Natěž více mědi.
+tutorial.launch = Jakmile dosáhneš určité vlny, budeš moci [accent]vyslat své jádro zpět[]. Opustíš tím svou základnu a [accent]získáš suroviny uložené v jádře[].\nZískané suroviny mohou být použity pro výzkum nových technologií.\n\n[accent]Stiskni tlačítko pro vyslání jádra.
+
item.copper.description = Užitečný strukturální materiál. Používá se rozsáhle v ostatních typech bloků.
item.lead.description = Základní počáteční materiál. Požívá se rozsáhle v elektronice a v blocích pro transport tekutin.
-item.metaglass.description = Vemi důležitá suočást všeho so se týká tekutin
-item.graphite.description = Stlačený uhlík nedílná součást většiny infrastruktur
+item.metaglass.description = Velmi důležitá součást všeho, co se týká tekutin
+item.graphite.description = Stlačený uhlík, používaný v elektronických komponentách a též jako munice.
item.sand.description = Běžný materiál rozšířeně používaný v spalování slitin.
item.coal.description = Běžné a snadno dostupné palivo, pochází z Ostravy.
item.titanium.description = Vzácný, velice lehký kov, používá se rozsáhle v trasportu tekutin, vrtech a letounech.
@@ -1022,29 +1102,29 @@ liquid.slag.description = Rostavený scrap pou žívá se k vírobě olova mědi
liquid.oil.description = Může být spálen, vybouchnout nebo použit jako chlazení.
liquid.cryofluid.description = Nejefektivnější tekutina pro chlazení.
mech.alpha-mech.description = Standartní mech. Má slušnou rychlost a poškození; Může vytvořit až 3 drony Pro zvýšenou ofenzivní způsobilost.
-mech.delta-mech.description = Rychlý, Lehce obrněný mech vytvořený pro udeř a uteč akce. Působí malé poškození vůči struktůrám, ale může zneškodnit velkou skupinu nepřátelských jednotek velmi rychle svýmy elektro-obloukovými zbraněmi
+mech.delta-mech.description = Rychlý, lehce obrněný mech vytvořený pro udeř a uteč akce. Působí malé poškození vůči struktůrám, ale může zneškodnit velkou skupinu nepřátelských jednotek velmi rychle svýmy elektro-obloukovými zbraněmi
mech.tau-mech.description = Podpůrný mech. Léčí spojenecké stavby a jednotky střelbou do nich. Může léčit i spojence ve svém poli působení.
mech.omega-mech.description = Objemný a velice dovře obrněný mech, určen pro útok v přední linii. Jeho schopnost obrnění blokuje až 90% příchozího poškození.
-mech.dart-ship.description = Standartní loď. Poměrně rychlý a lehký, má malou ofenzívu a pomalou rychlost těžení.
+mech.dart-ship.description = Standartní loď. Poměrně rychlá a lehká, má malou ofenzívu a pomalou rychlost těžení.
mech.javelin-ship.description = Loď stylu udeř a uteč. Zpočátku pomalý ale umí akcelerovat do obrovské rychlosti a létat u nepřátelských základen a působit značné škody svými elektrickými zbraněmi a raketami.
mech.trident-ship.description = Těžký bombardér. Docela dobře obrněný.
-mech.glaive-ship.description = Obrovská, Dobře obrněná střelecká loď. Vybavena zápalným opakovačem. Dobrá akcelerace a maximální rychlost.
-unit.draug.description = A primitive mining drone. Cheap to produce. Expendable. Automatically mines copper and lead in the vicinity. Delivers mined resources to the closest core.
-unit.spirit.description = Startovní dron. Standartně se objevuje u jádra. Automaticky těží rudy a opravuje stavby.
+mech.glaive-ship.description = Obrovská, dobře obrněná střelecká loď. Vybavena zápalným opakovačem. Dobrá akcelerace a maximální rychlost.
+unit.draug.description = Jednoduchý těžící dron. Levný a postradatelný. Automaticky těží měď a olovo v blízkosti. Natěžené suroviny donese do nejbližšího jádra.
+unit.spirit.description = Startovní dron. Standardně se objevuje u jádra. Automaticky těží rudy a opravuje stavby.
unit.phantom.description = Pokročilý dron. Automaticky těží rudy a opravuje stavby. Podstatně víc efektivní než Spirit dron.
unit.dagger.description = Základní pozemní jednotka. Efektivní ve velkém počtu.
-unit.crawler.description = A ground unit consisting of a stripped-down frame with high explosives strapped on top. Not particular durable. Explodes on contact with enemies.
+unit.crawler.description = Pozemní jednotka zkonstruovaná z okřesané železné kostry a připlácnutých výbušnin. Vydrží málo a exploduje při kontaktu.
unit.titan.description = Pokročilá, obrněná pozemní jednotka. Útočí jak na pozemní tak vzdušné nepřátelské jednotky.
unit.fortress.description = Težká, pozemní artilérní jednotka.
-unit.eruptor.description = A heavy mech designed to take down structures. Fires a stream of slag at enemy fortifications, melting them and setting volatiles on fire.
+unit.eruptor.description = Těžký protibudovní mech. Střílí proud žhavé kapaliny na nepřátelské budovy. Zapaluje a roztavuje vše v cestě.
unit.wraith.description = Rychlý, udeř a uteč stíhací letoun.
unit.ghoul.description = Těžký, kobercový bombardér.
unit.revenant.description = A heavy, hovering missile array.
-block.message.description = Stores a message. Used for communication between allies.
-block.graphite-press.description = Compresses chunks of coal into pure sheets of graphite.
-block.multi-press.description = An upgraded version of the graphite press. Employs water and power to process coal quickly and efficiently.
+block.message.description = Ukládá zprávu. Používá se pro komunikaci mezi spojenci.
+block.graphite-press.description = Přeměňuje neforemné kusy uhlí do ušlechtilých výlisků graphitu.
+block.multi-press.description = Vylepšená verze graphitového lisu. Využívá vodu a energii k rychlejšímu a efektivnějšímu zpracování uhlí.
block.silicon-smelter.description = Redukuje písek s vysoce čistým koksem za účelem výroby křemíku.
-block.kiln.description = Smelts sand and lead into metaglass. Requires small amounts of power.
+block.kiln.description = Přetavuje písek a olovo do metaskla. Vyžaduje malé množství energie.
block.plastanium-compressor.description = Produkuje plastánium za pomocí titánia a ropy.
block.phase-weaver.description = Produkuje fázovou tkaninu z radioaktivního thoria a velkého množství písku.
block.alloy-smelter.description = Produkuje impulzní slitinu z titánia, olova, křemíku a mědi.
@@ -1053,7 +1133,7 @@ block.blast-mixer.description = Používá ropu k přeměně pyratitu do méně
block.pyratite-mixer.description = Míchá uhlí, olovo a písek do velice hořlavého pyratitu.
block.melter.description = Taví kámen při velice vysokých teplotách na lávu.
block.separator.description = Vystaví kámen velkému tlaku vody k získání různých materiálů obsažené v kameni.
-block.spore-press.description = Compresses spore pods into oil.
+block.spore-press.description = Vylisuje ze spórů ropu.
block.pulverizer.description = Drtí kámen na písek. Užitečné když se v oblasti nenalézá písek.
block.coal-centrifuge.description = Solidifes oil into chunks of coal.
block.incinerator.description = Zbaví tě přebytku předmětů.
@@ -1062,27 +1142,28 @@ block.power-source.description = Nekonečný zdroj energie. Jen pro Sandbox.
block.item-source.description = Nekonečný zdroj předmětů. Jen pro Sandbox.
block.item-void.description = Likviduje jakéhokoliv vstupní předmět bež použití energie. Jen pro Sandbox.
block.liquid-source.description = Nekonečný zdroj tekutin. Jen pro Sandbox.
-block.copper-wall.description = Levný defenzivní blok.\nUžitečný k obraně tvého jádra a střílen v prvotních vlnách nepřátel.
-block.copper-wall-large.description = Levný defenzivní blok.\nUžitečný k obraně tvého jádra a střílen v prvotních vlnách nepřátel.\nZabírá více polí.
-block.titanium-wall.description = A moderately strong defensive block.\nProvides moderate protection from enemies.
-block.titanium-wall-large.description = A moderately strong defensive block.\nProvides moderate protection from enemies.\nSpans multiple tiles.
-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.liquid-void.description = Removes any liquids. Sandbox only.
+block.copper-wall.description = Levný defenzivní blok.\nUžitečný k obraně Tvé základny a střílen v prvotních vlnách nepřátel.
+block.copper-wall-large.description = Levný defenzivní blok.\nUžitečný k obraně Tvé základny a střílen v prvotních vlnách nepřátel.\nZabírá více polí.
+block.titanium-wall.description = Středně dobrý obranný blok.\nPoskytuje středně dobrou obranu proti nepřátelům.
+block.titanium-wall-large.description = Středně dobrý obranný blok.\nPoskytuje středně dobrou obranu proti nepřátelům.\nZabírá více polí.
+block.plastanium-wall.description = Speciální typ zdi, která je schopná absorbovat elektrické oblouky a blokuje energetické připojení.
+block.plastanium-wall-large.description = Speciální typ zdi, která je schopná absorbovat elektrické oblouky a blokuje energetické připojení.\nZabírá více polí.
block.thorium-wall.description = Sílný defenzivní blok.\nDobrá obrana vůči nepřátelům.
block.thorium-wall-large.description = Sílný defenzivní blok.\nDobrá obrana vůči nepřátelům..\nZabírá více polí.
-block.phase-wall.description = Né tak silná jako zeď Thoria ale odráží nepřátelské projektily dokud nejsou moc silné.
-block.phase-wall-large.description = Né tak silná jako zeď Thoria ale odráží nepřátelské projektily dokud nejsou moc silné.\nZabírá více polí.
+block.phase-wall.description = Není tak silná, jako zeď Thoria, ale odráží nepřátelské projektily dokud nejsou moc silné.
+block.phase-wall-large.description = Není tak silná, jako zeď Thoria, ale odráží nepřátelské projektily dokud nejsou moc silné.\nZabírá více polí.
block.surge-wall.description = Nejsilnější defenzivní blok.\nMá malou šanci vystřelit elektrický paprsek vůči útočníkovi.
block.surge-wall-large.description = Nejsilnější defenzivní blok.\nMá malou šanci vystřelit elektrický paprsek vůči útočníkovi.\nZabírá více polí.
block.door.description = Malé dveře, které se dají otevřít nebo zavřít kliknutím na ně.\nKdyž otevřené nepřátelé mohou střílet a dostat se skrz.
block.door-large.description = Velké dveře, které se dají otevřít nebo zavřít kliknutím na ně.\nKdyž otevřené nepřátelé mohou střílet a dostat se skrz.\nZabírá více polí.
-block.mender.description = Periodically repairs blocks in its vicinity. Keeps defenses repaired in-between waves.\nOptionally uses silicon to boost range and efficiency.
+block.mender.description = Pravidelně opravuje bloky ve svém okolí. Mezi vlnami opraví zátarasy.\nVolitelně lze využít křemíku pro posílení dosahu a efektivity.
block.mend-projector.description = Kontinuálně léčí bloky v poli svého působení.
block.overdrive-projector.description = Zrychluje funkce blízkých struktůr jako jsou vrty a dopravníky.
block.force-projector.description = Vytvoří okolo sebe šestihrané silové pole, chrání jednotky a budovy uvnitř sebe vůči střelám.
block.shock-mine.description = Působí poškození nepřátelským jednotkám při sešlápnutí. Skoro neviditelné nepřáteli.
block.conveyor.description = Základní blok přepravy předmětů. Nese předměty kupředu a automaticky plní střílny nebo bloky výroby do kterých směřují. dá se otáčet do různých směrů.
-block.titanium-conveyor.description = Pokročilý blok přepravy předmětů. Nese předměty rychleji jak standartní dopravníky.
+block.titanium-conveyor.description = Pokročilý blok přepravy předmětů. Nese předměty rychleji jak standardní dopravníky.
block.junction.description = Chová se jako most pro dva křížící se pásy dopravníků. Užitečný při situaci kdy dva rozdílné dopravníky dopravují dva rozdílné materiálny na rozdílné místa.
block.bridge-conveyor.description = Pokročilý blok přepravy předmětů. Dovoluje transport předmětů až přez tři pole jakéhokoliv terénu nebo budovy.
block.phase-conveyor.description = Pokročilý blok přepravy předmětů. Využívá energii k přepravě od jednoho bodu k druhému po velice dlouhé vzdálenosti.
@@ -1096,24 +1177,26 @@ block.mechanical-pump.description = Levná pumpa s pomalým tokem, ale nevyžadu
block.rotary-pump.description = Pokročilá pumpa která, zdvojnásobuje přísun tekutin za použití energie.
block.thermal-pump.description = Ultimátní pumpa. Trojnásobně rychlejší než mechanická pumpa a jediná pumpa která dokáže pracovat s lávou.
block.conduit.description = Základní blok přepravy tekutin. Funguje jako dopravník, ale na tekutiny, chápeš ne ? Užívá se s extraktory, pumpami nebo jiným potrubím.
-block.pulse-conduit.description = Pokročilý blok přepravy tekutin. Přepravuje tekutiny rychleji a více než standartní potrubí.
+block.pulse-conduit.description = Pokročilý blok přepravy tekutin. Přepravuje tekutiny rychleji a více než standardní potrubí.
+block.plated-conduit.description = Moves liquids at the same rate as pulse conduits, but possesses more armor. Does not accept fluids from the sides by anything other than conduits.\nLeaks less.
block.liquid-router.description = Příjmá tekutiny z jednoho směru a vypouští je rovnoměrně do zbylých tří směrů. Dokáže uložit na krátkou dobu nějaký obsah tekutin. Užitečný při rozdělení jednoho zdroje směřující do různých cílů.
block.liquid-tank.description = Uloží velké množství tekutin. Použíj ho pro vyrovnávací zásoby vody když je příděl nestabilní nebo jako záložní chlazení pro generátory.
block.liquid-junction.description = Chová se jako most pro dvě křížící se potrubí. Užitečný v situacích když dvě rozdílné potrubí nesou rozdílný obsah na rozdílná místa.
block.bridge-conduit.description = Pokročilý blok přepravy tekutin. Dovoluje transportovat tekutiny až přez tři pole jakéhokoliv terénu nebo budovy.
block.phase-conduit.description = Pokročilý blok přepravy tekutin. Používá energii k teleportu tekutin do druhého bodu přez několik polí.
block.power-node.description = Vysílá energii mezi propojenými uzly. Dokáže se propojit až se čtyřmi uzly či stavbami najednou. Uzel bude dostávat zásobu energie a bude ji distribuovat mezi připojené bloky.
-block.power-node-large.description = Má větší dosah než standartní energetický uzel and a dokáže propojit až 6 staveb nebo uzly.
-block.surge-tower.description = An extremely long-range power node with fewer available connections.
+block.power-node-large.description = Má větší dosah než standardní energetický uzel and a dokáže propojit až 6 staveb nebo uzly.
+block.surge-tower.description = Energetický uzel s extrémním dosahem, ale méně dostupnými přípojkami.
+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 = Ukládá energii kdykoliv kdy je nadbytek ,poskytuje energii kdykolik když je pokles energie v síti, tak dlouho doku zbývá kapacita.
-block.battery-large.description = Uloží více energie než standartní baterie.
+block.battery-large.description = Uloží více energie než standardní baterie.
block.combustion-generator.description = Generuje energii spalováním ropy nebo jinných hořlavých materiálů.
block.thermal-generator.description = Generuje obrovské množství energie z lávy.
block.turbine-generator.description = Více efektivní než spalovací generátor, ale vyžaduje dodatečný přísun vody.
-block.differential-generator.description = Generates large amounts of energy. Utilizes the temperature difference between cryofluid and burning pyratite.
+block.differential-generator.description = Generuje velké množství energie. Využívá teplotního rozdílu mezi chladící kapalinou a hořícím pyratitem.
block.rtg-generator.description = Rádioizotopní Termoelektrický Generátor nevyžaduje chlazení, za to generuje méně energie než Thoriový generátor.
block.solar-panel.description = Poskytuje malé množství energie ze slunce.
-block.solar-panel-large.description = Poskytuje mnohem lepší zdroj energie než standartní solární panel, za to je mnohem nákladnější na stavbu.
+block.solar-panel-large.description = Poskytuje mnohem lepší zdroj energie než standardní solární panel, za to je mnohem nákladnější na stavbu.
block.thorium-reactor.description = Generuje obrovské množství energie z radioaktivního thoria. Vyžaduje konstantní chlazení. Způsobí velikou explozi je-li zásobován nedostatečným množstvím chlazení. Výstup energie závisí na plnosti obsahu generátoru, základní generování energie se aktivuje při poloviční kapacitě.
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 = Levný vrt. Při položení na vhodné pole, natrvalo a pomalu produkuje materiál na který byl položen.
@@ -1123,17 +1206,17 @@ block.blast-drill.description = Ultimátní vrt, vyžaduje velké množství ene
block.water-extractor.description = Extrahuje vodu ze země. Vhodný k použití když se v oblasti nenachází zdroj vody.
block.cultivator.description = Kultivuje půdu vodou za účelem získání biohmoty.
block.oil-extractor.description = Vyžaduje velké množství energie na extrakci ropy z písku. Použíj ho když se v oblasti nenachází žádný zdroj ropy.
-block.core-shard.description = The first iteration of the core capsule. Once destroyed, all contact to the region is lost. Do not let this happen.
-block.core-foundation.description = The second version of the core. Better armored. Stores more resources.
-block.core-nucleus.description = The third and final iteration of the core capsule. Extremely well armored. Stores massive amounts of resources.
-block.vault.description = Ukládá velké množství předmětů každého typu. Připojené kontejnéry, trezory nebo jádra se budou chovat jako samostatné skladovací jednotky. [LIGHT_GRAY] Odbavovač[] lže použít pro odbavení předmětů z trezoru.
-block.container.description = Ukládá malé množství předmětů každého typu. Připojené kontejnéry, trezory nebo jádra se budou chovat jako samostatné skladovací jednotky. [LIGHT_GRAY] Odbavovač[] lze použít pro odbavení předmětů z kontejnéru.
-block.unloader.description = Vykládá předměty z kontejnéru, trezoru nebo jádra na dopravník nebo přímo do produktivních bloků. Druh předmětu pro vykládání lze měti kliknutím na odbavovač.
-block.launch-pad.description = Launches batches of items without any need for a core launch. Unfinished.
-block.launch-pad-large.description = An improved version of the launch pad. Stores more items. Launches more frequently.
+block.core-shard.description = První verze jádra. V případě, že je zničeno, veškerý kontakt s regionem je ztracen. Nedopusťte aby se to stalo.
+block.core-foundation.description = Druhá, lépe obrněná verze jádra. Pojme více surovin.
+block.core-nucleus.description = Třetí a finální iterace vývoje jádra. Extrémně obrněná, extrémně prostorná.
+block.vault.description = Ukládá velké množství předmětů každého typu. Připojené kontejnéry, trezory nebo jádra se budou chovat jako samostatné skladovací jednotky. [LIGHT_GRAY]Odbavovač[] lze použít pro odbavení předmětů z trezoru.
+block.container.description = Ukládá malé množství předmětů každého typu. Připojené kontejnéry, trezory nebo jádra se budou chovat jako samostatné skladovací jednotky. [LIGHT_GRAY]Odbavovač[] lze použít pro odbavení předmětů z kontejnéru.
+block.unloader.description = Vykládá předměty z kontejnéru, trezoru nebo jádra na dopravník nebo přímo do produktivních bloků. Druh předmětu pro vykládání lze změnit kliknutím na odbavovač.
+block.launch-pad.description = Posílá dávky předmětů do vesmíru bez nutnosti vysílat jádro. Nedokončený.
+block.launch-pad-large.description = Vylepšený Launch Pad. Větší úložný prostor, častěji vysílán do vesmíru.
block.duo.description = Malá, levná střílna.
-block.scatter.description = A medium-sized anti-air turret. Sprays clumps of lead or scrap flak at enemy units.
-block.scorch.description = Burns any ground enemies close to it. Highly effective at close range.
+block.scatter.description = Protivzdušná střílna střední velikosti. Střílí hrstky olova nebo šrotu.
+block.scorch.description = Spálí nepřátele v blízkosti na prach. Velmi efektivní na malé vzdálenosti.
block.hail.description = Malá artilérní střílna.
block.wave.description = Středně vělká, rychle pálící střílna, která střílí krystalizované bubliny.
block.lancer.description = Středně velká střílna, která střílí nabité elektrické paprsky.
@@ -1145,22 +1228,22 @@ block.ripple.description = Velká artilérní střílna, která vystřelí něko
block.cyclone.description = Velká rychle pálící střílna.
block.spectre.description = Velká střílna, která vystřelí dva mocné projektily naráz.
block.meltdown.description = Velká střílna, která vystřelí mocný paprsek dalekého dosahu.
-block.command-center.description = Issues movement commands to allied units across the map.\nCauses units to patrol, attack an enemy core or retreat to the core/factory. When no enemy core is present, units will default to patrolling under the attack command.
-block.draug-factory.description = Produces Draug mining drones.
+block.command-center.description = Umožňuje zadávat příkazy k pohybu spojeneckých jednotek po mapě.\nUmožňuje výběr mezi patrolováním, útokem na nepřítele, či návratem k jádru nebo továrně. Pokud se na mapě nenachází nepřátelské jádro, jednotky budou patrolovat v útočném režimu.
+block.draug-factory.description = Produkuje těžící Draug drony.
block.spirit-factory.description = Produkuje lehké drony, kteří teží minerály a opravují budovy
block.phantom-factory.description = Produkuje pokročilé drony kteří jsou podstatně efektivnější jak spirit droni.
block.wraith-factory.description = Produkuje rychlé, udeř a uteč stíhače.
block.ghoul-factory.description = Produkuje těžké kobercové bombardéry.
block.revenant-factory.description = Produkuje vzdušné, težké laserové stíhače..
-block.dagger-factory.description = Produkuje standartní pozemní jednotky.
+block.dagger-factory.description = Produkuje standardní pozemní jednotky.
block.crawler-factory.description = Produces fast self-destructing swarm units.
block.titan-factory.description = Produkuje pokročilé, orněné pozemní jednotky.
block.fortress-factory.description = Produkuje těžké artilérní, pozmení jednotky.
block.repair-point.description = Kontinuálně léčí nejbližší budovy a jednotky.
-block.dart-mech-pad.description = Provides transformation into a basic attack mech.\nUse by tapping while standing on it.
-block.delta-mech-pad.description = Zanech zde své aktuální plavidlo a změn ho na rychlého, lehce obrněného mecha určeného pro udeř a uteč operace.\nPoužíj ho poklikáním když se nacházíš nad ním.
-block.tau-mech-pad.description = Zanech zde své aktuální plavidlo a změn ho na na podpůrného mecha, který léčí spojenecké budovy a jednotky.\nPoužíj ho poklikáním když se nacházíš nad ním.
-block.omega-mech-pad.description = Zanech zde své aktuální plavidlo a změn ho na objemného dobře obrněného mecha, určeného pro útok v přední linii.\nPoužíj ho poklikáním když se nacházíš nad ním.
-block.javelin-ship-pad.description = Zanech zde své aktuální plavidlo a změn ho na silný a rychlý stíhač s bleskovými zbraněmi.\nPoužíj ho poklikáním když se nacházíš nad ním.
-block.trident-ship-pad.description = Zanech zde své aktuální plavidlo a změň ho do docela dobře obrněného těžkého bombardéru.\nPoužíj ho poklikáním když se nacházíš nad ním.
-block.glaive-ship-pad.description = Zanech zde své aktuální plavidlo a změn ho na velkou, dobře obrněnou střeleckou loď.\nPoužíj ho poklikáním když se nacházíš nad ním.
+block.dart-mech-pad.description = Zanech zde své aktuální plavidlo a vyměň ho za základního útočného mecha.\nAktivuj kliknutím, když se nacházíš nad platformou.
+block.delta-mech-pad.description = Zanech zde své aktuální plavidlo a vyměň ho za rychlého, lehce obrněného mecha určeného pro udeř a uteč operace.\nAktivuj kliknutím, když se nacházíš nad platformou.
+block.tau-mech-pad.description = Zanech zde své aktuální plavidlo a vyměň ho za na podpůrného mecha, který léčí spojenecké budovy a jednotky.\nAktivuj kliknutím, když se nacházíš nad platformou.
+block.omega-mech-pad.description = Zanech zde své aktuální plavidlo a vyměň ho za objemného dobře obrněného mecha, určeného pro útok v přední linii.\nAktivuj kliknutím, když se nacházíš nad platformou.
+block.javelin-ship-pad.description = Zanech zde své aktuální plavidlo a vyměň ho za silný a rychlý stíhač s bleskovými zbraněmi.\nAktivuj kliknutím, když se nacházíš nad platformou.
+block.trident-ship-pad.description = Zanech zde své aktuální plavidlo a vyměň ho za docela dobře obrněného těžkého bombardéru.\nAktivuj kliknutím, když se nacházíš nad platformou.
+block.glaive-ship-pad.description = Zanech zde své aktuální plavidlo a vyměň ho za velkou, dobře obrněnou střeleckou loď.\nAktivuj kliknutím, když se nacházíš nad platformou.
diff --git a/core/assets/bundles/bundle_de.properties b/core/assets/bundles/bundle_de.properties
index f3d78c80a9..b0a3cd5953 100644
--- a/core/assets/bundles/bundle_de.properties
+++ b/core/assets/bundles/bundle_de.properties
@@ -1,8 +1,8 @@
credits.text = Entwickelt von [ROYAL]Anuken[] - [SKY]anukendev@gmail.com[]\n\n[GRAY]
credits = Danksagungen
contributors = Übersetzer und Mitwirkende
-discord = Trete dem Mindustry Discord bei!
-link.discord.description = Der offizielle Mindustry Discord-Chatroom
+discord = Tritt dem Mindustry Discord bei!
+link.discord.description = Der offizielle Mindustry Discord-Server
link.reddit.description = Der Mindustry Subreddit
link.github.description = Quellcode des Spiels
link.changelog.description = Liste der Änderungen
@@ -10,7 +10,9 @@ link.dev-builds.description = Entwicklungs-Builds (instabil)
link.trello.description = Offizielles Trello Board für geplante Features
link.itch.io.description = itch.io-Seite mit Downloads und der Web-Version des Spiels
link.google-play.description = Google Play Store Seite
+link.f-droid.description = F-Droid catalogue listing
link.wiki.description = Offizelles Mindustry Wiki
+link.feathub.description = Suggest new features
linkfail = Fehler beim Öffnen des Links!\nDie URL wurde in die Zwischenablage kopiert.
screenshot = Screenshot gespeichert nach {0}
screenshot.invalid = Karte zu groß! Eventuell nicht ausreichend Arbeitsspeicher für Screenshot.
@@ -18,12 +20,22 @@ gameover = Der Kern wurde zerstört.
gameover.pvp = Das[accent] {0}[] Team ist siegreich!
highscore = [YELLOW] Neuer Highscore!
copied = Kopiert.
+
load.sound = Sounds
load.map = Karten
load.image = Bilder
load.content = Inhalt
load.system = System
load.mod = Mods
+load.scripts = Scripts
+
+be.update = A new Bleeding Edge build is available:
+be.update.confirm = Download it and restart now?
+be.updating = Updating...
+be.ignore = Ignore
+be.noupdates = No updates found.
+be.check = Check for updates
+
schematic = Entwürfe
schematic.add = Entwurf speichern...
schematics = Entwürfe
@@ -40,6 +52,7 @@ schematic.saved = Entwurf gespeichert.
schematic.delete.confirm = Dieser Entwurf wird absolut ausgelöscht.
schematic.rename = Entwurf umbenennen
schematic.info = {0}x{1}, {2} Blöcke
+
stat.wave = Wellen besiegt:[accent] {0}
stat.enemiesDestroyed = Gegner zerstört:[accent] {0}
stat.built = Gebäude gebaut:[accent] {0}
@@ -47,6 +60,7 @@ stat.destroyed = Gebäude zerstört:[accent] {0}
stat.deconstructed = Gebäude abgebaut:[accent] {0}
stat.delivered = Übertragene Ressourcen:
stat.rank = Finaler Rang: [accent]{0}
+
launcheditems = [accent]Abgefeuerte Items
launchinfo = [unlaunched][[LAUNCH] deine Basis um blau markierte Items zu erhalten.
map.delete = Bist du sicher, dass du die Karte "[accent]{0}[]" löschen möchtest?
@@ -74,6 +88,7 @@ maps.browse = Karten durschsuchen
continue = Weiter
maps.none = [LIGHT_GRAY]Keine Karten gefunden!
invalid = ungültig
+pickcolor = Pick Color
preparingconfig = Konfiguration vorbereiten
preparingcontent = Inhalte vorbereiten
uploadingcontent = Inhalte hochladen
@@ -81,6 +96,7 @@ uploadingpreviewfile = Vorschau hochladen
committingchanges = Veränderungen bestätigen
done = Fertig
feature.unsupported = Dein System unsterstützt dieses Feature nicht.
+
mods.alphainfo = Vergiss nicht, dass Mods in der Alpha sind, und sehr Fehlerhaft sein [scarlet]könnten[].\nSende alle Probleme an den Mindustry Github oder Discord.
mods.alpha = [accent](Alpha)
mods = Mods
@@ -92,18 +108,25 @@ mod.enabled = [lightgray]Aktiviert
mod.disabled = [scarlet]Deaktiviert
mod.disable = Deaktivieren
mod.delete.error = Unfähig Mod zu löschen; Datei könnte in Benutzung sein.
+mod.requiresversion = [scarlet]Requires min game version: [accent]{0}
mod.missingdependencies = [scarlet]Fehldene Abhängigkeiten: {0}
+mod.erroredcontent = [scarlet]Content Errors
+mod.errors = Errors have occurred loading content.
+mod.noerrorplay = [scarlet]You have mods with errors.[] Either disable the affected mods or fix the errors before playing.
mod.nowdisabled = [scarlet]Mod '{0}' fehlt Abhängigkeiten:[accent] {1}\n[lightgray]Diese Mods müssen erst installiert werden.\nDieser Mod wird automatisch deaktiviert.
mod.enable = Aktivieren
mod.requiresrestart = Das Spiel schließt nun, um Modänderungen wirksam zu machen.
mod.reloadrequired = [scarlet]Neuladen benötigt
mod.import = Mod importieren
mod.import.github = GitHub Mod importieren
+mod.item.remove = This item is part of the[accent] '{0}'[] mod. To remove it, uninstall that mod.
mod.remove.confirm = Dieser Mod wird gelöscht.
mod.author = [LIGHT_GRAY]Author:[] {0}
mod.missing = Dieser Spielstand enthält Mods, welche nicht mehr vorhanden oder aktualisiert wurden. Spielstandfehler könnten passieren. Bist du dir sicher, das du ihn laden möchtest?\n[lightgray]Mods:\n{0}
mod.preview.missing = Bevor du diesen Mod hochladen kannst, musst du eine Bildvorschau einbinden.\nLade ein Bild namens[accent] preview.png[] in den Modordner und versuchs nochmal.
mod.folder.missing = Nur Mods in Ordnerform können in den Workshop hochgeladen werden.\nUm einen Mod in einen Ordner zu konvertieren, extrahiere einfach die .zip und lösche die alte .zip danach. Starte dann das Spiel neu.
+mod.scripts.unsupported = Your device does not support mod scripts. Some mods will not function correctly.
+
about.button = Info
name = Name:
noname = Wähle zuerst einen[accent] Spielernamen[].
@@ -132,6 +155,7 @@ server.kicked.nameEmpty = Dein Name muss mindestens einen Buchstaben oder eine Z
server.kicked.idInUse = Du bist bereits auf dem Server! Anmeldungen mit zwei Accounts sind nicht gestattet.
server.kicked.customClient = Der Server akzeptiert keine Custom Builds von Mindustry. Lade dir die offizielle Version herunter.
server.kicked.gameover = Game Over!
+server.kicked.serverRestarting = The server is restarting.
server.versions = Deine Version:[accent] {0}[]\nServerversion:[accent] {1}[]
host.info = Der [accent]Server hosten[]-Knopf startet einen Server auf den Ports [scarlet]6567[] und [scarlet]6568.[]\nJeder im gleichen [LIGHT_GRAY]W-Lan oder lokalen Netzwerk[] sollte deinen Server in seiner Server Liste sehen können.\n\nWenn du anderen die Verbindung über IP ermöglichen willst, benötigst du [accent]Port-Forwarding[].\n\n[LIGHT_GRAY]Hinweis: Falls es Probleme mit der Verbindung im Netzwerk gibt, stelle sicher, dass Mindustry in deinen Firewall Einstellungen Zugriff auf das lokale Netzwerk hat.
join.info = Hier kannst du eine [accent]Server-IP[] eingeben um dich zu verbinden oder Server im [accent]lokalen Netzwerk[] entdecken und dich mit ihnen verbinden.\nSowohl Spielen über das lokale Netzwerk als auch Spielen über das Internet werden unterstützt.\n\n[LIGHT_GRAY]Hinweis: Es gibt keine globale Server Liste; Wenn du dich mit jemandem per IP verbinden willst, musst du den Host nach seiner IP fragen.
@@ -271,6 +295,7 @@ publishing = [accent]Veröffentlichen...
publish.confirm = Bist du sicher, dies zu veröffentlichen?\n\n[lightgray]Vergewissere dich die, der Workshop-EULA zugestimmt zu haben, sonst tauch deine Karte nicht auf!
publish.error = Fehler beim veröffentlichen des Items: {0}
steam.error = Fehler beim laden der Steam-Dienste.\nError: {0}
+
editor.brush = Pinsel
editor.openin = Öffne im Editor
editor.oregen = Erze generieren
@@ -347,6 +372,7 @@ editor.overwrite = [accent] Warnung! Dies überschreibt eine vorhandene Karte.
editor.overwrite.confirm = [scarlet]Warnung![] Eine Karte mit diesem Namen existiert bereits. Bist du sicher, dass du sie überschreiben willst?
editor.exists = A map with this name already exists.
editor.selectmap = Wähle eine Karte zum Laden:
+
toolmode.replace = Ersetzen
toolmode.replace.description = Zeichnet nur auf festen Blöcken.
toolmode.replaceall = Alles Ersetzen
@@ -361,6 +387,7 @@ toolmode.fillteams = Teams Ausfüllen
toolmode.fillteams.description = Füllt Teams aus anstatt Blöcke.
toolmode.drawteams = Teams Zeichnen
toolmode.drawteams.description = Zeichnet Teams anstatt Blöcke.
+
filters.empty = [LIGHT_GRAY]Keine Filter! Füge einen mit dem unteren Knopf hinzu.
filter.distort = Verzerren
filter.noise = Rauschen
@@ -392,6 +419,7 @@ filter.option.floor2 = Sekundärer Boden
filter.option.threshold2 = Sekundärer Grenzwert
filter.option.radius = Radius
filter.option.percentile = Perzentil
+
width = Breite:
height = Höhe:
menu = Menü
@@ -407,6 +435,7 @@ tutorial = Tutorial
tutorial.retake = Tutorial wiederholen
editor = Editor
mapeditor = Karten Editor
+
abandon = Aufgeben
abandon.text = Diese Zone sowie alle Ressourcen werden dem Gegner überlassen.
locked = Gesperrt
@@ -437,6 +466,7 @@ zone.objective.survival = Überlebe
zone.objective.attack = Zerstöre den feindlichen Kern
add = Hinzufügen...
boss.health = Boss Lebenskraft
+
connectfail = [crimson] Verbindung zum Server konnte nicht hergestellt werden: [accent]{0}
error.unreachable = Server nicht erreichbar.
error.invalidaddress = Ungültige Adresse.
@@ -447,6 +477,7 @@ error.mapnotfound = Kartendatei nicht gefunden!
error.io = Netzwerk-Ein-/Ausgabe-Fehler.
error.any = Unbekannter Netzwerkfehler.
error.bloom = Bloom konnte nicht initialisiert werden.\nEs kann sein, dass dein Gerät es nicht unterstützt.
+
zone.groundZero.name = Ground Zero
zone.desertWastes.name = Schrottwüste
zone.craters.name = Krater
@@ -456,11 +487,12 @@ zone.stainedMountains.name = Gefleckte Berge
zone.desolateRift.name = Trostloser Riss
zone.nuclearComplex.name = Kernkraftwerk
zone.overgrowth.name = Überwucherung
-zone.tarFields.name = Teerfelder
+zone.tarFields.name = Ölfelder
zone.saltFlats.name = Salztiefen
zone.impact0078.name = Auswirkung 0078
zone.crags.name = Felsen
-zone.fungalPass.name = Sporenpass
+zone.fungalPass.name = Sporenpass
+
zone.groundZero.description = Der optimale Ort, um anzufangen. Niedrige Bedrohung durch Gegner. Wenige Ressourcen.\nSammel so viel Kupfer und Blei wie möglich.\nMach weiter!
zone.frozenForest.description = Sogar hier, näher an den Bergen, haben sich die Sporen verbreitet. Die kalten Temperaturen können sie nicht für immer im Schach halten.\n\nStarte das Wagnis in Strom. Baue Verbrennungsgeneratoren. Lerne Heiler zu benutzen.
zone.desertWastes.description = Diese Abfälle sind riesig, unberechenbar, und durchzogen von verfallenen Sektorstrukturen.\nKohle ist in dieser Region vorhanden. Verbrenne es für Strom, oder synthetisiere Graphit.\n\n[lightgray]Dieser Landeort kann nicht garantiert werden.
@@ -475,10 +507,12 @@ zone.nuclearComplex.description = Eine ehemalige Anlage zur Herstellung und Vera
zone.fungalPass.description = Ein Übergangsgebiet zwischen hohen Bergen und tieferen, sporengeplagter Länder. Eine kleine Späherbasis ist hier angelegt.\nZerstöre sie.\nNutze Dagger und Crawler. Zerstöre die zwei Basen.
zone.impact0078.description =
zone.crags.description =
+
settings.language = Sprache
settings.data = Spieldaten
settings.reset = Auf Standard zurücksetzen
settings.rebind = Zuweisen
+settings.resetKey = Reset
settings.controls = Steuerung
settings.game = Spiel
settings.sound = Audio
@@ -529,6 +563,7 @@ blocks.inaccuracy = Ungenauigkeit
blocks.shots = Schüsse
blocks.reload = Schüsse/Sekunde
blocks.ammo = Munition
+
bar.drilltierreq = Besserer Bohrer benötigt
bar.drillspeed = Bohrgeschwindigkeit: {0}/s
bar.pumpspeed = Pump Speed: {0}/s
@@ -544,6 +579,9 @@ bar.heat = Hitze
bar.power = Strom
bar.progress = Baufortschritt
bar.spawned = Einheiten: {0}/{1}
+bar.input = Input
+bar.output = Output
+
bullet.damage = [stat]{0}[lightgray] Schaden
bullet.splashdamage = [stat]{0}[lightgray] Flächenschaden ~[stat] {1}[lightgray] Kacheln
bullet.incendiary = [stat]entzündend
@@ -555,6 +593,7 @@ bullet.freezing = [stat]frierend
bullet.tarred = [stat]teerent
bullet.multiplier = [stat]{0}[lightgray]x Munition Multiplikator
bullet.reload = [stat]{0}[lightgray]x Feuerrate
+
unit.blocks = Blöcke
unit.powersecond = Stromeinheiten/Sekunde
unit.liquidsecond = Flüssigkeitseinheiten/Sekunde
@@ -567,6 +606,8 @@ unit.persecond = /s
unit.timesspeed = x Geschwindigkeit
unit.percent = %
unit.items = Materialeinheiten
+unit.thousands = k
+unit.millions = mil
category.general = Allgemeines
category.power = Strom
category.liquids = Flüssigkeiten
@@ -579,6 +620,7 @@ setting.shadows.name = Schatten
setting.blockreplace.name = Automatische Blockvorschläge
setting.linear.name = Lineare Filterung
setting.hints.name = Tipps
+setting.buildautopause.name = Auto-Pause Building
setting.animatedwater.name = Animiertes Wasser
setting.animatedshields.name = Animierte Schilde
setting.antialias.name = Antialias[LIGHT_GRAY] (Neustart erforderlich)[]
@@ -601,6 +643,7 @@ setting.screenshake.name = Wackeleffekt
setting.effects.name = Effekte anzeigen
setting.destroyedblocks.name = Zerstörte Blöcke anzeigen
setting.conveyorpathfinding.name = Automatische Wegfindung beim Bau von Förderbändern
+setting.coreselect.name = Allow Schematic Cores
setting.sensitivity.name = Controller-Empfindlichkeit
setting.saveinterval.name = Autosave Häufigkeit
setting.seconds = {0} Sekunden
@@ -643,8 +686,11 @@ keybind.clear_building.name = Clear Building
keybind.press = Drücke eine Taste...
keybind.press.axis = Drücke eine Taste oder bewege eine Achse...
keybind.screenshot.name = Karten Screenshot
+keybind.toggle_power_lines.name = Toggle Power Lasers
keybind.move_x.name = X-Achse
keybind.move_y.name = Y-Achse
+keybind.mouse_move.name = Follow Mouse
+keybind.dash.name = Bindestrich
keybind.schematic_select.name = Bereich auswählen
keybind.schematic_menu.name = Schematic Menu
keybind.schematic_flip_x.name = Entwurf umdrehen X
@@ -676,8 +722,7 @@ keybind.zoom.name = Zoomen
keybind.menu.name = Menü
keybind.pause.name = Pause
keybind.pause_building.name = Pausieren/Fortsetzen Bauen
-Keybind.minimap.name = Minimap
-keybind.dash.name = Bindestrich
+keybind.minimap.name = Minimap
keybind.chat.name = Chat
keybind.player_list.name = Spielerliste
keybind.console.name = Konsole
@@ -700,7 +745,9 @@ mode.pvp.description = Kämpfe gegen andere Spieler lokal.
mode.attack.name = Angriff
mode.attack.description = Keine Wellen, das Ziel ist es die gegnerische Basis zu zerstören.
mode.custom = Angepasste Regeln
+
rules.infiniteresources = Unbegrenzte Ressourcen
+rules.reactorexplosions = Reactor Explosions
rules.wavetimer = Wellen Timer
rules.waves = Wellen
rules.attack = Angriff-Modus
@@ -708,6 +755,7 @@ rules.enemyCheat = Unbegrenzte Ressourcen für KI
rules.unitdrops = Einheiten-Drops
rules.unitbuildspeedmultiplier = Baugeschwindigkeit-Einheit Multiplikator
rules.unithealthmultiplier = Lebenspunkte-Einheit Multiplikator
+rules.blockhealthmultiplier = Block Health Multiplier
rules.playerhealthmultiplier = Spieler-Lebenspunkte Multiplikator
rules.playerdamagemultiplier = Spieler-Schaden Multiplikator
rules.unitdamagemultiplier = Schaden-Einheit Multiplikator
@@ -726,6 +774,10 @@ rules.title.resourcesbuilding = Ressourcen & Gebäude
rules.title.player = Spieler
rules.title.enemy = Gegner
rules.title.unit = Einheiten
+rules.title.experimental = Experimental
+rules.lighting = Lighting
+rules.ambientlight = Ambient Light
+
content.item.name = Materialien
content.liquid.name = Flüssigkeiten
content.unit.name = Einheiten
@@ -748,7 +800,7 @@ item.pyratite.name = Pyratit
item.metaglass.name = Metaglass
item.scrap.name = Schrott
liquid.water.name = Wasser
-liquid.slag.name = Asche
+liquid.slag.name = Schlacke
liquid.oil.name = Öl
liquid.cryofluid.name = Kryoflüssigkeit
mech.alpha-mech.name = Alpha
@@ -788,6 +840,7 @@ mech.buildspeed = [LIGHT_GRAY]Baugeschwindigkeit: {0}%
liquid.heatcapacity = [LIGHT_GRAY]Wärmekapazität: {0}
liquid.viscosity = [LIGHT_GRAY]Viskosität: {0}
liquid.temperature = [LIGHT_GRAY]Temperatur: {0}
+
block.sand-boulder.name = Sandbrocken
block.grass.name = Gras
block.salt.name = Salz
@@ -823,7 +876,7 @@ block.deepwater.name = Tiefes Wasser
block.water.name = Wasser
block.tainted-water.name = Unreines Wasser
block.darksand-tainted-water.name = Dunkler Sand in unreinem Wasser
-block.tar.name = Teer
+block.tar.name = Öl
block.stone.name = Stein
block.sand.name = Sand
block.darksand.name = Dunkler Sand
@@ -886,6 +939,8 @@ block.distributor.name = Großer Verteiler
block.sorter.name = Sortierer
block.inverted-sorter.name = Inverted Sorter
block.message.name = Message
+block.illuminator.name = Illuminator
+block.illuminator.description = A small, compact, configurable light source. Requires power to function.
block.overflow-gate.name = Überlauftor
block.silicon-smelter.name = Silizium-Schmelzer
block.phase-weaver.name = Phasenweber
@@ -899,6 +954,7 @@ block.coal-centrifuge.name = Kohlenzentrifuge
block.power-node.name = Stromknoten
block.power-node-large.name = Großer Stromknoten
block.surge-tower.name = Schwall-Turm
+block.diode.name = Battery Diode
block.battery.name = Batterie
block.battery-large.name = Große Batterie
block.combustion-generator.name = Verbrennungsgenerator
@@ -922,6 +978,7 @@ block.mechanical-pump.name = Mechanische Pumpe
block.item-source.name = Materialquelle
block.item-void.name = Materialschlucker
block.liquid-source.name = Flüssigkeitsquelle
+block.liquid-void.name = Liquid Void
block.power-void.name = Stromsenke
block.power-source.name = Unendliche Stromquelle
block.unloader.name = Entlader
@@ -951,6 +1008,7 @@ block.fortress-factory.name = Fortress Mech-Fabrik
block.revenant-factory.name = Revenant Fighter-Fabrik
block.repair-point.name = Reparaturpunkt
block.pulse-conduit.name = Impulskanal
+block.plated-conduit.name = Plated Conduit
block.phase-conduit.name = Phasenkanal
block.liquid-router.name = Flüssigkeits-Router
block.liquid-tank.name = Flüssigkeitstank
@@ -1022,6 +1080,7 @@ tutorial.deposit = Materialien können in Blöcke abgelegt werden, indem du sie
tutorial.waves = Der [LIGHT_GRAY]Gegner[] greift an.\n\nVerteidige deinen Kern 2 Wellen lang. Baue mehr Türme.
tutorial.waves.mobile = Der[lightgray] Gegner[] greift an.\n\nVerteidige deinen Kern 2 Wellen lang. Dein Schiff feuert automatisch auf Gegner.\nBaue mehr Geschütztürme und Bohrer. Baue mehr Kupfer ab.
tutorial.launch = Sobald du eine bestimmte Welle erreicht hast, kannst du die [accent]Mission abschließen[]. Dadurch lässt du deine Basis zurück[accent] und überträgst alle Ressourcen in deinen Kern.[]\nDiese Ressourcen können zur Erforschung neuer Technologien eingesetzt werden.\n\n[accent]Drücke nun den Abschluss-Button.
+
item.copper.description = Ein nützliches Material. Wird in allen Arten von Blöcken verwendet.
item.lead.description = Ein grundlegendes Material. Häufig in Elektronik und Flüssigkeits-Transport-Blöcken verwendet.
item.metaglass.description = Eine extrem harte Glasmischung. Wird zur Verteilung und Lagerung von Flüssigkeiten benutzt.
@@ -1083,6 +1142,7 @@ block.power-source.description = Erzeugt unendlich viel Strom. Nur im Sandkasten
block.item-source.description = Produziert unendlich items. Nur im Sandkasten-Modus verfügbar.
block.item-void.description = Zerstört Materialien, die hereingegeben werden, ohne Strom zu verbrauchen. Nur im Sandkasten-Modus verfügbar.
block.liquid-source.description = Produziert unendlich Flüssigkeiten. Nur im Sandkasten-Modus verfügbar.
+block.liquid-void.description = Removes any liquids. Sandbox only.
block.copper-wall.description = Ein günstiger Verteidigungsblock.\nNützlich, um die Basis und Türme in den ersten Wellen zu beschützen.
block.copper-wall-large.description = Ein günstiger Verteidigungsblock.\nNützlich, um die Basis und Türme in den ersten Wellen zu beschützen.\nBenötigt mehrere Kacheln.
block.titanium-wall.description = Ein mittel starker Verteidigungsblock.\nBietet mäßigen Schutz vor Feinden.
@@ -1118,6 +1178,7 @@ block.rotary-pump.description = Eine fortgeschrittene Pumpe, die mithilfe von St
block.thermal-pump.description = Die ultimative Pumpe, dreimal so schnell wie eine mechanische Pumpe und die einzige Pumpe, die Lava fördern kann.
block.conduit.description = Standard Flüssigkeits-Transportblock. Funktioniert wie ein Förderband, nur für Flüssigkeiten. Wird am Besten mit Extraktoren, Pumpen oder anderen Kanälen benutzt.
block.pulse-conduit.description = Verbesserter Flüssigkeits-Transportblock. Transportiert Flüssigkeiten schneller und speichert mehr als Standard Kanäle.
+block.plated-conduit.description = Moves liquids at the same rate as pulse conduits, but possesses more armor. Does not accept fluids from the sides by anything other than conduits.\nLeaks less.
block.liquid-router.description = Akzeptiert Flüssigkeiten aus einer Richtung und verteilt sie an bis zu drei andere Richtungen weiter. Nützlich, um Flüssigkeiten aus einer Quelle an mehrere Empfänger zu verteilen.
block.liquid-tank.description = Speichert eine große Menge an Flüssigkeiten. Verwende es als Puffer, wenn Angebot und Nachfrage an einer Flüssigkeit schwanken.
block.liquid-junction.description = Fungiert als Brücke über zwei kreuzende Kanäle. Nützlich in Situationen, in denen sich zwei Kanäle mit verschiedenen Flüssigkeiten kreuzen.
@@ -1126,6 +1187,7 @@ block.phase-conduit.description = Verbesserter Flüssigkeits-Transportblock. Ver
block.power-node.description = Überträgt Strom zu verbundenen Knoten. Bis zu vier Stromquellen, -verbraucher oder -knoten können verbunden werden. Der Knoten erhält Strom von benachbarten Knoten und gibt Strom an benachbarte Blöcke weiter.
block.power-node-large.description = Hat einen größeren Radius als der normale Stromknoten und verbindet bis zu sechs Stromquellen, -verbraucher oder -knoten.
block.surge-tower.description = Ein extrem weitreichender Netzknoten mit weniger verfügbaren Verbindungen.
+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 = Speichert Strom, solange ein Überschuss besteht, und gibt ihn bei Knappheit ab, solange Kapazität vorhanden ist.
block.battery-large.description = Speichert sehr viel mehr Strom als eine normale Batterie.
block.combustion-generator.description = Generiert Strom, indem Öl oder entzündliche Materialien verbrannt werden.
diff --git a/core/assets/bundles/bundle_es.properties b/core/assets/bundles/bundle_es.properties
index 19574c37c1..6694bc95ad 100644
--- a/core/assets/bundles/bundle_es.properties
+++ b/core/assets/bundles/bundle_es.properties
@@ -10,7 +10,9 @@ link.dev-builds.description = Versiones de desarrollo inestables
link.trello.description = Tablero de Trello oficial para las características planificadas
link.itch.io.description = itch.io es la página donde podes descargar las versiones para PC y web
link.google-play.description = Ficha en la Google Play Store
+link.f-droid.description = F-Droid catalogue listing
link.wiki.description = Wiki oficial de Mindustry
+link.feathub.description = Suggest new features
linkfail = ¡Error al abrir el enlace!\nLa URL ha sido copiada a su portapapeles.
screenshot = Captura de pantalla guardada en {0}
screenshot.invalid = Mapa demasiado grande, no hay suficiente memoria para la captura de pantalla.
@@ -18,12 +20,22 @@ gameover = Tu núcleo ha sido destruido.
gameover.pvp = ¡El equipo[accent] {0}[] ha ganado!
highscore = [accent]¡Nueva mejor puntuación!
copied = Copied.
+
load.sound = Sonidos
load.map = Mapas
load.image = Imágenes
load.content = Contenido
load.system = Sistema
load.mod = Mods
+load.scripts = Scripts
+
+be.update = A new Bleeding Edge build is available:
+be.update.confirm = Download it and restart now?
+be.updating = Updating...
+be.ignore = Ignore
+be.noupdates = No updates found.
+be.check = Check for updates
+
schematic = Schematic
schematic.add = Save Schematic...
schematics = Schematics
@@ -40,6 +52,7 @@ schematic.saved = Schematic guardado.
schematic.delete.confirm = This schematic will be utterly eradicated.
schematic.rename = Renombrar Schematic
schematic.info = {0}x{1}, {2} bloques
+
stat.wave = Oleadas Derrotadas:[accent] {0}
stat.enemiesDestroyed = Enemigos Destruidos:[accent] {0}
stat.built = Estructuras Construidas:[accent] {0}
@@ -47,6 +60,7 @@ stat.destroyed = Estructuras Destruidas:[accent] {0}
stat.deconstructed = Estructuras Desconstruidas:[accent] {0}
stat.delivered = Recursos Lanzados:
stat.rank = Rango final: [accent]{0}
+
launcheditems = [accent]Recursos Lanzados
launchinfo = [unlaunched][[LAUNCH] tu núcleo core obtenga los objetos indicados en azul.
map.delete = ¿Estás seguro que quieres borrar el mapa "[accent]{0}[]"?
@@ -74,6 +88,7 @@ maps.browse = Navegar por los Mapas
continue = Continuar
maps.none = [LIGHT_GRAY]¡No se han encontrado mapas!
invalid = Invalido
+pickcolor = Pick Color
preparingconfig = Preparing Config
preparingcontent = Preparing Content
uploadingcontent = Uploading Content
@@ -81,6 +96,7 @@ uploadingpreviewfile = Uploading Preview File
committingchanges = Comitting Changes
done = Hecho
feature.unsupported = Tu dispositivo no soporta esta función.
+
mods.alphainfo = Keep in mind that mods are in alpha, and[scarlet] may be very buggy[].\nReport any issues you find to the Mindustry GitHub or Discord.
mods.alpha = [accent](Alpha)
mods = Mods
@@ -92,18 +108,25 @@ mod.enabled = [lightgray]Enabled
mod.disabled = [scarlet]Disabled
mod.disable = Disable
mod.delete.error = Fallo al elminar el mod. Quizás el archivo esta en uso.
+mod.requiresversion = [scarlet]Requires min game version: [accent]{0}
mod.missingdependencies = [scarlet]Missing dependencies: {0}
+mod.erroredcontent = [scarlet]Content Errors
+mod.errors = Errors have occurred loading content.
+mod.noerrorplay = [scarlet]You have mods with errors.[] Either disable the affected mods or fix the errors before playing.
mod.nowdisabled = [scarlet]Mod '{0}' is missing dependencies:[accent] {1}\n[lightgray]These mods need to be downloaded first.\nThis mod will be automatically disabled.
mod.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 = Importar Mod de Github
+mod.item.remove = This item is part of the[accent] '{0}'[] mod. To remove it, uninstall that mod.
mod.remove.confirm = Este mod va a ser eliminado.\n¿Quieres continuar?
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.
+mod.scripts.unsupported = Your device does not support mod scripts. Some mods will not function correctly.
+
about.button = Acerca de
name = Nombre:
noname = Elige un[accent] nombre de jugador[] primero.
@@ -132,6 +155,7 @@ server.kicked.nameEmpty = Tu nombre debe por lo menos contener un carácter o n
server.kicked.idInUse = ¡Ya estás en el servidor! Conectarse con dos cuentas no está permitido.
server.kicked.customClient = Este servidor no soporta versiones personalizadas. Descarga una versión oficial.
server.kicked.gameover = ¡Fin del juego!
+server.kicked.serverRestarting = The server is restarting.
server.versions = Tu versión:[accent] {0}[]\nVersión del servidor:[accent] {1}[]
host.info = El botón [accent]host[] hostea un servidor en el puerto [scarlet]6567[]. \nCualquier persona en la misma [LIGHT_GRAY]wifi o red local[] debería poder ver tu servidor en la lista de servidores.\n\nSi quieres que cualquier persona se pueda conectar de cualquier lugar por IP, la [accent]asignación de puertos[] es requerida.\n\n[LIGHT_GRAY]Nota: Si alguien experimenta problemas conectándose a tu partida LAN, asegúrate de permitir a Mindustry acceso a tu red local mediante la configuración de tu firewall.
join.info = Aquí, puedes escribir la [accent]IP de un server[] para conectarte, o descubrir servidores de [accent]red local[] para conectarte.\nLAN y WAN es soportado para jugar en multijugador.\n\n[LIGHT_GRAY]Nota: No hay una lista automática global de servidores; si quieres conectarte por IP, tendrás que preguntarle al anfitrión por la IP.
@@ -271,6 +295,7 @@ 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}
+
editor.brush = Pincel
editor.openin = Abrir en el Editor
editor.oregen = Generación de Minerales
@@ -347,6 +372,7 @@ editor.overwrite = [accent]¡Advertencia!\nEsto sobrescribe un mapa ya existente
editor.overwrite.confirm = [scarlet]¡Advertencia![] Un mapa con ese nombre ya existe. ¿Estás seguro de querer sobrescribirlo?
editor.exists = A map with this name already exists.
editor.selectmap = Selecciona un mapa para cargar:
+
toolmode.replace = Sustituir
toolmode.replace.description = Solo dibuja en bloques sólidos.
toolmode.replaceall = Sustituir Todo
@@ -361,6 +387,7 @@ toolmode.fillteams = Llenar Equipos
toolmode.fillteams.description = Llena equipos en vez de bloques.
toolmode.drawteams = Dibujar Equipos
toolmode.drawteams.description = Dibuja equipos en vez de bloques.
+
filters.empty = [LIGHT_GRAY]¡No hay filtros! Añade uno con el botón de abajo.
filter.distort = Distorsionar
filter.noise = Ruido
@@ -392,6 +419,7 @@ filter.option.floor2 = Secondary Floor
filter.option.threshold2 = Secondary Threshold
filter.option.radius = Radio
filter.option.percentile = Porcentaje
+
width = Ancho:
height = Alto:
menu = Menú
@@ -407,6 +435,7 @@ tutorial = Tutorial
tutorial.retake = Volver a hacer tutorial
editor = Editor
mapeditor = Editor de Mapa
+
abandon = Abandonar
abandon.text = Esta zona y sus recursos se perderán ante el enemigo.
locked = Bloqueado
@@ -437,6 +466,7 @@ zone.objective.survival = Sobrevivir
zone.objective.attack = Destruir Núcleo Enemigo
add = Añadir...
boss.health = Salud del Jefe
+
connectfail = [crimson]Ha fallado la conexión con el servidor: [accent]{0}
error.unreachable = Servidor inaccesible.
error.invalidaddress = Dirección inválida.
@@ -447,6 +477,7 @@ error.mapnotfound = ¡Archivo de mapa no encontrado!
error.io = Error I/O de conexión.
error.any = Error de red desconocido.
error.bloom = Error al cargar el bloom.\nPuede que tu dispositivo no soporte esta característica.
+
zone.groundZero.name = Terreno Cero
zone.desertWastes.name = Ruinas del Desierto
zone.craters.name = Los Cráteres
@@ -461,6 +492,7 @@ zone.saltFlats.name = Salinas
zone.impact0078.name = Impacto 0078
zone.crags.name = Riscos
zone.fungalPass.name = Fungal Pass
+
zone.groundZero.description = La zona óptima para empezar una vez más. Riesgo bajo de los enemigos. Pocos recursos.\nConsigue tanto plomo y cobre como puedas.\nSigue avanzando.
zone.frozenForest.description = Incluso aquí, cerca de las montañas, las esporas se han expandido. Las temperaturas gélidas no pueden contenerlas para siempre.\n\nEmpieza a investigar sobre energía. Cnstruye generadores de combustión. Aprende a usar reparadores.
zone.desertWastes.description = Estas ruinas son vastas, impredecibles y entrecruzadas con sectores de estructuras abandonadas.\nHay carbñon presente en la región. Quémalo para energía, o sintetiza grafito.\n\n[lightgray]La zona de aparición no puede ser garantizada.
@@ -475,10 +507,12 @@ zone.nuclearComplex.description = Una antigua facilidad para la producción y el
zone.fungalPass.description = Una zona transitoria entre alta montaña y zonas más bajas con esporas. Una base enemiga pequeña de reconocimiento se ubica aquí.\nDestrúyela.nUsa Dagas y Orugas. Destruye los dos núcleos.
zone.impact0078.description =
zone.crags.description =
+
settings.language = Idioma
settings.data = Datos del Juego
settings.reset = Reiniciar por los de defecto
settings.rebind = Reasignar
+settings.resetKey = Reset
settings.controls = Controles
settings.game = Juego
settings.sound = Sonido
@@ -529,6 +563,7 @@ blocks.inaccuracy = Imprecisión
blocks.shots = Disparos
blocks.reload = Recarga
blocks.ammo = Munición
+
bar.drilltierreq = Se requiere un mejor taladro.
bar.drillspeed = Velocidad del Taladro: {0}/s
bar.pumpspeed = Pump Speed: {0}/s
@@ -544,6 +579,9 @@ bar.heat = Calor
bar.power = Energía
bar.progress = Progreso de construcción
bar.spawned = Unidades: {0}/{1}
+bar.input = Input
+bar.output = Output
+
bullet.damage = [stat]{0}[lightgray] daño
bullet.splashdamage = [stat]{0}[lightgray] daño de área ~[stat] {1}[lightgray] casillas
bullet.incendiary = [stat]incendiaria
@@ -555,6 +593,7 @@ bullet.freezing = [stat]Congelación
bullet.tarred = [stat]tarred
bullet.multiplier = [stat]{0}[lightgray]x multiplicador de munición
bullet.reload = [stat]{0}[lightgray]x recarga
+
unit.blocks = bloques
unit.powersecond = unidades de energía/segundo
unit.liquidsecond = unidades de líquido/segundo
@@ -567,6 +606,8 @@ unit.persecond = /seg
unit.timesspeed = x velocidad
unit.percent = %
unit.items = objetos
+unit.thousands = k
+unit.millions = mil
category.general = General
category.power = Energía
category.liquids = Líquidos
@@ -579,6 +620,7 @@ setting.shadows.name = Sombras
setting.blockreplace.name = Sugerir bloques al construir
setting.linear.name = Linear Filtering
setting.hints.name = Hints
+setting.buildautopause.name = Auto-Pause Building
setting.animatedwater.name = Agua Animada
setting.animatedshields.name = Escudos Animados
setting.antialias.name = Antialias[LIGHT_GRAY] (necesita reiniciar)[]
@@ -601,12 +643,16 @@ setting.screenshake.name = Movimiento de la Pantalla
setting.effects.name = Mostrar Efectos
setting.destroyedblocks.name = Mostrar bloques destruidos
setting.conveyorpathfinding.name = Conveyor Placement Pathfinding
+setting.coreselect.name = Allow Schematic Cores
setting.sensitivity.name = Sensibilidad del Control
setting.saveinterval.name = Intervalo del Autoguardado
setting.seconds = {0} Segundos
+setting.blockselecttimeout.name = Block Select Timeout
+setting.milliseconds = {0} milliseconds
setting.fullscreen.name = Pantalla Completa
setting.borderlesswindow.name = Ventana sin Bordes[LIGHT_GRAY] (podría requerir un reinicio)
setting.fps.name = Mostrar FPS
+setting.blockselectkeys.name = Show Block Select Keys
setting.vsync.name = Vsync (Limita los fps a los Hz de tu pantalla)
setting.pixelate.name = Pixelar [LIGHT_GRAY](podría reducir el rendimiento)
setting.minimap.name = Mostrar Minimapa
@@ -635,16 +681,36 @@ category.multiplayer.name = Multijugador
command.attack = Atacar
command.rally = Rally
command.retreat = Retirarse
+placement.blockselectkeys = \n[lightgray]Key: [{0},
keybind.clear_building.name = Limpiar construcción
keybind.press = Presiona una tecla...
keybind.press.axis = Pulsa un eje o botón...
keybind.screenshot.name = Captura de pantalla de Mapa
+keybind.toggle_power_lines.name = Toggle Power Lasers
keybind.move_x.name = Mover x
keybind.move_y.name = Mover y
+keybind.mouse_move.name = Follow Mouse
+keybind.dash.name = Correr
keybind.schematic_select.name = Select Region
keybind.schematic_menu.name = Schematic Menu
keybind.schematic_flip_x.name = Girar schematic X
keybind.schematic_flip_y.name = Girar schematic Y
+keybind.category_prev.name = Previous Category
+keybind.category_next.name = Next Category
+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 = Intercambiar con Pantalla Completa
keybind.select.name = Seleccionar
keybind.diagonal_placement.name = Construcción Diagonal
@@ -657,7 +723,6 @@ keybind.menu.name = Menú
keybind.pause.name = Pausa
keybind.pause_building.name = Pause/Resume Building
keybind.minimap.name = Minimapa
-keybind.dash.name = Correr
keybind.chat.name = Chat
keybind.player_list.name = Lista de jugadores
keybind.console.name = Consola
@@ -680,7 +745,9 @@ mode.pvp.description = Pelea contra otros jugadores localmente.
mode.attack.name = Ataque
mode.attack.description = No hay oleadas, el objetivo es destruir la base enemiga.
mode.custom = Normas personalizadas
+
rules.infiniteresources = Recursos Infinitos
+rules.reactorexplosions = Reactor Explosions
rules.wavetimer = Temportzador de Oleadas
rules.waves = Oleadas
rules.attack = Modo de Ataque
@@ -688,6 +755,7 @@ rules.enemyCheat = Recursos infinitos de la IA
rules.unitdrops = REcursos de las Unidades
rules.unitbuildspeedmultiplier = Multiplicador de velocidad de creación de unidades
rules.unithealthmultiplier = Multiplicador de la vida de las unidades
+rules.blockhealthmultiplier = Block Health Multiplier
rules.playerhealthmultiplier = Multiplicador de la vida del jugador
rules.playerdamagemultiplier = Multiplicador del daño del jugador
rules.unitdamagemultiplier = Multiplicador del daño de unidades
@@ -706,6 +774,10 @@ rules.title.resourcesbuilding = Recursos y Construcción
rules.title.player = Jugadores
rules.title.enemy = Enemigos
rules.title.unit = Unidades
+rules.title.experimental = Experimental
+rules.lighting = Lighting
+rules.ambientlight = Ambient Light
+
content.item.name = Objetos
content.liquid.name = Líquidos
content.unit.name = Unidades
@@ -752,6 +824,7 @@ mech.trident-ship.name = Tridente
mech.trident-ship.weapon = Bomb Bay
mech.glaive-ship.name = Glaive
mech.glaive-ship.weapon = Repetidor de Llamas
+item.corestorable = [lightgray]Storable in Core: {0}
item.explosiveness = [LIGHT_GRAY]Explosividad: {0}
item.flammability = [LIGHT_GRAY]Inflamabilidad: {0}
item.radioactivity = [LIGHT_GRAY]Radioactividad: {0}
@@ -767,6 +840,7 @@ mech.buildspeed = [LIGHT_GRAY]Velocidad de Construcción: {0}%
liquid.heatcapacity = [LIGHT_GRAY]Capacidad Térmica: {0}
liquid.viscosity = [LIGHT_GRAY]Viscosidad: {0}
liquid.temperature = [LIGHT_GRAY]Temperatura: {0}
+
block.sand-boulder.name = Piedra de Arena
block.grass.name = Hierba
block.salt.name = Sal
@@ -865,6 +939,8 @@ block.distributor.name = Distribuidor
block.sorter.name = Clasificador
block.inverted-sorter.name = Inverted Sorter
block.message.name = Message
+block.illuminator.name = Illuminator
+block.illuminator.description = A small, compact, configurable light source. Requires power to function.
block.overflow-gate.name = Compuerta de Desborde
block.silicon-smelter.name = Horno para Silicio
block.phase-weaver.name = Tejedor de Fase
@@ -878,6 +954,7 @@ block.coal-centrifuge.name = Centrifugador de Carbón
block.power-node.name = Nodo de Energía
block.power-node-large.name = Nodo de Energía Grande
block.surge-tower.name = Surge Tower
+block.diode.name = Battery Diode
block.battery.name = Batería
block.battery-large.name = Batería Grande
block.combustion-generator.name = Generador de Combustión
@@ -901,6 +978,7 @@ block.mechanical-pump.name = Bomba Mecánica
block.item-source.name = Fuente de objetos
block.item-void.name = Vacío de objetos
block.liquid-source.name = Fuente de líquidos
+block.liquid-void.name = Liquid Void
block.power-void.name = Vacío de energía
block.power-source.name = Energía Infinita
block.unloader.name = Descargador
@@ -930,6 +1008,7 @@ block.fortress-factory.name = Fábrica de mecanoide Fortress
block.revenant-factory.name = Fábrica de Revenant Fighter
block.repair-point.name = Punto de Reparación
block.pulse-conduit.name = Conducto de Pulso
+block.plated-conduit.name = Plated Conduit
block.phase-conduit.name = Conducto de Fase
block.liquid-router.name = Enrutador de Líquidos
block.liquid-tank.name = Tanque de Líquidos
@@ -1001,6 +1080,7 @@ tutorial.deposit = Deposita recursos en bloques arrastrándolos de tu nave al bl
tutorial.waves = El[LIGHT_GRAY] enemigo[] se acerca.\n\nDefiende tu núcleo por 2 oleadas. Construye más torretas y taladros. Mina más cobre.
tutorial.waves.mobile = El[lightgray] enemigo[] se acerca.\n\nDefiende tu núcleo por 2 oleadas. Tu nave disparará automáticamente a los enemigos.\nConstruye más torretas y taladros. Mina más cobre.
tutorial.launch = Una vez llegues a cierta oleada, podrás[accent]lanzar el núcleo[], dejando atrás tus defensas y los recursos en tu núcleo.[]\nEstos recursos pueden ser usados para investigar nueva tecnología.\n\n[accent]Pulsa el botón de lanzamiento.
+
item.copper.description = Un útil material estructural. Usado extensivamente en todo tipo de bloques.
item.lead.description = Un material básico. Usado extensivamente en electrónicos y bloques de transferencia de líquidos.
item.metaglass.description = Un compuesto muy duro de cristal. Usado extensivamente para almacenamiento y distribución de líquidos.
@@ -1062,6 +1142,7 @@ block.power-source.description = Da energía infinita. Solo en sandbox.
block.item-source.description = Da objetos infinitos. Solo en sandbox.
block.item-void.description = Destruye cuanquier objeto que va a él sin necesitar energía. Solo en sandbox.
block.liquid-source.description = Da líquido infinito. Solo en sandbox.
+block.liquid-void.description = Removes any liquids. Sandbox only.
block.copper-wall.description = Un bloque defensivo barato.\nÚtil para defender el núcleo y las torres en las primeras oleadas.
block.copper-wall-large.description = Un bloque defensivo barato.\nÚtil para defender el núcleo y las torres en las primeras oleadas.\nOcupa múltiples casillas.
block.titanium-wall.description = Un bloque defensivo moderadamente fuerte.\nProporciona protección moderada contra los enemigos.
@@ -1097,6 +1178,7 @@ block.rotary-pump.description = Una bomba avanzada. Bombea más líquido, pero r
block.thermal-pump.description = La mejor bomba.
block.conduit.description = Bloque de transporte de líquidos básico. Funciona como un transportador, pero con líquidos. Usado con bombas, extractores u otros conductos.
block.pulse-conduit.description = Bloque de transporte de líquidos avanzado. Transporta líquidos más rápidamente y almacena más que los conductos estándar.
+block.plated-conduit.description = Moves liquids at the same rate as pulse conduits, but possesses more armor. Does not accept fluids from the sides by anything other than conduits.\nLeaks less.
block.liquid-router.description = Acepta líquidos de una dirección y los deja en hasta 3 direcciones equitativamente. También puede amacenar cierta capacidad de líquido. Útil para dividir los líquidos de una fuente a varios objetivos.
block.liquid-tank.description = Almacena una gran cantidad de líquidos. Úsalo para crear almacenes cuando no hay una demanda constante de materiales o para asegurarse de enfriar bloques vitales.
block.liquid-junction.description = Actúa como un puente para dos condusctos que se cruzan. Útil en situaciones en las que hay dos conductos con líquidos diferentes a diferentes lugares.
@@ -1105,6 +1187,7 @@ block.phase-conduit.description = Bloque de transporte de líquidos avanzado. Us
block.power-node.description = Transmite energía a nodos conectados, conecta hasta cuatro fuentes de energía, edificios que usan energía o nodos. El nodo obtendrá o transmitirá energía de cualquier bloque adyacente.
block.power-node-large.description = Tiene un radio más amplio que el nodo de energía y conecta hasta seis fuentes de energía, edificios que usan energía o nodos.
block.surge-tower.description = Un nodo con un gran alcance con menos conexiones disponibles.
+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 = Guarda energía cuando hay abundancia y proporciona energía cuando hay escasez de energía mientras la batería tenga energía.
block.battery-large.description = Almacena mucha más energía que una batería normal.
block.combustion-generator.description = Genera energía quemando aceite o matteriales inflamables.
diff --git a/core/assets/bundles/bundle_et.properties b/core/assets/bundles/bundle_et.properties
index c3e62686d2..ad7b8f5c05 100644
--- a/core/assets/bundles/bundle_et.properties
+++ b/core/assets/bundles/bundle_et.properties
@@ -10,7 +10,9 @@ link.dev-builds.description = Arendusversioonide ajalugu
link.trello.description = Plaanitud uuenduste nimekiri
link.itch.io.description = Kõik PC-platvormide versioonid
link.google-play.description = Androidi versioon Google Play poes
+link.f-droid.description = F-Droid catalogue listing
link.wiki.description = Mängu ametlik viki
+link.feathub.description = Suggest new features
linkfail = Lingi avamine ebaõnnestus!\nVeebiaadress kopeeriti.
screenshot = Kuvatõmmis salvestati: {0}
screenshot.invalid = Maailm on liiga suur: kuvatõmmise salvestamiseks ei pruugi olla piisavalt mälu.
@@ -18,12 +20,22 @@ gameover = Mäng läbi!
gameover.pvp = Võistkond[accent] {0}[] võitis!
highscore = [accent]Uus rekord!
copied = Copied.
+
load.sound = Helid
load.map = Maailmad
load.image = Pildid
load.content = Sisu
load.system = Süsteem
load.mod = Mods
+load.scripts = Scripts
+
+be.update = A new Bleeding Edge build is available:
+be.update.confirm = Download it and restart now?
+be.updating = Updating...
+be.ignore = Ignore
+be.noupdates = No updates found.
+be.check = Check for updates
+
schematic = Schematic
schematic.add = Save Schematic...
schematics = Schematics
@@ -40,6 +52,7 @@ schematic.saved = Schematic saved.
schematic.delete.confirm = This schematic will be utterly eradicated.
schematic.rename = Rename Schematic
schematic.info = {0}x{1}, {2} blocks
+
stat.wave = Lahingulaineid läbitud:[accent] {0}
stat.enemiesDestroyed = Vaenlasi hävitatud:[accent] {0}
stat.built = Ehitisi konstrueeritud:[accent] {0}
@@ -47,6 +60,7 @@ stat.destroyed = Ehitisi hävinenud:[accent] {0}
stat.deconstructed = Ehitisi dekonstrueeritud:[accent] {0}
stat.delivered = Kaasavõetud ressursid:
stat.rank = Hinne:[accent] {0}
+
launcheditems = [accent]Kaasavõetud ressursid
launchinfo = [unlaunched][[LAUNCH] your core to obtain the items indicated in blue.
map.delete = Kas oled kindel, et soovid kustutada\nmaailma "[accent]{0}[]"?
@@ -74,6 +88,7 @@ maps.browse = Sirvi maailmu
continue = Jätka
maps.none = [lightgray]Ühtegi maailma ei leitud!
invalid = Kehtetu
+pickcolor = Pick Color
preparingconfig = Konfiguratsiooni ettevalmistamine
preparingcontent = Sisu ettevalmistamine
uploadingcontent = Sisu üleslaadimine
@@ -81,6 +96,7 @@ uploadingpreviewfile = Eelvaate faili üleslaadimine
committingchanges = Muudatuste teostamine
done = Valmis
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
@@ -92,18 +108,25 @@ 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 min game version: [accent]{0}
mod.missingdependencies = [scarlet]Missing dependencies: {0}
+mod.erroredcontent = [scarlet]Content Errors
+mod.errors = Errors have occurred loading content.
+mod.noerrorplay = [scarlet]You have mods with errors.[] Either disable the affected mods or fix the errors before playing.
mod.nowdisabled = [scarlet]Mod '{0}' is missing dependencies:[accent] {1}\n[lightgray]These mods need to be downloaded first.\nThis mod will be automatically disabled.
mod.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.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}
mod.preview.missing = Before publishing this mod in the workshop, you must add an image preview.\nPlace an image named[accent] preview.png[] into the mod's folder and try again.
mod.folder.missing = Only mods in folder form can be published on the workshop.\nTo convert any mod into a folder, simply unzip its file into a folder and delete the old zip, then restart your game or reload your mods.
+mod.scripts.unsupported = Your device does not support mod scripts. Some mods will not function correctly.
+
about.button = Info
name = Nimi:
noname = Valige kõigepealt [accent]nimi[].
@@ -132,6 +155,7 @@ server.kicked.nameEmpty = Sinu valitud nimi ei sobi.
server.kicked.idInUse = Sa juba mängid selles serveris! Teist korda liitumine on keelatud.
server.kicked.customClient = See server ei luba modifitseeritud mängu versioone. Lae alla ametlik versioon.
server.kicked.gameover = Mäng läbi!
+server.kicked.serverRestarting = The server is restarting.
server.versions = Sinu versioon:[accent] {0}[]\nServeri versioon:[accent] {1}[]
host.info = [accent]Hosti[] nupp avab serveri,\nkasutades porti [scarlet]6567[]. \nSamas [lightgray]kohtvõrgus[] olevad mängijad peaksid nägema sinu serverit enda serverite nimekirjas.\n\nKui sa tahad, et ka väljaspool kohtvõrku olevad mängijad saaksid serveriga ühineda, siis on vajalik\n[accent]portide edasisuunamine[].\n\n[lightgray]Märkus: Kui kellelgi on probleeme sinu kohtvõrgus avatud serveriga liitumisel, siis tee kindlaks, et tulemüüri sätetes on Mindustry'l lubatud pääseda ligi kohtvõrgule.
join.info = Siin saad lisada [accent]IP-aadressi serverile[], millega soovid liituda, või leida [accent]kohtvõrgus[] olevaid servereid.\nMäng toetab nii LAN- kui ka WAN-mitmikmängu.\n\n[lightgray]Märkus: Ei ole olemas automaatset serverite nimekirja. Kui sa soovid liituda mänguga IP kaudu, on sul vaja teada serveri IP-aadressi.
@@ -271,6 +295,7 @@ 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}
+
editor.brush = Pintsel
editor.openin = Ava redaktoris
editor.oregen = Maakide genereerimine
@@ -347,6 +372,7 @@ editor.overwrite = [accent]Hoiatus!\nSee asendab olemasoleva maailma.
editor.overwrite.confirm = [scarlet]Hoiatus![] Sellise nimega maailm on juba olemas. Oled kindel, et soovid selle asendada?
editor.exists = Sellise nimega maailm on juba olemas.
editor.selectmap = Vali laetav maailm:
+
toolmode.replace = Asenda
toolmode.replace.description = Joonista ainult tahkete blokkide peale.
toolmode.replaceall = Asenda kõik
@@ -361,6 +387,7 @@ toolmode.fillteams = Täida võistkondi
toolmode.fillteams.description = Täida blokkide asemel võistkondi.
toolmode.drawteams = Joonista võistkondi
toolmode.drawteams.description = Joonista blokkide asemel võistkondi.
+
filters.empty = [lightgray]Filtrid puuduvad! Lisa filtreid alloleva nupuga.
filter.distort = Moonutamine
filter.noise = Müra
@@ -392,6 +419,7 @@ filter.option.floor2 = Teine põrand
filter.option.threshold2 = Teine lävi
filter.option.radius = Raadius
filter.option.percentile = Protsentiil
+
width = Laius:
height = Kõrgus:
menu = Menüü
@@ -407,6 +435,7 @@ tutorial = Õpetus
tutorial.retake = Korda õpetust
editor = Redaktor
mapeditor = Maailmaredaktor
+
abandon = Loobu
abandon.text = See piirkond koos kõigi ressurssidega loovutatakse vaenlasele.
locked = Lukus
@@ -437,6 +466,7 @@ zone.objective.survival = Ellujäämine
zone.objective.attack = Hävita vaenlaste tuumik
add = Lisa...
boss.health = Bossi elud
+
connectfail = [crimson]Ühenduse viga:\n\n[accent]{0}
error.unreachable = Server ei ole kättesaadav.\nKas serveri aadress on õigesti sisestatud?
error.invalidaddress = Vale aadress.
@@ -447,6 +477,7 @@ error.mapnotfound = Maailmafaili ei leitud!
error.io = Võrgu sisend-väljundi viga.
error.any = Teadmata viga võrgus.
error.bloom = Bloom-efekti lähtestamine ebaõnnestus.\nSinu seade ei pruugi seda efekti toetada.
+
zone.groundZero.name = Nullpunkt
zone.desertWastes.name = Kõrbestunud tühermaa
zone.craters.name = Kraatrid
@@ -461,6 +492,7 @@ zone.saltFlats.name = Soolaväljad
zone.impact0078.name = Kokkupõrge 0078
zone.crags.name = Kaljurünkad
zone.fungalPass.name = Seenekuru
+
zone.groundZero.description = Optimaalne asukoht alustamiseks.\nMadal ohutase. Vähesel määral ressursse.\nKogu kokku nii palju vaske ja pliid kui võimalik.
zone.frozenForest.description = Spoorid on levinud isegi mägede lähedale. Jäised temperatuurid ei suuda neid igavesti eemal hoida.\n\nAlusta esimeste katsetustega energia tootmises. Ehita põlemisgeneraatoreid.\nÕpi oma ehitisi parandama.
zone.desertWastes.description = Need tühermaad on üüratud ja ettearvamatud. Siin-seal leidub mahajäetud ja räsitud tööstushooneid.\n\nSelles piirkonnas leidub sütt. Töötle seda grafiidiks või põleta energia saamiseks.\n\n[lightgray]Maandumispaik ei ole kindlaks määratud.
@@ -475,10 +507,12 @@ zone.nuclearComplex.description = Endine tooriumi tootmise ja töötlemise rajat
zone.fungalPass.description = Üleminekuala kõrgete mägede ja madalamate, spooridega ülekülvatud maade vahel. Siin asub väike vaenlaste luurebaas.\nHävita see.\nKasuta soldatite ja plahvatajate väeüksuseid. Hävita kaks vaenlaste tuumikut.
zone.impact0078.description =
zone.crags.description =
+
settings.language = Keel
settings.data = Mänguandmed
settings.reset = Vaikimisi sätted
settings.rebind = Muuda
+settings.resetKey = Reset
settings.controls = Juhtnupud
settings.game = Mäng
settings.sound = Heli
@@ -529,6 +563,7 @@ blocks.inaccuracy = Ebatäpsus
blocks.shots = Laske
blocks.reload = Lasku/s
blocks.ammo = Laskemoon
+
bar.drilltierreq = Nõuab paremat puuri
bar.drillspeed = Puurimise kiirus: {0}/s
bar.pumpspeed = Pump Speed: {0}/s
@@ -544,6 +579,9 @@ bar.heat = Kuumus
bar.power = Energia
bar.progress = Edenemine
bar.spawned = Väeüksuseid: {0}/{1}
+bar.input = Input
+bar.output = Output
+
bullet.damage = [stat]{0}[lightgray] hävituspunkti
bullet.splashdamage = [stat]{0}[lightgray] hävituspunkti ~[stat] {1}[lightgray] blokki
bullet.incendiary = [stat]süttiv
@@ -555,6 +593,7 @@ bullet.freezing = [stat]jäätav
bullet.tarred = [stat]leekisüütav
bullet.multiplier = [stat]{0}[lightgray]x laskemoona kordaja
bullet.reload = [stat]{0}[lightgray]x tulistamise kiirus
+
unit.blocks = blokki
unit.powersecond = energiaühikut/s
unit.liquidsecond = vedelikuühikut/s
@@ -567,6 +606,8 @@ unit.persecond = /s
unit.timesspeed = x kiirus
unit.percent = %
unit.items = ressursiühikut
+unit.thousands = k
+unit.millions = mil
category.general = Üldinfo
category.power = Energia
category.liquids = Vedelikud
@@ -579,6 +620,7 @@ setting.shadows.name = Varjud
setting.blockreplace.name = Automatic Block Suggestions
setting.linear.name = Lineaarne tekstuurivastendus
setting.hints.name = Hints
+setting.buildautopause.name = Auto-Pause Building
setting.animatedwater.name = Animeeritud vesi
setting.animatedshields.name = Animeeritud kilbid
setting.antialias.name = Sakitõrje[lightgray] (vajab mängu taaskäivitamist)[]
@@ -601,12 +643,16 @@ setting.screenshake.name = Ekraani värisemine
setting.effects.name = Näita visuaalefekte
setting.destroyedblocks.name = Display Destroyed Blocks
setting.conveyorpathfinding.name = Conveyor Placement Pathfinding
+setting.coreselect.name = Allow Schematic Cores
setting.sensitivity.name = Kontrolleri tundlikkus
setting.saveinterval.name = Salvestamise intervall
setting.seconds = {0} sekundit
+setting.blockselecttimeout.name = Block Select Timeout
+setting.milliseconds = {0} milliseconds
setting.fullscreen.name = Täisekraan
setting.borderlesswindow.name = Äärteta ekraan[lightgray] (võib vajada mängu taaskäivitamist)
setting.fps.name = Näita kaadrite arvu sekundis
+setting.blockselectkeys.name = Show Block Select Keys
setting.vsync.name = Vertikaalne sünkroonimine
setting.pixelate.name = Piksel-efekt[lightgray] (lülitab animatsioonid välja)
setting.minimap.name = Näita kaarti
@@ -635,16 +681,36 @@ category.multiplayer.name = Mitmikmäng
command.attack = Ründa
command.rally = Patrulli
command.retreat = Põgene
+placement.blockselectkeys = \n[lightgray]Key: [{0},
keybind.clear_building.name = Clear Building
keybind.press = Vajuta klahvi...
keybind.press.axis = Liiguta juhtkangi või vajuta klahvi...
keybind.screenshot.name = Kuvatõmmis
+keybind.toggle_power_lines.name = Toggle Power Lasers
keybind.move_x.name = Liigu X-teljel
keybind.move_y.name = Liigu Y-teljel
+keybind.mouse_move.name = Follow Mouse
+keybind.dash.name = Söösta
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.category_prev.name = Previous Category
+keybind.category_next.name = Next Category
+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 = Täisekraan
keybind.select.name = Vali/Tulista
keybind.diagonal_placement.name = Diagonaalne paigutamine
@@ -657,7 +723,6 @@ keybind.menu.name = Menüü
keybind.pause.name = Paus
keybind.pause_building.name = Pause/Resume Building
keybind.minimap.name = Kaart
-keybind.dash.name = Söösta
keybind.chat.name = Vestle
keybind.player_list.name = Mängijate nimekiri
keybind.console.name = Konsool
@@ -680,7 +745,9 @@ mode.pvp.description = Võitle teiste mängijate vastu.
mode.attack.name = Rünnak
mode.attack.description = Hävita vaenlaste baas. Lahingulaineid ei ole.
mode.custom = Reeglid
+
rules.infiniteresources = Lõputult ressursse
+rules.reactorexplosions = Reactor Explosions
rules.wavetimer = Kasuta taimerit
rules.waves = Kasuta lahingulaineid
rules.attack = Mänguviis "Rünnak"
@@ -688,6 +755,7 @@ rules.enemyCheat = [scarlet]Vaenlastel[] on lõputult ressursse
rules.unitdrops = Väeüksuste heitmine lubatud
rules.unitbuildspeedmultiplier = Väeüksuste tootmiskiiruse kordaja
rules.unithealthmultiplier = Väeüksuste elude kordaja
+rules.blockhealthmultiplier = Block Health Multiplier
rules.playerhealthmultiplier = Mängija elude kordaja
rules.playerdamagemultiplier = Mängija hävitusvõime kordaja
rules.unitdamagemultiplier = Väeüksuste hävitusvõime kordaja
@@ -706,6 +774,10 @@ rules.title.resourcesbuilding = Ressursid ja ehitamine
rules.title.player = Mängijad
rules.title.enemy = Vaenlased
rules.title.unit = Väeüksused
+rules.title.experimental = Experimental
+rules.lighting = Lighting
+rules.ambientlight = Ambient Light
+
content.item.name = Ressursid
content.liquid.name = Vedelikud
content.unit.name = Väeüksused
@@ -752,6 +824,7 @@ mech.trident-ship.name = Lembitu
mech.trident-ship.weapon = Pommiheitja
mech.glaive-ship.name = Vambola
mech.glaive-ship.weapon = Kuulipildur
+item.corestorable = [lightgray]Storable in Core: {0}
item.explosiveness = [lightgray]Plahvatusohtlikkus: {0}%
item.flammability = [lightgray]Tuleohtlikkus: {0}%
item.radioactivity = [lightgray]Radioaktiivsus: {0}%
@@ -767,6 +840,7 @@ mech.buildspeed = [lightgray]Ehitamise kiirus: {0}%
liquid.heatcapacity = [lightgray]Soojusmahtuvus: {0}
liquid.viscosity = [lightgray]Viskoossus: {0}
liquid.temperature = [lightgray]Temperatuur: {0}
+
block.sand-boulder.name = Liivakamakas
block.grass.name = Rohi
block.salt.name = Sool
@@ -865,6 +939,8 @@ block.distributor.name = Suur jaotur
block.sorter.name = Sorteerija
block.inverted-sorter.name = Inverted Sorter
block.message.name = Sõnum
+block.illuminator.name = Illuminator
+block.illuminator.description = A small, compact, configurable light source. Requires power to function.
block.overflow-gate.name = Ülevooluvärav
block.silicon-smelter.name = Ränisulatusahi
block.phase-weaver.name = Faaskangakuduja
@@ -878,6 +954,7 @@ block.coal-centrifuge.name = Söetsentrifuug
block.power-node.name = Energiasõlm
block.power-node-large.name = Suur energiasõlm
block.surge-tower.name = Energiatorn
+block.diode.name = Battery Diode
block.battery.name = Aku
block.battery-large.name = Suur aku
block.combustion-generator.name = Põlemisgeneraator
@@ -901,6 +978,7 @@ block.mechanical-pump.name = Harilik pump
block.item-source.name = Ressursiallikas
block.item-void.name = Ressursisuue
block.liquid-source.name = Vedelikuallikas
+block.liquid-void.name = Liquid Void
block.power-void.name = Maandaja
block.power-source.name = Energiaallikas
block.unloader.name = Mahalaadija
@@ -930,6 +1008,7 @@ block.fortress-factory.name = Koljatite tehas
block.revenant-factory.name = Ülestõusnute tehas
block.repair-point.name = Parandusjaam
block.pulse-conduit.name = Titaantoru
+block.plated-conduit.name = Plated Conduit
block.phase-conduit.name = Faastoru
block.liquid-router.name = Torujaotur
block.liquid-tank.name = Mahuti
@@ -1001,6 +1080,7 @@ tutorial.deposit = Ressursside mahalaadimiseks lohista ressursid oma mehhaanilt
tutorial.waves = [scarlet]Vaenlane[] läheneb.\n\nKaitse oma tuumikut kahe lahingulaine vältel.[accent] Kliki hiirega[], et oma mehhaanist tulistada.\n[accent]Kaevanda juurde vaske. Ehita uusi puure ja kahureid.
tutorial.waves.mobile = [scarlet]Vaenlane[] läheneb.\n\nKaitse oma tuumikut kahe lahingulaine vältel. Sinu mehhaan tulistab vaenlaseid automaatselt.\n[accent]Kaevanda juurde vaske. Ehita uusi puure ja kahureid.
tutorial.launch = Kui oled kindla arvu lahingulaineid vastu pidanud, on sul võimalik[accent] tuumikuga lendu tõusta[], jättes maha kõik muud ehitised ja[accent] võttes kaasa kõik tuumikus olevad ressursid.[]\nNeid ressursse saab kasutada uute [accent]tehnoloogiate uurimiseks[].\n\n[accent]Vajuta lendu tõusmise nuppu.
+
item.copper.description = Peamine materjal, mida kasutatakse igat tüüpi konstruktsioonide ehitamiseks.
item.lead.description = Peamine materjal, mida kasutatakse vedelike transportimise konstruktsioonide ja elektroonikaga seotud konstruktsioonide ehitamiseks.
item.metaglass.description = Ülitugev klaasiühend, mida kasutatakse vedelike transportimise ja hoiustamise konstruktsioonide ehitamiseks.
@@ -1062,6 +1142,7 @@ block.power-source.description = Väljastab piiramatult energiat. Olemas ainult
block.item-source.description = Väljastab piiramatult ressursse. Olemas ainult mänguviisis "Liivakast".
block.item-void.description = Hävitab kõik ressursid. Olemas ainult mänguviisis "Liivakast".
block.liquid-source.description = Väljastab piiramatult vedelikke. Olemas ainult mänguviisis "Liivakast".
+block.liquid-void.description = Removes any liquids. Sandbox only.
block.copper-wall.description = Odav kaitsekonstruktsioon.\nKasulik tuumiku ja kahurite kaitsmiseks esimeste lahingulainete ajal.
block.copper-wall-large.description = Odav kaitsekonstruktsioon.\nKasulik tuumiku ja kahurite kaitsmiseks esimeste lahingulainete ajal.\nUlatub üle mitme bloki.
block.titanium-wall.description = Mõõdukalt tugev kaitsekonstruktsioon.\nPakub keskmist kaitset vaenlaste eest.
@@ -1097,6 +1178,7 @@ block.rotary-pump.description = Täiustatud pump, mis pumpab paremini kui harili
block.thermal-pump.description = Ülim pump, mis vajab töötamiseks palju energiat.
block.conduit.description = Vedelike transportimise vahend, mis liigutab vedelikke edasi. Kasutatakse koos pumpade ja teiste torudega.
block.pulse-conduit.description = Täiustatud toru, mis transpordib ja hoiustab vedelikke kiiremini kui algeline toru.
+block.plated-conduit.description = Moves liquids at the same rate as pulse conduits, but possesses more armor. Does not accept fluids from the sides by anything other than conduits.\nLeaks less.
block.liquid-router.description = Jaotab vedelikke kuni kolmes väljuvas suunas võrdselt. Selle jaoturiga on võimalik teatud koguses ka vedelikku hoiustada. Kasulik olukordades, kus vedelikke on vaja korraga saata mitmesse kohta.
block.liquid-tank.description = Hoiustab suures koguses vedelikke. Kasuta puhvrite loomiseks juhul, kui ressursside nõudlus pole püsiv, või ettevaatusabinõuna tähtsate konstruktsioonide jahutussüsteemides.
block.liquid-junction.description = Toimib kui sild samal tasapinnal ristuvate torude vahel. Kasulik olukordades, kus kaks toru kannavad erinevaid vedelikke erinevatesse kohtadesse.
@@ -1105,6 +1187,7 @@ block.phase-conduit.description = Täiustatud toru, mis kasutab energiat vedelik
block.power-node.description = Edastab energiat ühendatud sõlmpunktidesse. Sõlmed varustavad energiaga kõiki piisavalt lähedal asuvaid ja sõlmega ühenduses olevaid konstruktsioone.
block.power-node-large.description = Täiustatud energiasõlm, mis on suurema ulatuse ja suurema võimalike ühenduste arvuga.
block.surge-tower.description = Kaugeleulatuv energiasõlm, mis on väiksema võimalike ühenduste arvuga.
+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 = Salvestab energiat puhvrina positiivse energiabilansi ehk ülejäägi korral. Negatiivse energiabilansi ehk defitsiidi korral laetakse salvestatud energiat maha.
block.battery-large.description = Salvestab rohkem energiat kui tavaline aku.
block.combustion-generator.description = Toodab energiat süttivate materjalide, näiteks söe, põletamisel.
diff --git a/core/assets/bundles/bundle_eu.properties b/core/assets/bundles/bundle_eu.properties
index 66d71a0dce..967bcc497a 100644
--- a/core/assets/bundles/bundle_eu.properties
+++ b/core/assets/bundles/bundle_eu.properties
@@ -10,7 +10,9 @@ link.dev-builds.description = Garapen konpilazio ezegonkorrak
link.trello.description = Aurreikusitako ezaugarrien Trello ofiziala
link.itch.io.description = PC deskargen itch.io orria
link.google-play.description = Google Play dendako sarrera
+link.f-droid.description = F-Droid catalogue listing
link.wiki.description = Mindustry wiki ofiziala
+link.feathub.description = Suggest new features
linkfail = Huts egin du esteka irekitzean!\nURL-a zure arbelera kopiatu da.
screenshot = Pantaila-argazkia {0} helbidean gorde da
screenshot.invalid = Mapa handiegia, baliteke pantaila-argazkirako memoria nahiko ez egotea.
@@ -18,12 +20,22 @@ gameover = Partida amaitu da
gameover.pvp = [accent] {0}[] taldeak irabazi du!
highscore = [accent]Marka berria!
copied = Kopiatuta.
+
load.sound = Soinuak
load.map = Mapak
load.image = Irudiak
load.content = Edukia
load.system = Sistema
load.mod = Mod-ak
+load.scripts = Scripts
+
+be.update = A new Bleeding Edge build is available:
+be.update.confirm = Download it and restart now?
+be.updating = Updating...
+be.ignore = Ignore
+be.noupdates = No updates found.
+be.check = Check for updates
+
schematic = Eskama
schematic.add = Gorde eskema...
schematics = Eskemak
@@ -40,6 +52,7 @@ 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}
@@ -47,6 +60,7 @@ stat.destroyed = Suntsitutako eraikinak:[accent] {0}
stat.deconstructed = Deseraikitako eraikinak:[accent] {0}
stat.delivered = Egotzitako baliabideak:
stat.rank = Azken graduazioa: [accent]{0}
+
launcheditems = [accent]Egotzitako baliabideak
launchinfo = [unlaunched][[EGOTZI] zure muina urdinez adierazitako baliabideak eskuratzeko.
map.delete = Ziur al zaude "[accent]{0}[]" mapa ezabatu nahi duzula?
@@ -74,6 +88,7 @@ maps.browse = Arakatu mapak
continue = Jarraitu
maps.none = [lightgray]Ez da maparik aurkitu!
invalid = Baliogabea
+pickcolor = Pick Color
preparingconfig = Konfigurazioa prestatzen
preparingcontent = Edukia prestatzen
uploadingcontent = Edukia igotzen
@@ -81,6 +96,7 @@ uploadingpreviewfile = Aurrebista fitxategia igotzen
committingchanges = Aldaketak aplikatzen
done = Egina
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
@@ -92,18 +108,25 @@ 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.requiresversion = [scarlet]Requires min game version: [accent]{0}
mod.missingdependencies = [scarlet]Falta diren menpekotasunak: {0}
+mod.erroredcontent = [scarlet]Content Errors
+mod.errors = Errors have occurred loading content.
+mod.noerrorplay = [scarlet]You have mods with errors.[] Either disable the affected mods or fix the errors before playing.
mod.nowdisabled = [scarlet]'{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.item.remove = This item is part of the[accent] '{0}'[] mod. To remove it, uninstall that mod.
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.
+mod.scripts.unsupported = Your device does not support mod scripts. Some mods will not function correctly.
+
about.button = Honi buruz
name = Izena:
noname = Hautatu[accent] jokalari-izena[] aurretik.
@@ -132,6 +155,7 @@ server.kicked.nameEmpty = Aukeratu duzun izena baliogabea da.
server.kicked.idInUse = Bazaude zerbitzari honetan! Ezin zara bi kontu desberdinekin konektatu.
server.kicked.customClient = Zerbitzari honek ez ditu konpilazio pertsonalizatuak onartzen. Deskargatu bertsio ofizial bat.
server.kicked.gameover = Partida amaitu da!
+server.kicked.serverRestarting = The server is restarting.
server.versions = Zure bertsioa:[accent] {0}[]\nZerbitzariaren bertsioa:[accent] {1}[]
host.info = [accent]Ostalaria[] botoiak zerbitzari bat abiatzen du [scarlet]6567[] atakan.\n[lightgray]wifi edo sare lokal[] berean dagoen edonor zure zerbitzaria ikusi ahal beharko luke.\n\nJendea edonondik IP-a erabilita konektatu ahal izatea nahi baduzu, [accent]ataka birbidaltzea[] ezinbestekoa da.\n\n[lightgray]Oharra: Inork zure sare lokalean partidara elkartzeko arazoak baditu, egiaztatu Mindustry-k baimena duela sare lokalera elkartzeko suebakiaren ezarpenetan. Kontuan izan sare publiko batzuk ez dutela zerbitzarien bilaketa baimentzen.
join.info = Hemen, konektatzeko [accent]zerbitzari baten IP-a[] sartu dezakezu konektatzeko, edo [accent]sare lokaleko[] zerbitzariak bilatu.\nLAN zein WAN sareetan onartzen dira hainbat jokalarien partidak .\n\n[lightgray]Oharra: Ez dago zerbitzarien zerrenda global automatikorik, beste inorekin IP bidez konektatu nahi baduzu, ostalariari bere IP helbidea eskatu beharko diozu.
@@ -271,6 +295,7 @@ 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
@@ -347,6 +372,7 @@ editor.overwrite = [accent]Abisua!\nHonek badagoen mapa bat gainidatziko du.
editor.overwrite.confirm = [scarlet]Abisua![] Badago izen bereko beste mapa bat. Ziur gainidatzi nahi duzula?
editor.exists = Badago izen bereko beste mapa bat.
editor.selectmap = Hautatu mapa kargatzeko:
+
toolmode.replace = Ordeztu
toolmode.replace.description = Marraztu bloke zurrunak bakarrik.
toolmode.replaceall = Ordeztu denak
@@ -361,6 +387,7 @@ toolmode.fillteams = Bete taldeak
toolmode.fillteams.description = Bete taldeak blokeen ordez.
toolmode.drawteams = Marraztu taldeak
toolmode.drawteams.description = Marraztu taldeak blokeen ordez.
+
filters.empty = [lightgray]Iragazkirik ez! Gehitu bat beheko botoiarekin.
filter.distort = Distortsioa
filter.noise = Orbana
@@ -392,6 +419,7 @@ filter.option.floor2 = Bigarren zorua
filter.option.threshold2 = Bigarren atalasea
filter.option.radius = Erradioa
filter.option.percentile = Pertzentila
+
width = Zabalera:
height = Altuera:
menu = Menua
@@ -407,6 +435,7 @@ tutorial = Tutoriala
tutorial.retake = Berriro hasi tutoriala
editor = Editorea
mapeditor = Mapen editorea
+
abandon = Abandonatu
abandon.text = Eremu hau eta bere baliabide guztiak etsaiaren esku geratuko dira.
locked = Blokeatuta
@@ -437,6 +466,7 @@ zone.objective.survival = Biziraupena
zone.objective.attack = Suntsitu etsaiaren muina
add = Gehitu
boss.health = Nagusiaren osasuna
+
connectfail = [crimson]Konexio errorea:\n\n[accent]{0}
error.unreachable = Zerbitzaria eskuraezin.\nHelbidea ondo idatzita dago?
error.invalidaddress = Helbide baliogabea.
@@ -447,6 +477,7 @@ error.mapnotfound = Ez da mapa-fitxategia aurkitu!
error.io = Sareko irteera/sarrera errorea.
error.any = Sareko errore ezezaguna.
error.bloom = Ezin izan da distira hasieratu.\nAgian zure gailuak ez du onartzen.
+
zone.groundZero.name = Zero eremua
zone.desertWastes.name = Basamortuak
zone.craters.name = Kraterrak
@@ -461,6 +492,7 @@ zone.saltFlats.name = Gatz zelaiak
zone.impact0078.name = 0078 talka
zone.crags.name = Harkaitzak
zone.fungalPass.name = Onddo mendatea
+
zone.groundZero.description = Berriro hasteko kokaleku egokiena.\nBaliabide gutxi daude baina etsaien mehatxua ere txikia da.\nEskuratu ahal beste berun eta kobre.\nSegi aurrera.
zone.frozenForest.description = Hemen ere, mendietatik hurbil, esporak sakabanatu dira. Tenperatura hotzek ez dituzte betirako geldiaraziko.\n\nHasi energia eskuratzeko abentura. Eraiki errekuntza sorgailuak. Ikasi konpontzaileak erabiltzen.
zone.desertWastes.description = Basamortu hauen zabalak dira, ezustekoak, eta abandonaturiko sektore estrukturekin marratuak.\nBadago ikatza eskualde honetan. Erre energiarako, edo grafitoa sintetizatzeko.\n\n[lightgray]Ezin da lurreratze tokia bermatu.
@@ -475,10 +507,12 @@ zone.nuclearComplex.description = Torioa ekoiztu eta prozesatzeko instalazio ohi
zone.fungalPass.description = Mendi garaiak eta esporez jositako behe lautaden arteko transizio eremua. Etsaien araketa-base txiki bat dago hemen.\nSuntsitu ezazu.\nErabili Daga eta Ibilkari unitateak. Akabatu bi muinak.
zone.impact0078.description =
zone.crags.description =
+
settings.language = Hizkuntza
settings.data = Jolasaren datuak
settings.reset = Berrezarri lehenespenak
settings.rebind = Aldatu
+settings.resetKey = Reset
settings.controls = Kontrolak
settings.game = Jolasa
settings.sound = Soinua
@@ -529,6 +563,7 @@ blocks.inaccuracy = Zehazgabetasuna
blocks.shots = Tiroak
blocks.reload = Tiroak/segundoko
blocks.ammo = Munizioa
+
bar.drilltierreq = Zulagailu hobea behar da
bar.drillspeed = Ustiatze-abiadura: {0}/s
bar.pumpspeed = Ponpatze abiadura: {0}/s
@@ -544,6 +579,9 @@ bar.heat = Beroa
bar.power = Energia
bar.progress = Eraikitze egoera
bar.spawned = Unitateak: {0}/{1}
+bar.input = Input
+bar.output = Output
+
bullet.damage = [stat]{0}[lightgray] kalte
bullet.splashdamage = [stat]{0}[lightgray] ingurune-kaltea ~[stat] {1}[lightgray] lauza
bullet.incendiary = [stat]su-eragilea
@@ -555,6 +593,7 @@ bullet.freezing = [stat]hozkirri
bullet.tarred = [stat]mundrunduta
bullet.multiplier = [stat]{0}[lightgray]x munizio-biderkatzailea
bullet.reload = [stat]{0}[lightgray]x tiro tasa
+
unit.blocks = bloke
unit.powersecond = energia unitate/segundoko
unit.liquidsecond = likido unitate/segundoko
@@ -567,6 +606,8 @@ unit.persecond = /seg
unit.timesspeed = x abiadura
unit.percent = %
unit.items = elementu
+unit.thousands = k
+unit.millions = mil
category.general = Orokorra
category.power = Energia
category.liquids = Likidoak
@@ -579,6 +620,7 @@ setting.shadows.name = Itzalak
setting.blockreplace.name = Bloke proposamen automatikoak
setting.linear.name = Iragazte lineala
setting.hints.name = Pistak
+setting.buildautopause.name = Auto-Pause Building
setting.animatedwater.name = Animatutako ura
setting.animatedshields.name = Animatutako ezkutuak
setting.antialias.name = Antialias[lightgray] (berrabiarazi behar da)[]
@@ -601,12 +643,16 @@ setting.screenshake.name = Pantailaren astindua
setting.effects.name = Bistaratze-efektuak
setting.destroyedblocks.name = Erakutsi suntsitutako blokeak
setting.conveyorpathfinding.name = Garraio-zintak kokatzeko bide-bilaketa
+setting.coreselect.name = Allow Schematic Cores
setting.sensitivity.name = Kontrolagailuaren sentikortasuna
setting.saveinterval.name = Gordetzeko tartea
setting.seconds = {0} segundo
+setting.blockselecttimeout.name = Block Select Timeout
+setting.milliseconds = {0} milliseconds
setting.fullscreen.name = Pantaila osoa
setting.borderlesswindow.name = Ertzik gabeko leihoa[lightgray] (berrabiaraztea behar lezake)
setting.fps.name = Erakutsi FPS
+setting.blockselectkeys.name = Show Block Select Keys
setting.vsync.name = VSync
setting.pixelate.name = Pixelatu[lightgray] (animazioak desgaitzen ditu)
setting.minimap.name = Erakutsi mapatxoa
@@ -635,16 +681,36 @@ category.multiplayer.name = Hainbat jokalari
command.attack = Eraso
command.rally = Batu
command.retreat = Erretreta
+placement.blockselectkeys = \n[lightgray]Key: [{0},
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.toggle_power_lines.name = Toggle Power Lasers
keybind.move_x.name = Mugitu x
keybind.move_y.name = Mugitu y
+keybind.mouse_move.name = Follow Mouse
+keybind.dash.name = Arrapalada
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.category_prev.name = Previous Category
+keybind.category_next.name = Next Category
+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 = Txandakatu pantaila osoa
keybind.select.name = Hautatu/Tirokatu
keybind.diagonal_placement.name = Kokatze diagonala
@@ -657,7 +723,6 @@ keybind.menu.name = Menua
keybind.pause.name = Pausatu
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
@@ -680,7 +745,9 @@ mode.pvp.description = Borrokatu beste jokalari batzuk lokalean.\n[gray]Gutxiene
mode.attack.name = Erasoa
mode.attack.description = Suntsitu etsaiaren basea. Boladarik ez.\n[gray]Kono gorria behar da mapan jolasteko.
mode.custom = Arau pertsonalizatuak
+
rules.infiniteresources = Baliabide amaigabeak
+rules.reactorexplosions = Reactor Explosions
rules.wavetimer = Boladen denboragailua
rules.waves = Boladak
rules.attack = Eraso modua
@@ -688,6 +755,7 @@ rules.enemyCheat = IA-k (talde gorriak) baliabide amaigabeak ditu
rules.unitdrops = Unitate-sorrerak
rules.unitbuildspeedmultiplier = Unitateen sorrerarako abiadura-biderkatzailea
rules.unithealthmultiplier = Unitateen osasun-biderkatzailea
+rules.blockhealthmultiplier = Block Health Multiplier
rules.playerhealthmultiplier = Jokalariaren osasun-biderkatzailea
rules.playerdamagemultiplier = Jokalariaren kalte-biderkatzailea
rules.unitdamagemultiplier = Unitateen kalte-biderkatzailea
@@ -706,6 +774,10 @@ rules.title.resourcesbuilding = Baliabideak eta eraikuntza
rules.title.player = Jokalariak
rules.title.enemy = Etsaiak
rules.title.unit = Unitateak
+rules.title.experimental = Experimental
+rules.lighting = Lighting
+rules.ambientlight = Ambient Light
+
content.item.name = Solidoak
content.liquid.name = Likidoak
content.unit.name = Unitateak
@@ -752,6 +824,7 @@ mech.trident-ship.name = Hiruhortz
mech.trident-ship.weapon = Bonba jaregilea
mech.glaive-ship.name = Guja
mech.glaive-ship.weapon = Sugar errepika-fusila
+item.corestorable = [lightgray]Storable in Core: {0}
item.explosiveness = [lightgray]Lehergarritasuna: {0}%
item.flammability = [lightgray]Sukoitasuna: {0}%
item.radioactivity = [lightgray]Erradioaktibitatea: {0}%
@@ -767,6 +840,7 @@ mech.buildspeed = [lightgray]Eraikitze abiadura: {0}%
liquid.heatcapacity = [lightgray]Bero edukiera: {0}
liquid.viscosity = [lightgray]Likatasuna: {0}
liquid.temperature = [lightgray]Tenperatura: {0}
+
block.sand-boulder.name = Hondar harkaitza
block.grass.name = Belarra
block.salt.name = Gatza
@@ -865,6 +939,8 @@ block.distributor.name = Banatzailea
block.sorter.name = Antolatzailea
block.inverted-sorter.name = Alderantzizko antolatzailea
block.message.name = Mezua
+block.illuminator.name = Illuminator
+block.illuminator.description = A small, compact, configurable light source. Requires power to function.
block.overflow-gate.name = Gainezkatze atea
block.silicon-smelter.name = Silizio galdategia
block.phase-weaver.name = Fase ehulea
@@ -878,6 +954,7 @@ block.coal-centrifuge.name = Ikatz zentrifugagailua
block.power-node.name = Energia-nodoa
block.power-node-large.name = Energia-nodo handia
block.surge-tower.name = Tirainezko dorrea
+block.diode.name = Battery Diode
block.battery.name = Bateria
block.battery-large.name = Bateria handia
block.combustion-generator.name = Errekuntza sorgailua
@@ -901,6 +978,7 @@ block.mechanical-pump.name = Ponpa mekanikoa
block.item-source.name = Elementu-iturria
block.item-void.name = Elementu-zuloa
block.liquid-source.name = Likido-iturria
+block.liquid-void.name = Liquid Void
block.power-void.name = Energia-zuloa
block.power-source.name = Energia amaigabea
block.unloader.name = Deskargagailua
@@ -930,6 +1008,7 @@ block.fortress-factory.name = Gotorleku meka faktoria
block.revenant-factory.name = Mamu ehiza-hegazkin faktoria
block.repair-point.name = Konponketa puntua
block.pulse-conduit.name = Pultsu hodia
+block.plated-conduit.name = Plated Conduit
block.phase-conduit.name = Fasezko hodia
block.liquid-router.name = Likidoen bideratzailea
block.liquid-tank.name = Likidoentzako tankea
@@ -1001,6 +1080,7 @@ tutorial.deposit = Baliabideak blokeren batean sartzeko, arrastatu zure ontzitik
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[] 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.
item.metaglass.description = Beirazko konposatu izugarri sendoa. Asko erabilia likidoen garraio eta biltegiratzerako.
@@ -1062,6 +1142,7 @@ block.power-source.description = Energia emari etengabea. Jolastokian besterik e
block.item-source.description = Elementuen iturri amaigabea. Jolastokian besterik ez.
block.item-void.description = Elementu guztiak suntsitzen ditu. Jolastokian besterik ez.
block.liquid-source.description = Likidoen emari amaigabea. Jolastokian besterik ez.
+block.liquid-void.description = Removes any liquids. Sandbox only.
block.copper-wall.description = Babeserako bloke merke bat.\nMuina eta dorreak lehen boladetan babesteko erabilgarria.
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.
@@ -1097,6 +1178,7 @@ block.rotary-pump.description = Ponpa aurreratu bat. Likido gehiago barreiatzen
block.thermal-pump.description = Ponpa gorena.
block.conduit.description = Likidoen garraiorako oinarrizko blokea. Likidoak daramatza. Ponpa eta bestelako hodiekin batera erabilia.
block.pulse-conduit.description = Likidoen garraiorako bloke aurreratua. Hodi arruntek baino azkarrago garraiatzen ditu likidoak eta edukiera handiagoa du.
+block.plated-conduit.description = Moves liquids at the same rate as pulse conduits, but possesses more armor. Does not accept fluids from the sides by anything other than conduits.\nLeaks less.
block.liquid-router.description = Likidoan alde batetik jaso eta gehienez beste 3 norabideetara ateratzen ditu kopuru berdinean. Likido apur bat ere biltegiratu dezake. Likidoak iturri batetik hainbat xedeetara eramateko erabilgarria.
block.liquid-tank.description = Likidoen kopuru handi bat biltegiratzen du. Erabili tarteko biltegiratzerako materialen eskaria etengabekoa ez denean, edo ezinbesteko blokeentzako hozgarriaren gordailu gisa.
block.liquid-junction.description = Gurutzatzen diren bi hodi banatzeko zubi gisa aritzen da. Likido desberdinak daramatzaten bi hodi gurutzatzen direnean erabilgarria.
@@ -1105,6 +1187,7 @@ block.phase-conduit.description = Likidoen garraiorako bloke aurreratua. Energia
block.power-node.description = Konektatu nodoei energia igortzen die. Nodoa inguruko edozein blokeetara konektatuko da energia jaso edo igortzeko.
block.power-node-large.description = Energia nodo aurreratua, irismen handiagoarekin eta konexio gehiagorekin.
block.surge-tower.description = Muturreko irismen luzea duen energia-nodoa konexio erabilgarri gutxiagorekin.
+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 = Energia biltegiratu dezake gehiegi dagoenean tartekari gisa erabiltzeko. Behar denean energia igortzen du.
block.battery-large.description = Bateria arrunt batek baino energia gehiago biltegiratu dezake.
block.combustion-generator.description = Energia sortzen du gai erregarriak errez, esaterako ikatza.
diff --git a/core/assets/bundles/bundle_fi.properties b/core/assets/bundles/bundle_fi.properties
index be59e014aa..a4c189dca4 100644
--- a/core/assets/bundles/bundle_fi.properties
+++ b/core/assets/bundles/bundle_fi.properties
@@ -3,19 +3,55 @@ credits = Tekijät
contributors = Kääntäjät ja avustajat
discord = Liity Mindustryn Discordiin!
link.discord.description = Mindustryn virallinen Discord-keskusteluhuone
+link.reddit.description = The Mindustry subreddit
link.github.description = Pelin lähdekoodi
link.changelog.description = Lista päivityksien muutoksista
link.dev-builds.description = Epävakaat kehitysversiot
link.trello.description = Virallinen Trello-taulu suunnitelluille ominaisuuksille.
link.itch.io.description = itch.io -sivu tietokoneversion latausten kanssa
link.google-play.description = Google Play Kauppa -sivu
+link.f-droid.description = F-Droid catalogue listing
link.wiki.description = Virallinen Mindustry wiki
+link.feathub.description = Suggest new features
linkfail = Linkin avaaminen epäonnistui!\nOsoite on kopioitu leikepöydällesi.
screenshot = Kuvankaappaus tallennettu sijaintiin {0}
screenshot.invalid = Kartta liian laaja, kuvankaappaukselle ei mahdollisesti ole tarpeeksi tilaa.
gameover = Peli ohi
gameover.pvp = [accent] {0}[] joukkue voittaa!
highscore = [accent]Uusi ennätys!
+copied = Copied.
+
+load.sound = Sounds
+load.map = Maps
+load.image = Images
+load.content = Content
+load.system = System
+load.mod = Mods
+load.scripts = Scripts
+
+be.update = A new Bleeding Edge build is available:
+be.update.confirm = Download it and restart now?
+be.updating = Updating...
+be.ignore = Ignore
+be.noupdates = No updates found.
+be.check = Check for updates
+
+schematic = Schematic
+schematic.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
stat.wave = Aaltoja voitettu:[accent] {0}
stat.enemiesDestroyed = Vihollisia tuhottu:[accent] {0}
@@ -25,10 +61,8 @@ stat.deconstructed = Rakennuksia purettu:[accent] {0}
stat.delivered = Resursseja laukaistu:
stat.rank = Lopullinen arvo: [accent]{0}
-placeline = Olet valinnut palikan.\nVoit[accent] asettaa linjassa[][accent] pitämällä sormeasi pohjassa muutaman sekunnin ajan[] ja vetämällä johonkin suuntaan.\n\n[scarlet]TEE SE.
-removearea = Olet valinut poistotilan.\nVoit[accent] poistaa palikoita suorakulmiossa[][accent] pitämällä sormeasi pohjassa muutaman sekunnin ajan[] ja vetämällä.\n\n[scarlet]TEE SE.
-
launcheditems = [accent]Laukaistut tavarat
+launchinfo = [unlaunched][[LAUNCH] your core to obtain the items indicated in blue.
map.delete = Oletko varma että haluat poistaa kartan "[accent]{0}[]"?
level.highscore = Ennätys: [accent]{0}
level.select = Tason valinta
@@ -40,17 +74,59 @@ database = Ytimen tietokanta
savegame = Tallenna peli
loadgame = Lataa peli
joingame = Liity peliin
-addplayers = Lisää/Poista pelaajia
customgame = Mukautettu peli
newgame = Uusi peli
none =
minimap = Pienoiskartta
+position = Position
close = Sulje
website = Verkkosivu
quit = Poistu
+save.quit = Save & Quit
maps = Kartat
+maps.browse = Browse Maps
continue = Jatka
maps.none = [lightgray]Karttoja ei löytynyt!
+invalid = Invalid
+pickcolor = Pick Color
+preparingconfig = Preparing Config
+preparingcontent = Preparing Content
+uploadingcontent = Uploading Content
+uploadingpreviewfile = Uploading Preview File
+committingchanges = Comitting Changes
+done = Done
+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.requiresversion = [scarlet]Requires min game version: [accent]{0}
+mod.missingdependencies = [scarlet]Missing dependencies: {0}
+mod.erroredcontent = [scarlet]Content Errors
+mod.errors = Errors have occurred loading content.
+mod.noerrorplay = [scarlet]You have mods with errors.[] Either disable the affected mods or fix the errors before playing.
+mod.nowdisabled = [scarlet]Mod '{0}' is missing dependencies:[accent] {1}\n[lightgray]These mods need to be downloaded first.\nThis mod will be automatically disabled.
+mod.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.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}
+mod.preview.missing = Before publishing this mod in the workshop, you must add an image preview.\nPlace an image named[accent] preview.png[] into the mod's folder and try again.
+mod.folder.missing = Only mods in folder form can be published on the workshop.\nTo convert any mod into a folder, simply unzip its file into a folder and delete the old zip, then restart your game or reload your mods.
+mod.scripts.unsupported = Your device does not support mod scripts. Some mods will not function correctly.
+
about.button = Tietoa
name = Nimi:
noname = Valitse ensin[accent] pelaajanimi[].
@@ -65,25 +141,32 @@ players = {0} pelaajaa paikalla
players.single = {0} pelaaja paikalla
server.closing = [accent]Suljetaan palvelinta...
server.kicked.kick = Sinut on potkittu palvelimelta!
+server.kicked.whitelist = You are not whitelisted here.
server.kicked.serverClose = Palvelin suljettu.
+server.kicked.vote = You have been vote-kicked. Goodbye.
server.kicked.clientOutdated = Pelisi on vanhentunut! Päivitä se!
server.kicked.serverOutdated = Outdated server! Ask the host to update!
server.kicked.banned = Sinulla on portikielto tälle palvelimelle.
+server.kicked.typeMismatch = This server is not compatible with your build type.
+server.kicked.playerLimit = This server is full. Wait for an empty slot.
server.kicked.recentKick = Sinut on potkittu äskettäin.\nOdota ennen kuin yhdistät uudestaan.
server.kicked.nameInUse = Joku tuon niminen\non jo tällä palvelimella.
server.kicked.nameEmpty = Valitsemasi nimi on virheellinen.
server.kicked.idInUse = Olet jo tällä palvelimella! Kahdella käyttäjällä yhdistäminen ei ole sallittua.
server.kicked.customClient = Tämä palvelin ei tue muokattuja versioita. Lataa virallinen versio.
server.kicked.gameover = Peli ohi!
+server.kicked.serverRestarting = The server is restarting.
server.versions = Versiosi:[accent] {0}[]\nPalvelimen versio:[accent] {1}[]
host.info = The [accent]host[] button hosts a server on port [scarlet]6567[]. \nAnybody on the same [lightgray]wifi or local network[] should be able to see your server in their server list.\n\nIf you want people to be able to connect from anywhere by IP, [accent]port forwarding[] is required.\n\n[lightgray]Note: If someone is experiencing trouble connecting to your LAN game, make sure you have allowed Mindustry access to your local network in your firewall settings. Note that public networks sometimes do not allow server discovery.
join.info = Here, you can enter a [accent]server IP[] to connect to, or discover [accent]local network[] servers to connect to.\nBoth LAN and WAN multiplayer is supported.\n\n[lightgray]Note: There is no automatic global server list; if you want to connect to someone by IP, you would need to ask the host for their IP.
hostserver = Host Multiplayer Game
+invitefriends = Invite Friends
hostserver.mobile = Host\nGame
host = Host
hosting = [accent]Avataan palvelinta...
hosts.refresh = Päivitä
hosts.discovering = Discovering LAN games
+hosts.discovering.any = Discovering games
server.refreshing = Päivitetään palvelimen tietoja
hosts.none = [lightgray]No local games found!
host.invalid = [scarlet]Can't connect to host.
@@ -107,20 +190,24 @@ server.version = [gray]v{0} {1}
server.custombuild = [yellow]Custom Build
confirmban = Are you sure you want to ban this player?
confirmkick = Are you sure you want to kick this player?
+confirmvotekick = Are you sure you want to vote-kick this player?
confirmunban = Are you sure you want to unban this player?
confirmadmin = Are you sure you want to make this player an admin?
confirmunadmin = Are you sure you want to remove admin status from this player?
joingame.title = Liity peliin
joingame.ip = Osoite:
disconnect = Disconnected.
+disconnect.error = Connection error.
+disconnect.closed = Connection closed.
+disconnect.timeout = Timed out.
disconnect.data = Failed to load world data!
+cantconnect = Unable to join game ([accent]{0}[]).
connecting = [accent]Connecting...
connecting.data = [accent]Loading world data...
server.port = Portti:
server.addressinuse = Address already in use!
server.invalidport = Invalid port number!
server.error = [crimson]Error hosting server: [accent]{0}
-save.old = This save is for an older version of the game, and can no longer be used.\n\n[lightgray]Save backwards compatibility will be implemented in the full 4.0 release.
save.new = New Save
save.overwrite = Are you sure you want to overwrite\nthis save slot?
overwrite = Overwrite
@@ -139,6 +226,7 @@ save.rename = Nimeä uudelleen
save.rename.text = Uusi nimi:
selectslot = Valitse tallennus.
slot = [accent]Paikka {0}
+editmessage = Edit Message
save.corrupted = [accent]Tallennustiedosto korruptoitunut tai viallinen!\nJos olet päivittänyt juuri pelisi, tämä on todennäköisesti muutos tallennusmuodossa [scarlet]eikä[] virhe.
empty =
on = Päällä
@@ -146,12 +234,14 @@ off = Pois
save.autosave = Automaattitallennus: {0}
save.map = Kartta: {0}
save.wave = Aalto {0}
-save.difficulty = Vaikeustaso: {0}
+save.mode = Gamemode: {0}
save.date = Viimeksi tallennettu: {0}
save.playtime = Peliaika: {0}
warning = Varoitus.
confirm = Vahvista
delete = Poista
+view.workshop = View In Workshop
+workshop.listing = Edit Workshop Listing
ok = OK
open = Avaa
customize = Muokkaa sääntöjä
@@ -159,12 +249,22 @@ cancel = Peruuta
openlink = Avaa linkki
copylink = Kopioi linkki
back = Takaisin
+data.export = Export Data
+data.import = Import Data
+data.exported = Data exported.
+data.invalid = This isn't valid game data.
+data.import.confirm = Importing external data will overwrite[scarlet] all[] your current game data.\n[accent]This cannot be undone![]\n\nOnce the data is imported, your game will exit immediately.
classic.export = Export Classic Data
classic.export.text = [accent]Mindustry[] has just had a major update.\nClassic (v3.5 build 40) save or map data has been detected. Would you like to export these saves to your phone's home folder, for use in the Mindustry Classic app?
quit.confirm = Are you sure you want to quit?
quit.confirm.tutorial = Are you sure you know what you're doing?\nThe tutorial can be re-taken in[accent] Settings->Game->Re-Take Tutorial.[]
loading = [accent]Ladataan...
+reloading = [accent]Reloading Mods...
saving = [accent]Tallennetaan...
+cancelbuilding = [accent][[{0}][] to clear plan
+selectschematic = [accent][[{0}][] to select+copy
+pausebuilding = [accent][[{0}][] to pause building
+resumebuilding = [scarlet][[{0}][] to resume building
wave = [accent]Aalto {0}
wave.waiting = [lightgray]Wave in {0}
wave.waveInProgress = [lightgray]Wave in progress
@@ -183,6 +283,19 @@ map.nospawn = Tässä kartassa ei ole ytimiä joihin syntyä! Lisää[accent] or
map.nospawn.pvp = This map does not have any enemy cores for player to spawn into! Add[SCARLET] non-orange[] cores to this map in the editor.
map.nospawn.attack = This map does not have any enemy cores for player to attack! Add[SCARLET] red[] cores to this map in the editor.
map.invalid = Error loading map: corrupted or invalid map file.
+workshop.update = Update Item
+workshop.error = Error fetching workshop details: {0}
+map.publish.confirm = Are you sure you want to publish this map?\n\n[lightgray]Make sure you agree to the Workshop EULA first, or your maps will not show up!
+workshop.menu = Select what you would like to do with this item.
+workshop.info = Item Info
+changelog = Changelog (optional):
+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}
+
editor.brush = Brush
editor.openin = Avaa editorissa
editor.oregen = Ore Generation
@@ -190,11 +303,14 @@ editor.oregen.info = Ore Generation:
editor.mapinfo = Kartan tiedot
editor.author = Author:
editor.description = Kuvaus:
+editor.nodescription = A map must have a description of at least 4 characters before being published.
editor.waves = Aallot:
editor.rules = Säännöt:
editor.generation = Generation:
editor.ingame = Edit In-Game
+editor.publish.workshop = Publish On Workshop
editor.newmap = Uusi kartta
+workshop = Workshop
waves.title = Aallot
waves.remove = Remove
waves.never =
@@ -211,6 +327,7 @@ waves.invalid = Invalid waves in clipboard.
waves.copied = Aallot kopioitu.
waves.none = No enemies defined.\nNote that empty wave layouts will automatically be replaced with the default layout.
editor.default = [lightgray]
+details = Details...
edit = Muokkaa...
editor.name = Nimi:
editor.spawn = Spawn Unit
@@ -220,6 +337,7 @@ editor.errorload = Virhe ladattaessa tiedostoa:\n[accent]{0}
editor.errorsave = Virhe tallennettaessa tiedostoa:\n[accent]{0}
editor.errorimage = That's an image, not a map. Don't go around changing extensions expecting it to work.\n\nIf you want to import a legacy map, use the 'import legacy map' button in the editor.
editor.errorlegacy = This map is too old, and uses a legacy map format that is no longer supported.
+editor.errornot = This is not a map file.
editor.errorheader = This map file is either not valid or corrupt.
editor.errorname = Map has no name defined. Are you trying to load a save file?
editor.update = Päivitä
@@ -252,6 +370,7 @@ editor.resizemap = Resize Map
editor.mapname = Kartan nimi:
editor.overwrite = [accent]Warning!\nThis overwrites an existing map.
editor.overwrite.confirm = [scarlet]Warning![] A map with this name already exists. Are you sure you want to overwrite it?
+editor.exists = A map with this name already exists.
editor.selectmap = Select a map to load:
toolmode.replace = Replace
@@ -309,7 +428,6 @@ campaign = Campaign
load = Lataa
save = Tallenna
fps = FPS: {0}
-tps = TPS: {0}
ping = Ping: {0}ms
language.restart = Please restart your game for the language settings to take effect.
settings = Asetukset
@@ -317,13 +435,14 @@ tutorial = Perehdytys
tutorial.retake = Re-Take Tutorial
editor = Editor
mapeditor = Map Editor
-donate = Lahjoita
abandon = Hylkää
abandon.text = This zone and all its resources will be lost to the enemy.
locked = Lukittu
complete = [lightgray]Reach:
-zone.requirement = Wave {0} in zone {1}
+requirement.wave = Reach Wave {0} in {1}
+requirement.core = Destroy Enemy Core in {0}
+requirement.unlock = Unlock {0}
resume = Resume Zone:\n[lightgray]{0}
bestwave = [lightgray]Best Wave: {0}
launch = < LAUNCH >
@@ -334,10 +453,13 @@ launch.confirm = This will launch all resources in your core.\nYou will not be a
launch.skip.confirm = If you skip now, you will not be able to launch until later waves.
uncover = Uncover
configure = Configure Loadout
+bannedblocks = Banned Blocks
+addall = Add All
configure.locked = [lightgray]Unlock configuring loadout: Wave {0}.
+configure.invalid = Amount must be a number between 0 and {0}.
zone.unlocked = [lightgray]{0} unlocked.
zone.requirement.complete = Wave {0} reached:\n{1} zone requirements met.
-zone.config.complete = Wave {0} reached:\nLoadout config unlocked.
+zone.config.unlocked = Loadout unlocked:[lightgray]\n{0}
zone.resources = [lightgray]Resources Detected:
zone.objective = [lightgray]Objective: [accent]{0}
zone.objective.survival = Survive
@@ -387,8 +509,10 @@ zone.impact0078.description =
zone.crags.description =
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
@@ -396,15 +520,14 @@ settings.graphics = Graphics
settings.cleardata = Clear Game Data...
settings.clear.confirm = Are you sure you want to clear this data?\nWhat is done cannot be undone!
settings.clearall.confirm = [scarlet]WARNING![]\nThis will clear all data, including saves, maps, unlocks and keybinds.\nOnce you press 'ok' the game will wipe all data and automatically exit.
-settings.clearunlocks = Clear Unlocks
-settings.clearall = Clear All
paused = [accent]< Paused >
+clear = Clear
+banned = [scarlet]Banned
yes = Yes
no = No
info.title = Info
error.title = [crimson]An error has occured
error.crashtitle = An error has occured
-attackpvponly = [scarlet]Only available in Attack/PvP modes
blocks.input = Input
blocks.output = Output
blocks.booster = Booster
@@ -420,6 +543,7 @@ blocks.shootrange = Range
blocks.size = Size
blocks.liquidcapacity = Liquid Capacity
blocks.powerrange = Power Range
+blocks.powerconnections = Max Connections
blocks.poweruse = Power Use
blocks.powerdamage = Power/Damage
blocks.itemcapacity = Item Capacity
@@ -434,6 +558,7 @@ blocks.boosteffect = Boost Effect
blocks.maxunits = Max Active Units
blocks.health = Health
blocks.buildtime = Build Time
+blocks.buildcost = Build Cost
blocks.inaccuracy = Inaccuracy
blocks.shots = Shots
blocks.reload = Shots/Second
@@ -441,16 +566,21 @@ blocks.ammo = Ammo
bar.drilltierreq = Better Drill Required
bar.drillspeed = Drill Speed: {0}/s
+bar.pumpspeed = Pump Speed: {0}/s
bar.efficiency = Efficiency: {0}%
bar.powerbalance = Power: {0}/s
+bar.powerstored = Stored: {0}/{1}
bar.poweramount = Power: {0}
bar.poweroutput = Power Output: {0}
bar.items = Items: {0}
+bar.capacity = Capacity: {0}
bar.liquid = Liquid
bar.heat = Heat
bar.power = Power
bar.progress = Build Progress
bar.spawned = Units: {0}/{1}
+bar.input = Input
+bar.output = Output
bullet.damage = [stat]{0}[lightgray] damage
bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles
@@ -476,6 +606,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
@@ -485,13 +617,17 @@ category.shooting = Shooting
category.optional = Optional Enhancements
setting.landscape.name = Lock Landscape
setting.shadows.name = Shadows
+setting.blockreplace.name = Automatic Block Suggestions
setting.linear.name = Linear Filtering
+setting.hints.name = Hints
+setting.buildautopause.name = Auto-Pause Building
setting.animatedwater.name = Animated Water
setting.animatedshields.name = Animated Shields
setting.antialias.name = Antialias[lightgray] (requires restart)[]
setting.indicators.name = Enemy/Ally Indicators
setting.autotarget.name = Auto-Target
setting.keyboard.name = Mouse+Keyboard Controls
+setting.touchscreen.name = Touchscreen Controls
setting.fpscap.name = Max FPS
setting.fpscap.none = None
setting.fpscap.text = {0} FPS
@@ -505,24 +641,35 @@ setting.difficulty.insane = Insane
setting.difficulty.name = Difficulty:
setting.screenshake.name = Screen Shake
setting.effects.name = Display Effects
+setting.destroyedblocks.name = Display Destroyed Blocks
+setting.conveyorpathfinding.name = Conveyor Placement Pathfinding
+setting.coreselect.name = Allow Schematic Cores
setting.sensitivity.name = Controller Sensitivity
setting.saveinterval.name = Save Interval
setting.seconds = {0} Seconds
+setting.blockselecttimeout.name = Block Select Timeout
+setting.milliseconds = {0} milliseconds
setting.fullscreen.name = Fullscreen
setting.borderlesswindow.name = Borderless Window[lightgray] (may require restart)
setting.fps.name = Show FPS
+setting.blockselectkeys.name = Show Block Select Keys
setting.vsync.name = VSync
-setting.lasers.name = Show Power Lasers
setting.pixelate.name = Pixelate[lightgray] (disables animations)
setting.minimap.name = Show Minimap
+setting.position.name = Show Player Position
setting.musicvol.name = Music Volume
setting.ambientvol.name = Ambient Volume
setting.mutemusic.name = Mute Music
setting.sfxvol.name = SFX Volume
setting.mutesound.name = Mute Sound
setting.crashreport.name = Send Anonymous Crash Reports
+setting.savecreate.name = Auto-Create Saves
+setting.publichost.name = Public Game Visibility
setting.chatopacity.name = Chat Opacity
+setting.lasersopacity.name = Power Laser Opacity
setting.playerchat.name = Display In-Game Chat
+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.
uiscale.reset = UI scale has been changed.\nPress "OK" to confirm this scale.\n[scarlet]Reverting and exiting in[accent] {0}[] seconds...
uiscale.cancel = Cancel & Exit
setting.bloom.name = Bloom
@@ -532,15 +679,39 @@ category.general.name = General
category.view.name = View
category.multiplayer.name = Multiplayer
command.attack = Attack
+command.rally = Rally
command.retreat = Retreat
-command.patrol = Patrol
-keybind.gridMode.name = Block Select
-keybind.gridModeShift.name = Category Select
+placement.blockselectkeys = \n[lightgray]Key: [{0},
+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 Lasers
keybind.move_x.name = Move x
keybind.move_y.name = Move y
+keybind.mouse_move.name = Follow Mouse
+keybind.dash.name = Dash
+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.category_prev.name = Previous Category
+keybind.category_next.name = Next Category
+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 = Toggle Fullscreen
keybind.select.name = Select/Shoot
keybind.diagonal_placement.name = Diagonal Placement
keybind.pick.name = Pick Block
@@ -550,12 +721,13 @@ keybind.shoot.name = Shoot
keybind.zoom.name = Zoom
keybind.menu.name = Menu
keybind.pause.name = Pause
+keybind.pause_building.name = Pause/Resume Building
keybind.minimap.name = Minimap
-keybind.dash.name = Dash
keybind.chat.name = Chat
keybind.player_list.name = Player list
keybind.console.name = Console
keybind.rotate.name = Rotate
+keybind.rotateplaced.name = Rotate Existing (Hold)
keybind.toggle_menus.name = Toggle menus
keybind.chat_history_prev.name = Chat history prev
keybind.chat_history_next.name = Chat history next
@@ -567,6 +739,7 @@ mode.survival.name = Survival
mode.survival.description = The normal mode. Limited resources and automatic incoming waves.\n[gray]Requires enemy spawns in the map to play.
mode.sandbox.name = Sandbox
mode.sandbox.description = Infinite resources and no timer for waves.
+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
@@ -574,6 +747,7 @@ mode.attack.description = Destroy the enemy's base. No waves.\n[gray]Requires a
mode.custom = Custom Rules
rules.infiniteresources = Infinite Resources
+rules.reactorexplosions = Reactor Explosions
rules.wavetimer = Wave Timer
rules.waves = Waves
rules.attack = Attack Mode
@@ -581,6 +755,7 @@ rules.enemyCheat = Infinite AI (Red Team) Resources
rules.unitdrops = Unit Drops
rules.unitbuildspeedmultiplier = Unit Production Speed Multiplier
rules.unithealthmultiplier = Unit Health Multiplier
+rules.blockhealthmultiplier = Block Health Multiplier
rules.playerhealthmultiplier = Player Health Multiplier
rules.playerdamagemultiplier = Player Damage Multiplier
rules.unitdamagemultiplier = Unit Damage Multiplier
@@ -599,6 +774,9 @@ rules.title.resourcesbuilding = Resources & Building
rules.title.player = Players
rules.title.enemy = Enemies
rules.title.unit = Units
+rules.title.experimental = Experimental
+rules.lighting = Lighting
+rules.ambientlight = Ambient Light
content.item.name = Items
content.liquid.name = Liquids
@@ -646,6 +824,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}%
@@ -737,6 +916,8 @@ block.copper-wall.name = Copper Wall
block.copper-wall-large.name = Large Copper Wall
block.titanium-wall.name = Titanium Wall
block.titanium-wall-large.name = Large Titanium Wall
+block.plastanium-wall.name = Plastanium Wall
+block.plastanium-wall-large.name = Large Plastanium Wall
block.phase-wall.name = Phase Wall
block.phase-wall-large.name = Large Phase Wall
block.thorium-wall.name = Thorium Wall
@@ -750,10 +931,16 @@ block.hail.name = Hail
block.lancer.name = Lancer
block.conveyor.name = Conveyor
block.titanium-conveyor.name = Titanium Conveyor
+block.armored-conveyor.name = Armored Conveyor
+block.armored-conveyor.description = Moves items at the same speed as titanium conveyors, but possesses more armor. Does not accept inputs from the sides from anything but other conveyor belts.
block.junction.name = Junction
block.router.name = Router
block.distributor.name = Distributor
block.sorter.name = Sorter
+block.inverted-sorter.name = Inverted Sorter
+block.message.name = Message
+block.illuminator.name = Illuminator
+block.illuminator.description = A small, compact, configurable light source. Requires power to function.
block.overflow-gate.name = Overflow Gate
block.silicon-smelter.name = Silicon Smelter
block.phase-weaver.name = Phase Weaver
@@ -767,6 +954,7 @@ block.coal-centrifuge.name = Coal Centrifuge
block.power-node.name = Power Node
block.power-node-large.name = Large Power Node
block.surge-tower.name = Surge Tower
+block.diode.name = Battery Diode
block.battery.name = Battery
block.battery-large.name = Large Battery
block.combustion-generator.name = Combustion Generator
@@ -790,6 +978,7 @@ block.mechanical-pump.name = Mechanical Pump
block.item-source.name = Item Source
block.item-void.name = Item Void
block.liquid-source.name = Liquid Source
+block.liquid-void.name = Liquid Void
block.power-void.name = Power Void
block.power-source.name = Power Infinite
block.unloader.name = Unloader
@@ -806,6 +995,7 @@ block.blast-mixer.name = Blast Mixer
block.solar-panel.name = Solar Panel
block.solar-panel-large.name = Large Solar Panel
block.oil-extractor.name = Oil Extractor
+block.command-center.name = Command Center
block.draug-factory.name = Draug Miner Drone Factory
block.spirit-factory.name = Spirit Repair Drone Factory
block.phantom-factory.name = Phantom Builder Drone Factory
@@ -818,6 +1008,7 @@ block.fortress-factory.name = Fortress Mech Factory
block.revenant-factory.name = Revenant Fighter Factory
block.repair-point.name = Repair Point
block.pulse-conduit.name = Pulse Conduit
+block.plated-conduit.name = Plated Conduit
block.phase-conduit.name = Phase Conduit
block.liquid-router.name = Liquid Router
block.liquid-tank.name = Liquid Tank
@@ -870,6 +1061,7 @@ unit.lich.name = Lich
unit.reaper.name = Reaper
tutorial.next = [lightgray]
tutorial.intro = You have entered the[scarlet] Mindustry Tutorial.[]\nBegin by[accent] mining copper[]. Tap a copper ore vein near your core to do this.\n\n[accent]{0}/{1} copper
+tutorial.intro.mobile = You have entered the[scarlet] Mindustry Tutorial.[]\nSwipe the screen to move.\n[accent]Pinch with 2 fingers[] to zoom in and out.\nBegin by[accent] mining copper[]. Move close to it, then tap a copper ore vein near your core to do this.\n\n[accent]{0}/{1} copper
tutorial.drill = Mining manually is inefficient.\n[accent]Drills []can mine automatically.\nClick the drill tab in the bottom right.\nSelect the[accent] mechanical drill[]. Place it on a copper vein by clicking.\n[accent]Right-click[] to stop building.
tutorial.drill.mobile = Mining manually is inefficient.\n[accent]Drills []can mine automatically.\nTap the drill tab in the bottom right.\nSelect the[accent] mechanical drill[].\nPlace it on a copper vein by tapping, then press the[accent] checkmark[] below to confirm your selection.\nPress the[accent] X button[] to cancel placement.
tutorial.blockinfo = Each block has different stats. Each drill can only mine certain ores.\nTo check a block's info and stats,[accent] tap the "?" button while selecting it in the build menu.[]\n\n[accent]Access the Mechanical Drill's stats now.[]
@@ -889,7 +1081,6 @@ tutorial.waves = The[lightgray] enemy[] approaches.\n\nDefend the core for 2 wav
tutorial.waves.mobile = The[lightgray] enemy[] approaches.\n\nDefend the core for 2 waves. Your ship will automatically fire at enemies.\nBuild more turrets and drills. Mine more copper.
tutorial.launch = Once you reach a specific wave, you are able to[accent] launch the core[], leaving your defenses behind and[accent] obtaining all the resources in your core.[]\nThese resources can then be used to research new technology.\n\n[accent]Press the launch button.
-
item.copper.description = The most basic structural material. Used extensively in all types of blocks.
item.lead.description = A basic starter material. Used extensively in electronics and liquid transportation blocks.
item.metaglass.description = A super-tough glass compound. Extensively used for liquid distribution and storage.
@@ -929,6 +1120,7 @@ unit.eruptor.description = A heavy mech designed to take down structures. Fires
unit.wraith.description = A fast, hit-and-run interceptor unit. Targets power generators.
unit.ghoul.description = A heavy carpet bomber. Rips through enemy structures, targeting critical infrastructure.
unit.revenant.description = A heavy, hovering missile array.
+block.message.description = Stores a message. Used for communication between allies.
block.graphite-press.description = Compresses chunks of coal into pure sheets of graphite.
block.multi-press.description = An upgraded version of the graphite press. Employs water and power to process coal quickly and efficiently.
block.silicon-smelter.description = Reduces sand with pure coal. Produces silicon.
@@ -950,10 +1142,13 @@ block.power-source.description = Infinitely outputs power. Sandbox only.
block.item-source.description = Infinitely outputs items. Sandbox only.
block.item-void.description = Destroys any items. Sandbox only.
block.liquid-source.description = Infinitely outputs liquids. Sandbox only.
+block.liquid-void.description = Removes any liquids. Sandbox only.
block.copper-wall.description = A cheap defensive block.\nUseful for protecting the core and turrets in the first few waves.
block.copper-wall-large.description = A cheap defensive block.\nUseful for protecting the core and turrets in the first few waves.\nSpans multiple tiles.
block.titanium-wall.description = A moderately strong defensive block.\nProvides moderate protection from enemies.
block.titanium-wall-large.description = A moderately strong defensive block.\nProvides moderate protection from enemies.\nSpans multiple tiles.
+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.thorium-wall.description = A strong defensive block.\nDecent protection from enemies.
block.thorium-wall-large.description = A strong defensive block.\nDecent protection from enemies.\nSpans multiple tiles.
block.phase-wall.description = A wall coated with special phase-based reflective compound. Deflects most bullets upon impact.
@@ -973,6 +1168,7 @@ block.junction.description = Acts as a bridge for two crossing conveyor belts. U
block.bridge-conveyor.description = Advanced item transport block. Allows transporting items over up to 3 tiles of any terrain or building.
block.phase-conveyor.description = Advanced item transport block. Uses power to teleport items to a connected phase conveyor over several tiles.
block.sorter.description = Sorts items. If an item matches the selection, it is allowed to pass. Otherwise, the item is outputted to the left and right.
+block.inverted-sorter.description = Processes items like a standard sorter, but outputs selected items to the sides instead.
block.router.description = Accepts items, then outputs them to up to 3 other directions equally. Useful for splitting the materials from one source to multiple targets.\n\n[scarlet]Never use next to production inputs, as they will get clogged by output.[]
block.distributor.description = An advanced router. Splits items to up to 7 other directions equally.
block.overflow-gate.description = A combination splitter and router. Only outputs to the left and right if the front path is blocked.
@@ -982,6 +1178,7 @@ block.rotary-pump.description = An advanced pump. Pumps more liquid, but require
block.thermal-pump.description = The ultimate pump.
block.conduit.description = Basic liquid transport block. Moves liquids forward. Used in conjunction with pumps and other conduits.
block.pulse-conduit.description = An advanced liquid transport block. Transports liquids faster and stores more than standard conduits.
+block.plated-conduit.description = Moves liquids at the same rate as pulse conduits, but possesses more armor. Does not accept fluids from the sides by anything other than conduits.\nLeaks less.
block.liquid-router.description = Accepts liquids from one direction and outputs them to up to 3 other directions equally. Can also store a certain amount of liquid. Useful for splitting the liquids from one source to multiple targets.
block.liquid-tank.description = Stores a large amount of liquids. Use for creating buffers in situations with non-constant demand of materials or as a safeguard for cooling vital blocks.
block.liquid-junction.description = Acts as a bridge for two crossing conduits. Useful in situations with two different conduits carrying different liquids to different locations.
@@ -990,6 +1187,7 @@ block.phase-conduit.description = Advanced liquid transport block. Uses power to
block.power-node.description = Transmits power to connected nodes. The node will receive power from or supply power to any adjacent blocks.
block.power-node-large.description = An advanced power node with greater range and more connections.
block.surge-tower.description = An extremely long-range power node with fewer available connections.
+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 = Stores power as a buffer in times of surplus energy. Outputs power in times of deficit.
block.battery-large.description = Stores much more power than a regular battery.
block.combustion-generator.description = Generates power by burning flammable materials, such as coal.
@@ -1030,6 +1228,7 @@ block.ripple.description = An extremely powerful artillery turret. Shoots cluste
block.cyclone.description = A large anti-air and anti-ground turret. Fires explosive clumps of flak at nearby units.
block.spectre.description = A massive dual-barreled cannon. Shoots large armor-piercing bullets at air and ground targets.
block.meltdown.description = A massive laser cannon. Charges and fires a persistent laser beam at nearby enemies. Requires coolant to operate.
+block.command-center.description = Issues movement commands to allied units across the map.\nCauses units to rally, attack an enemy core or retreat to the core/factory. When no enemy core is present, units will default to patrolling under the attack command.
block.draug-factory.description = Produces Draug mining drones.
block.spirit-factory.description = Produces Spirit structural repair drones.
block.phantom-factory.description = Produces advanced construction drones.
@@ -1047,4 +1246,4 @@ block.tau-mech-pad.description = Provides transformation into an advanced suppor
block.omega-mech-pad.description = Provides transformation into a heavily-armored missile mech.\nUse by tapping while standing on it.
block.javelin-ship-pad.description = Provides transformation into a quick, lightly-armored interceptor.\nUse by tapping while standing on it.
block.trident-ship-pad.description = Provides transformation into a heavy support bomber.\nUse by tapping while standing on it.
-block.glaive-ship-pad.description = Provides transformation into a large, well-armored gunship.\nUse by tapping while standing on it.
\ No newline at end of file
+block.glaive-ship-pad.description = Provides transformation into a large, well-armored gunship.\nUse by tapping while standing on it.
diff --git a/core/assets/bundles/bundle_fr.properties b/core/assets/bundles/bundle_fr.properties
index c19a342364..7ed9a40cf2 100644
--- a/core/assets/bundles/bundle_fr.properties
+++ b/core/assets/bundles/bundle_fr.properties
@@ -12,6 +12,7 @@ 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
+link.feathub.description = Suggérer de nouvelles fonctionnalités
linkfail = Erreur lors de l'ouverture du lien !\nL'URL a été copiée dans votre presse papier.
screenshot = Capture d'écran sauvegardée à {0}
screenshot.invalid = La carte est trop large, il n'y a potentiellement pas assez de mémoire pour la capture d'écran.
@@ -26,6 +27,14 @@ load.image = Images
load.content = Contenu
load.system = Système
load.mod = Mods
+load.scripts = Scripts
+
+be.update = Une nouvelle version en developement est disponible:
+be.update.confirm = Téléchargez-la et redémarrez maintenant ?
+be.updating = Mise à jour...
+be.ignore = Ignorer
+be.noupdates = Aucune mise à jour trouvée.
+be.check = Vérifiez les mises à jour
schematic = Schéma
schematic.add = Sauvegarder le schéma...
@@ -94,24 +103,29 @@ mods = Mods
mods.none = [LIGHT_GRAY]Aucun mod trouvé!
mods.guide = Guide de Modding
mods.report = Signaler un Bug
-mods.openfolder = Open Mod Folder
+mods.openfolder = Ouvrir le dossier des mods
mod.enabled = [lightgray]Activé
mod.disabled = [scarlet]Désactivé
mod.disable = Désactiver
-mod.delete.error = Unable to delete mod. File may be in use.
+mod.delete.error = Impossible de supprimer le mod. Le fichier est probablement en cours d'utilisation.
mod.requiresversion = [scarlet]Version du jeu requise : [accent]{0}
mod.missingdependencies = [scarlet]Dépendances manquantes: {0}
+mod.erroredcontent = [scarlet]Erreurs de contenu
+mod.errors = Des erreurs se sont produites lors du chargement du contenu.
+mod.noerrorplay = [scarlet]Vous avez des mods avec erreurs.[] Désactivez les mods concernés ou corrigez les erreurs avant de jouer.
mod.nowdisabled = [scarlet]Le mod '{0}' a des dépendances manquantes:[accent] {1}\n[lightgray]Ces mods doivent d'abord être téléchargés.\nCe mod sera automatiquement désactivé.
mod.enable = Activer
mod.requiresrestart = Le jeu va maintenant s'arrêter pour appliquer les modifications du mod.
mod.reloadrequired = [scarlet]Rechargement requis
mod.import = Importer un mod
mod.import.github = Importer un mod GitHub
+mod.item.remove = Cet objet fait partie du mod[accent] '{0}'[]. Pour le supprimer, désinstallez le mod en question.
mod.remove.confirm = Ce mod sera supprimé.
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.
+mod.scripts.unsupported = Votre appareil ne prend pas en charge les scripts de mod. Certains mods ne fonctionneront pas correctement.
about.button = À propos
name = Nom:
@@ -141,6 +155,7 @@ server.kicked.nameEmpty = Votre nom est invalide.
server.kicked.idInUse = Vous êtes déjà sur ce serveur! Se connecter avec deux comptes n'est pas permis.
server.kicked.customClient = Ce serveur ne supporte pas les versions personnalisées (Custom builds). Téléchargez une version officielle.
server.kicked.gameover = Game over!
+server.kicked.serverRestarting = Le serveur est en train de redémarrer.
server.versions = Votre version:[accent] {0}[]\nVersion du serveur:[accent] {1}[]
host.info = Le bouton [accent]Héberger[] héberge un serveur sur le port [scarlet]6567[]. \nN'importe qui sur le même [lightgray]wifi ou réseau local []devrait voir votre serveur sur leur liste des serveurs.\n\nSi vous voulez que les gens puissent s'y connecter de partout à l'aide de votre IP, [accent]le transfert de port (port forwarding)[] est requis.\n\n[lightgray]Note: Si quelqu'un a des problèmes de connexion à votre partie LAN, vérifiez que vous avez autorisé l'accès à Mindustry sur votre réseau local dans les paramètres de votre pare-feu.
join.info = Ici vous pouvez entrez [accent]l'adresse IP d'un serveur []pour s'y connecter, ou découvrir un serveur en [accent]réseau local[].\nLe multijoueur en LAN ainsi qu'en WAN est supporté.\n\n[lightgray]Note: Il n'y a pas de liste de serveurs globaux automatiques; Si vous voulez vous connectez à quelqu'un par IP, il faudra d'abord demander à l'hébergeur leur IP.
@@ -628,6 +643,7 @@ setting.screenshake.name = Tremblement de l'écran
setting.effects.name = Afficher les effets
setting.destroyedblocks.name = Afficher les Blocs Détruits
setting.conveyorpathfinding.name = Recherche de Chemin pour le Placement de Convoyeurs
+setting.coreselect.name = Autoriser les schémas contenant des Noyaux
setting.sensitivity.name = Sensibilité de la manette
setting.saveinterval.name = Intervalle des sauvegardes auto
setting.seconds = {0} secondes
@@ -739,6 +755,7 @@ rules.enemyCheat = Ressources infinies pour l'IA
rules.unitdrops = Drops des unités
rules.unitbuildspeedmultiplier = Multiplicateur de Vitesse de Construction d'Unités
rules.unithealthmultiplier = Multiplicateur de Santé des Unités
+rules.blockhealthmultiplier = Multiplicateur de Santé de Bloc
rules.playerhealthmultiplier = Multiplicateur de Santé des Joueurs
rules.playerdamagemultiplier = Multiplicateur des Dégâts Joueurs
rules.unitdamagemultiplier = Multiplicateur des dégâts Unité
@@ -961,6 +978,7 @@ block.mechanical-pump.name = Pompe Mécanique
block.item-source.name = Source de Ressources
block.item-void.name = Destructeur de Ressources
block.liquid-source.name = Source de Liquide
+block.liquid-void.name = Vaporisateur de Liquide
block.power-void.name = Absorbeur Énergétique
block.power-source.name = Énergie Infinie
block.unloader.name = Déchargeur
@@ -1124,6 +1142,7 @@ block.power-source.description = Produit de l'énergie à l'infini. Bac à sable
block.item-source.description = Produit des objets à l'infini. Bac à sable uniquement .
block.item-void.description = Désintègre n'importe quel objet qui va à l'intérieur sans utiliser d'énergie. Bac à sable uniquement.
block.liquid-source.description = Source de liquide infinie . Bac à sable uniquement.
+block.liquid-void.description = Détruit n'importe quel liquide. Bac à sable uniquement.
block.copper-wall.description = Un bloc défensif à faible coût.\nUtile pour protéger la base et les tourelles dans les premières lors des premières vagues.
block.copper-wall-large.description = Un bloc défensif à faible coût.\nUtile pour protéger la base et les tourelles dans les premières lors des premières vagues.\n2 x 2.
block.titanium-wall.description = Un bloc défensif standard.\nProcure une protection modérée contre les ennemis.
diff --git a/core/assets/bundles/bundle_fr_BE.properties b/core/assets/bundles/bundle_fr_BE.properties
index 9510ce227d..0bf1cdb539 100644
--- a/core/assets/bundles/bundle_fr_BE.properties
+++ b/core/assets/bundles/bundle_fr_BE.properties
@@ -10,7 +10,9 @@ link.dev-builds.description = Versions instables de développement
link.trello.description = Trello officiel pour les fonctionnalités planifiées.
link.itch.io.description = Site itch.io avec les versions téléchargeables pour ordinateur.
link.google-play.description = Page Google Play du jeu
+link.f-droid.description = F-Droid catalogue listing
link.wiki.description = Wiki officiel de Mindustry
+link.feathub.description = Suggest new features
linkfail = L'ouverture du lien a échoué!\nL'URL a été copiée dans votre presse-papier.
screenshot = Capture d'écran enregistrée sur {0}
screenshot.invalid = Carte trop grande, potentiellement pas assez de mémoire pour la capture d'écran.
@@ -18,12 +20,22 @@ gameover = Le base a été détruite.
gameover.pvp = L'équipe[accent] {0}[] a gagnée !
highscore = [accent]Nouveau meilleur score !
copied = Copied.
+
load.sound = Son
load.map = Maps
load.image = Images
load.content = Contenu
load.system = Système
load.mod = Mods
+load.scripts = Scripts
+
+be.update = A new Bleeding Edge build is available:
+be.update.confirm = Download it and restart now?
+be.updating = Updating...
+be.ignore = Ignore
+be.noupdates = No updates found.
+be.check = Check for updates
+
schematic = Schematic
schematic.add = Save Schematic...
schematics = Schematics
@@ -40,6 +52,7 @@ schematic.saved = Schematic saved.
schematic.delete.confirm = This schematic will be utterly eradicated.
schematic.rename = Rename Schematic
schematic.info = {0}x{1}, {2} blocks
+
stat.wave = Vagues vaincues:[accent] {0}
stat.enemiesDestroyed = Ennemies détruits:[accent] {0}
stat.built = Bâtiments construits:[accent] {0}
@@ -47,6 +60,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][[LAUNCH] your core to obtain the items indicated in blue.
map.delete = Êtes-vous sûr de vouloir supprimer cette carte ?"[accent]{0}[]"?
@@ -74,6 +88,7 @@ maps.browse = Browse Maps
continue = Continue
maps.none = [LIGHT_GRAY]Aucune carte trouvée!
invalid = Invalid
+pickcolor = Pick Color
preparingconfig = Preparing Config
preparingcontent = Preparing Content
uploadingcontent = Uploading Content
@@ -81,6 +96,7 @@ uploadingpreviewfile = Uploading Preview File
committingchanges = Comitting Changes
done = Done
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
@@ -92,18 +108,25 @@ 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 min game version: [accent]{0}
mod.missingdependencies = [scarlet]Missing dependencies: {0}
+mod.erroredcontent = [scarlet]Content Errors
+mod.errors = Errors have occurred loading content.
+mod.noerrorplay = [scarlet]You have mods with errors.[] Either disable the affected mods or fix the errors before playing.
mod.nowdisabled = [scarlet]Mod '{0}' is missing dependencies:[accent] {1}\n[lightgray]These mods need to be downloaded first.\nThis mod will be automatically disabled.
mod.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.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}
mod.preview.missing = Before publishing this mod in the workshop, you must add an image preview.\nPlace an image named[accent] preview.png[] into the mod's folder and try again.
mod.folder.missing = Only mods in folder form can be published on the workshop.\nTo convert any mod into a folder, simply unzip its file into a folder and delete the old zip, then restart your game or reload your mods.
+mod.scripts.unsupported = Your device does not support mod scripts. Some mods will not function correctly.
+
about.button = À propos
name = Nom:
noname = Choisissez d'abord [accent]un pseudo[].
@@ -132,6 +155,7 @@ server.kicked.nameEmpty = Votre nom doit contenir au moins une lettre ou un chif
server.kicked.idInUse = Vous êtes déjà sur ce serveur ! Se connecter avec deux comptes n'est pas permis !
server.kicked.customClient = Ce serveur ne supporte pas les versions personnalisées (Custom builds). Télécharger une version officielle.
server.kicked.gameover = Vous avez perdu !
+server.kicked.serverRestarting = The server is restarting.
server.versions = Votre version:[accent] {0}[]\nVersion du serveur:[accent] {1}[]
host.info = Le bouton [accent]héberger[] héberge un serveur sur les ports [scarlet]6567[] et [scarlet]6568.[]\nN'importe qui sur le même [LIGHT_GRAY]réseau wifi ou local[] devrait pouvoir voir votre serveur dans sa liste de serveurs.\n\nSi vous voulez que les gens puissent se connecter de n'importe où grâce à l'IP, [accent]rediriger les ports[] est requis.\n\n[LIGHT_GRAY]Note:Si quelqu'un éprouve des difficultés à se connecter à votre partie LAN, assurez-vous que vous avez autorisé Mindustry à accéder à votre réseau local dans les paramètres de votre pare-feu.
join.info = Ici, vous pouvez entrer l' [accent]IP d'un serveur[] pour s'y connecter, ou découvrir les serveurs[accent]sur votre réseau local[] pour s'y connecter.\nLes parties multijoueur LAN et WAN sont toutes deux supportées.\n\n[LIGHT_GRAY]Note: Aucune liste globale des serveurs n'est génerée automatiquement: si vous voulez vous connecter à un serveur par IP, vous devrez demander l'IP à l'hébergeur.
@@ -271,6 +295,7 @@ 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}
+
editor.brush = Pinceau
editor.openin = Ouvrir dans l'éditeur
editor.oregen = Génération des minerais
@@ -347,6 +372,7 @@ editor.overwrite = [accent]Attention!\nCela écrasera une carte existante.
editor.overwrite.confirm = [scarlet]Attention ![] Une carte avec ce nom existe déjà. Êtes-vous sûr de vouloir la réécrire?
editor.exists = A map with this name already exists.
editor.selectmap = Sélectionnez une carte à charger:
+
toolmode.replace = Remplacer
toolmode.replace.description = Dessine uniquement sur des blocs pleins.
toolmode.replaceall = Remplacer tout
@@ -361,6 +387,7 @@ toolmode.fillteams = Remplir les équipes
toolmode.fillteams.description = Remplissez les équipes au lieu de blocs.
toolmode.drawteams = Tirage au sort des équipes
toolmode.drawteams.description = Dessinez des équipes au lieu de blocs.
+
filters.empty = [LIGHT_GRAY]Aucun filtre! Ajoutez-en un avec les boutons ci-dessous.
filter.distort = Déformation
filter.noise = Bruit
@@ -392,6 +419,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 +435,7 @@ tutorial = Tutoriel
tutorial.retake = Re-Take Tutorial
editor = Éditeur
mapeditor = Éditeur de carte
+
abandon = Abandonner
abandon.text = Cette zone et toutes ses ressources seront perdues.
locked = Verrouillé
@@ -437,6 +466,7 @@ zone.objective.survival = Survive
zone.objective.attack = Détruire la base ennemi
add = Ajouter...
boss.health = Vie du BOSS
+
connectfail = [crimson]Échec de la connexion au serveur: [accent]{0}
error.unreachable = Serveur inaccessible.
error.invalidaddress = Adresse invalide.
@@ -447,6 +477,7 @@ error.mapnotfound = Fichier de carte introuvable !
error.io = Network I/O error.
error.any = Erreur réseau inconnue.
error.bloom = Échec d'initialisation du flou lumineux.\nVotre appareil peut ne pas le supporter.
+
zone.groundZero.name = Première Bataille
zone.desertWastes.name = Déchets du désert
zone.craters.name = Les Cratères
@@ -461,6 +492,7 @@ zone.saltFlats.name = Salière
zone.impact0078.name = Impact 0078
zone.crags.name = Crags
zone.fungalPass.name = Fungal Pass
+
zone.groundZero.description = L'emplacement optimal pour recommencer. Faible menace ennemie. Peu de ressources.\nRassemblez autant de plomb et de cuivre que possible.\nAllons-y
zone.frozenForest.description = Même ici, plus près des montagnes, les spores se sont propagées. Les températures glaciales ne peuvent pas les contenir pour toujours.\n\nCommencez l'aventure au pouvoir. Construire des générateurs de combustion. Apprenez à utiliser les réparations.
zone.desertWastes.description = Ces déchets sont vastes, imprévisibles, et sillonné de structures du secteur désaffectés.\nLe charbon est présent dans la région. Brulez-le pour obtenir de l'énergie ou synthétisez du graphite.\n\n[lightgray]Ce lieu d'atterrissage ne peut être garanti.
@@ -475,10 +507,12 @@ zone.nuclearComplex.description = Une ancienne installation de production et de
zone.fungalPass.description = A transition area between high mountains and lower, spore-ridden lands. A small enemy reconnaissance base is located here.\nDestroy it.\nUse Dagger and Crawler units. Take out the two cores.
zone.impact0078.description =
zone.crags.description =
+
settings.language = Langage
settings.data = Game Data
settings.reset = Valeur par défaut.
settings.rebind = Réatttribuer
+settings.resetKey = Reset
settings.controls = Contrôles
settings.game = Jeu
settings.sound = Son
@@ -529,6 +563,7 @@ blocks.inaccuracy = Précision
blocks.shots = Tirs
blocks.reload = Tirs/Seconde
blocks.ammo = Munition
+
bar.drilltierreq = Better Drill Required
bar.drillspeed = Vitesse de forage: {0}/s
bar.pumpspeed = Pump Speed: {0}/s
@@ -544,6 +579,9 @@ bar.heat = Chaleur
bar.power = Énergie
bar.progress = Progression de la construction
bar.spawned = Unités: {0}/{1}
+bar.input = Input
+bar.output = Output
+
bullet.damage = [stat]{0}[lightgray] dégats
bullet.splashdamage = [stat]{0}[lightgray] dgt zone ~[stat] {1}[lightgray] tuiles
bullet.incendiary = [stat]incendiaire
@@ -555,6 +593,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 rechargement
+
unit.blocks = Blocs
unit.powersecond = Énergie/seconde
unit.liquidsecond = Liquides/seconde
@@ -567,6 +606,8 @@ unit.persecond = /sec
unit.timesspeed = x vitesse
unit.percent = %
unit.items = Objets
+unit.thousands = k
+unit.millions = mil
category.general = Général
category.power = Énergie
category.liquids = Liquides
@@ -579,6 +620,7 @@ setting.shadows.name = Ombres
setting.blockreplace.name = Automatic Block Suggestions
setting.linear.name = Filtrage linéaire
setting.hints.name = Hints
+setting.buildautopause.name = Auto-Pause Building
setting.animatedwater.name = Eau animée
setting.animatedshields.name = Boucliers Animés
setting.antialias.name = Antialias[LIGHT_GRAY] (demande le redémarrage de l'appareil)[]
@@ -601,12 +643,16 @@ setting.screenshake.name = Tremblement d'écran
setting.effects.name = Montrer les effets
setting.destroyedblocks.name = Display Destroyed Blocks
setting.conveyorpathfinding.name = Conveyor Placement Pathfinding
+setting.coreselect.name = Allow Schematic Cores
setting.sensitivity.name = Contôle de la sensibilité
setting.saveinterval.name = Intervalle des sauvegardes auto
setting.seconds = {0} Secondes
+setting.blockselecttimeout.name = Block Select Timeout
+setting.milliseconds = {0} milliseconds
setting.fullscreen.name = Plein écran
setting.borderlesswindow.name = Fenêtre sans bordure[LIGHT_GRAY] (peut nécessiter un redémarrage)
setting.fps.name = Afficher FPS
+setting.blockselectkeys.name = Show Block Select Keys
setting.vsync.name = VSync
setting.pixelate.name = Pixélisé [LIGHT_GRAY](peut diminuer les performances)[]
setting.minimap.name = Montrer la minimap
@@ -635,16 +681,36 @@ category.multiplayer.name = Multijoueur
command.attack = Attaquer
command.rally = Rally
command.retreat = Retraite
+placement.blockselectkeys = \n[lightgray]Key: [{0},
keybind.clear_building.name = Clear Building
keybind.press = Appuyez sur une touche ...
keybind.press.axis = Appuyez sur un axe ou une touche...
keybind.screenshot.name = Map Screenshot
+keybind.toggle_power_lines.name = Toggle Power Lasers
keybind.move_x.name = Mouvement X
keybind.move_y.name = Mouvement Y
+keybind.mouse_move.name = Follow Mouse
+keybind.dash.name = Sprint
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.category_prev.name = Previous Category
+keybind.category_next.name = Next Category
+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 = Basculer en plein écran
keybind.select.name = Sélectionner/Tirer
keybind.diagonal_placement.name = Placement en diagonal
@@ -657,7 +723,6 @@ keybind.menu.name = Menu
keybind.pause.name = Pause
keybind.pause_building.name = Pause/Resume Building
keybind.minimap.name = Mini-Map
-keybind.dash.name = Sprint
keybind.chat.name = Tchat
keybind.player_list.name = Liste des joueurs
keybind.console.name = Console
@@ -680,7 +745,9 @@ mode.pvp.description = Lutter contre d'autres joueurs pour gagner !
mode.attack.name = Attaque
mode.attack.description = Pas de vagues, le but est de détruire la base ennemie.
mode.custom = Règles personnalisées
+
rules.infiniteresources = Ressources infinies
+rules.reactorexplosions = Reactor Explosions
rules.wavetimer = Temps de vague
rules.waves = Vague
rules.attack = Mode attaque
@@ -688,6 +755,7 @@ rules.enemyCheat = Ressources infinies pour l'IA
rules.unitdrops = Uniter Drops
rules.unitbuildspeedmultiplier = Multiplicateur de vitesse de création d'unités
rules.unithealthmultiplier = Multiplicateur de la santé des unités
+rules.blockhealthmultiplier = Block Health Multiplier
rules.playerhealthmultiplier = Multiplicateur de la santé des joueurs
rules.playerdamagemultiplier = Multiplicateur de dégât des joueurs
rules.unitdamagemultiplier = Multiplicateur de dégât des unités
@@ -706,6 +774,10 @@ rules.title.resourcesbuilding = Ressources & Bâtiment
rules.title.player = Joueurs
rules.title.enemy = Ennemis
rules.title.unit = Unités
+rules.title.experimental = Experimental
+rules.lighting = Lighting
+rules.ambientlight = Ambient Light
+
content.item.name = Objets
content.liquid.name = Liquides
content.unit.name = Unités
@@ -717,7 +789,7 @@ item.coal.name = Charbon
item.graphite.name = Graphite
item.titanium.name = Titane
item.thorium.name = Thorium
-item.silicon.name = Silicone
+item.silicon.name = Silicium
item.plastanium.name = Plastanium
item.phase-fabric.name = Phase Fabric
item.surge-alloy.name = Alliage superchargé
@@ -752,6 +824,7 @@ mech.trident-ship.name = Trident
mech.trident-ship.weapon = Largage de bombe
mech.glaive-ship.name = Glaive
mech.glaive-ship.weapon = Fusil automatique incendiaire
+item.corestorable = [lightgray]Storable in Core: {0}
item.explosiveness = [LIGHT_GRAY]Explosivité: {0}
item.flammability = [LIGHT_GRAY]Inflammabilité: {0}
item.radioactivity = [LIGHT_GRAY]Radioactivité: {0}
@@ -767,6 +840,7 @@ mech.buildspeed = [LIGHT_GRAY]Building Speed: {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 = Sable rocheux
block.grass.name = Herbe
block.salt.name = Sel
@@ -865,8 +939,10 @@ block.distributor.name = [accent]Distributeur[]
block.sorter.name = Trieur
block.inverted-sorter.name = Inverted Sorter
block.message.name = Message
+block.illuminator.name = Illuminator
+block.illuminator.description = A small, compact, configurable light source. Requires power to function.
block.overflow-gate.name = Barrière de Débordement
-block.silicon-smelter.name = Fonderie de silicone
+block.silicon-smelter.name = Fonderie de silicium
block.phase-weaver.name = Tisseur à phase
block.pulverizer.name = Pulvérisateur
block.cryofluidmixer.name = Refroidisseur
@@ -878,6 +954,7 @@ block.coal-centrifuge.name = Centrifugeuse à 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 = Battery Diode
block.battery.name = Batterie
block.battery-large.name = Batterie large
block.combustion-generator.name = Générateur à combustion
@@ -901,6 +978,7 @@ block.mechanical-pump.name = Pompe Méchanique
block.item-source.name = Source d'objets
block.item-void.name = Destructeur d'objets
block.liquid-source.name = Source de liquide
+block.liquid-void.name = Liquid Void
block.power-void.name = Absorbeur énergétique
block.power-source.name = Puissance infinie
block.unloader.name = Déchargeur
@@ -930,6 +1008,7 @@ block.fortress-factory.name = Usine de "Forteresse"
block.revenant-factory.name = Usine de "Revenants"
block.repair-point.name = Point de Réparation
block.pulse-conduit.name = Conduit à Impulsion
+block.plated-conduit.name = Plated Conduit
block.phase-conduit.name = Conduit à Phase
block.liquid-router.name = Routeur de Liquide
block.liquid-tank.name = Réservoir de Liquide
@@ -1001,6 +1080,7 @@ tutorial.deposit = Déposez les éléments dans des blocs en les faisant glisser
tutorial.waves = Les [LIGHT_GRAY]ennemies[] approchent.\n\nDéfendez votre base durant 2 vagues.\nConstruisez plus de tourelles et de foreuses. Minez plus de cuivre.
tutorial.waves.mobile = [lightgray]Les ennemies approchent[].\n\nDéfendez votre base durant 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 atteignez une vague spécifique, vous êtes en mesure de[accent] lancer votre base[], laissant vos défenses derrière vous et[accent] en obtenant toutes les ressources de votre base.[]\nCes ressources peuvent ensuite servir à la recherche de nouvelles technologies.\n\n[accent]Appuyez sur le bouton de lancement.
+
item.copper.description = Un matériau de construction utile. Utilisé intensivement dans tout les blocs.
item.lead.description = Un matériau de départ. Utilisé intensivement en électronique et pour le transport de blocs.
item.metaglass.description = Un composé de verre très résistant. Utilisation intensive pour la distribution et le stockage de liquides.
@@ -1062,6 +1142,7 @@ block.power-source.description = Débit infini d'énergie. Bac à sable seulemen
block.item-source.description = Sort infiniment les articles. Bac à sable seulement.
block.item-void.description = Détruit tous les objets qui y entrent sans utiliser d'énergie. Bac à sable seulement.
block.liquid-source.description = Débit infini de liquides. Bac à sable seulement.
+block.liquid-void.description = Removes any liquids. Sandbox only.
block.copper-wall.description = Un bloc défensif bon marché.\nUtile pour protéger le noyau et les tourelles lors des premières vagues.
block.copper-wall-large.description = Un bloc défensif bon marché.\nUtile pour protéger le noyau et les tourelles lors des premières vagues.\nS'étend sur plusieurs tuiles.
block.titanium-wall.description = Un bloc défensif modérément fort.\nFournit une protection modérée contre les ennemis.
@@ -1097,6 +1178,7 @@ block.rotary-pump.description = Une pompe avancée qui double la vitesse en util
block.thermal-pump.description = La pompe ultime. Trois fois plus rapide qu'une pompe mécanique et la seule pompe capable de récupérer de la lave.
block.conduit.description = Bloc de transport liquide de base. Fonctionne comme un convoyeur, mais avec des liquides. Utilisation optimale avec des extracteurs, des pompes ou d’autres conduits.
block.pulse-conduit.description = Bloc de transport de liquide avancé. Transporte les liquides plus rapidement et stocke plus que des conduits standard.
+block.plated-conduit.description = Moves liquids at the same rate as pulse conduits, but possesses more armor. Does not accept fluids from the sides by anything other than conduits.\nLeaks less.
block.liquid-router.description = Accepte les liquides d'une direction et les envoie dans 3 autres directions de manière égale. Peut également stocker une certaine quantité de liquide. Utile pour séparer les liquides d'une source à plusieurs cibles.
block.liquid-tank.description = Stocke une grande quantité de liquides. Utilisez-le pour créer des tampons en cas de demande non constante de matériaux ou comme protection pour le refroidissement des blocs vitaux.
block.liquid-junction.description = Agit comme un pont pour deux conduits de croisement. Utile dans les situations avec deux conduits différents transportant des liquides différents à des endroits différents.
@@ -1105,6 +1187,7 @@ block.phase-conduit.description = Bloc de transport de liquide avancé. Utilise
block.power-node.description = Transmet la puissance à des noeuds connectés. Il est possible de connecter jusqu'à quatre sources d'alimentation, puits ou nœuds.\nLe nœud recevra de l’alimentation ou fournira l’alimentation à tous les blocs adjacents.
block.power-node-large.description = Son rayon d'action est supérieur à celui du nœud d'alimentation et peut être connecté à six sources d'alimentation, puits ou nœuds au maximum.
block.surge-tower.description = Un nœud d'alimentation extrêmement longue portée avec moins de connexions disponibles.
+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 = Stocke l’énergie chaque fois qu’il ya abondance et en cas de pénurie, tant qu’il reste de la capacité.
block.battery-large.description = Stocke beaucoup plus d'énergie qu'une batterie ordinaire.
block.combustion-generator.description = Génère de l'énergie en brûlant du pétrole ou des matériaux inflammables.
diff --git a/core/assets/bundles/bundle_in_ID.properties b/core/assets/bundles/bundle_in_ID.properties
index 73fff980c3..aae63ed889 100644
--- a/core/assets/bundles/bundle_in_ID.properties
+++ b/core/assets/bundles/bundle_in_ID.properties
@@ -10,7 +10,9 @@ link.dev-builds.description = Bentuk pengembangan (kurang stabil)
link.trello.description = Papan Trello resmi untuk fitur terencana
link.itch.io.description = Halaman itch.io dengan PC download dan versi web
link.google-play.description = Google Play Store
+link.f-droid.description = F-Droid catalogue listing
link.wiki.description = Wiki Mindustry resmi
+link.feathub.description = Suggest new features
linkfail = Gagal membuka tautan!\nURL disalin ke papan ke papan klip.
screenshot = Tangkapan layar disimpan di {0}
screenshot.invalid = Peta terlalu besar, tidak cukup memori untuk menangkap layar.
@@ -18,12 +20,22 @@ gameover = Permainan Habis
gameover.pvp = Tim[accent] {0}[] menang!
highscore = [accent]Rekor Baru!
copied = Copied.
+
load.sound = Suara
load.map = Peta
load.image = Gambar
load.content = Konten
load.system = Sistem
load.mod = Mods
+load.scripts = Scripts
+
+be.update = A new Bleeding Edge build is available:
+be.update.confirm = Download it and restart now?
+be.updating = Updating...
+be.ignore = Ignore
+be.noupdates = No updates found.
+be.check = Check for updates
+
schematic = Schematic
schematic.add = Save Schematic...
schematics = Schematics
@@ -40,6 +52,7 @@ schematic.saved = Schematic saved.
schematic.delete.confirm = This schematic will be utterly eradicated.
schematic.rename = Rename Schematic
schematic.info = {0}x{1}, {2} blocks
+
stat.wave = Gelombang Terkalahkan:[accent] {0}
stat.enemiesDestroyed = Musuh Terhancurkan:[accent] {0}
stat.built = Jumlah Blok yang Dibangun:[accent] {0}
@@ -47,6 +60,7 @@ stat.destroyed = Jumlah Blok Dihancurkan Musuh:[accent] {0}
stat.deconstructed = Jumlah Blok Dihancurkan Pemain:[accent] {0}
stat.delivered = Sumber Daya yang Diluncurkan:
stat.rank = Nilai Akhir: [accent]{0}
+
launcheditems = [accent]Sumber Daya
launchinfo = [unlaunched][[LAUNCH] your core to obtain the items indicated in blue.
map.delete = Apakah Anda yakin ingin menghapus peta "[accent]{0}[]"?
@@ -74,6 +88,7 @@ maps.browse = Cari Peta
continue = Lanjutkan
maps.none = [LIGHT_GRAY]Peta tidak ditemukan!
invalid = Tidak valid
+pickcolor = Pick Color
preparingconfig = Menyiapkan Config
preparingcontent = Menyiapkan Content
uploadingcontent = Mengupload Content
@@ -81,6 +96,7 @@ uploadingpreviewfile = Mengupload File Tinjauan
committingchanges = Membuat Perubahan
done = Selesai
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
@@ -92,18 +108,25 @@ 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 min game version: [accent]{0}
mod.missingdependencies = [scarlet]Missing dependencies: {0}
+mod.erroredcontent = [scarlet]Content Errors
+mod.errors = Errors have occurred loading content.
+mod.noerrorplay = [scarlet]You have mods with errors.[] Either disable the affected mods or fix the errors before playing.
mod.nowdisabled = [scarlet]Mod '{0}' is missing dependencies:[accent] {1}\n[lightgray]These mods need to be downloaded first.\nThis mod will be automatically disabled.
mod.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.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}
mod.preview.missing = Before publishing this mod in the workshop, you must add an image preview.\nPlace an image named[accent] preview.png[] into the mod's folder and try again.
mod.folder.missing = Only mods in folder form can be published on the workshop.\nTo convert any mod into a folder, simply unzip its file into a folder and delete the old zip, then restart your game or reload your mods.
+mod.scripts.unsupported = Your device does not support mod scripts. Some mods will not function correctly.
+
about.button = Tentang
name = Nama:
noname = Pilih[accent] nama pemain[] dahulu.
@@ -132,6 +155,7 @@ server.kicked.nameEmpty = Nama yang dipilih tidak valid.
server.kicked.idInUse = Anda telah berada di server ini! Memasuki dengan dua akun tidak diizinkan.
server.kicked.customClient = Server ini tidak mendukung versi modifikasi. Download versi resmi.
server.kicked.gameover = Game over!
+server.kicked.serverRestarting = The server is restarting.
server.versions = Versi Anda:[accent] {0}[]\nVersi server:[accent] {1}[]
host.info = Tombol [accent]host[] akan membuat server sementara di port [scarlet]6567[]. \nSemua orang yang memiliki [LIGHT_GRAY]Wi-Fi atau jaringan lokal[] akan bisa melihat server anda di daftar server mereka.\n\nJika Anda ingin pemain dari mana saja memasuki servermu dengan IP, [accent]port forwarding[] dibutuhkan.\n\n[LIGHT_GRAY]Diingat: Jika seseorang mengalami masalah memasuki permainan LAN mu, pastikan Anda telah mengizinkan Mindustry akses ke jaringan lokalmu di pengaturan firewall.
join.info = Disini, Anda bisa memasuki [accent]server IP[], atau menemukan [accent]server lokal[] untuk bermain bersama.\nLAN dan WAN mendukung permainan bersama.\n\n[LIGHT_GRAY]Diingat: Tidak ada daftar server global; jika anda ingin bergabung dengan seseorang memakai IP, Anda perlu menanyakan host tentang IP mereka.
@@ -271,6 +295,7 @@ 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}
+
editor.brush = Kuas
editor.openin = Buka di Penyunting
editor.oregen = Generasi Sumber Daya
@@ -347,6 +372,7 @@ editor.overwrite = [accent]Peringatan!\nIni menindih peta yang telah ada.
editor.overwrite.confirm = [scarlet]Peringatan![] Peta dengan nama ini sudah ada. Yakin ingin menindihnya?
editor.exists = A map with this name already exists.
editor.selectmap = Pilih peta untuk dimuat:
+
toolmode.replace = Replace
toolmode.replace.description = Draws only on solid blocks.
toolmode.replaceall = Replace All
@@ -361,6 +387,7 @@ toolmode.fillteams = Fill Teams
toolmode.fillteams.description = Fill teams instead of blocks.
toolmode.drawteams = Draw Teams
toolmode.drawteams.description = Draw teams instead of blocks.
+
filters.empty = [LIGHT_GRAY]Tidak ada filter! Tambahkan dengan tombol dibawah.
filter.distort = Rusakkan
filter.noise = Kebisingan
@@ -392,6 +419,7 @@ filter.option.floor2 = Lantai Sekunder
filter.option.threshold2 = Ambang Sekunder
filter.option.radius = Radius
filter.option.percentile = Perseratus
+
width = Lebar:
height = Tinggi:
menu = Menu
@@ -407,6 +435,7 @@ tutorial = Tutorial
tutorial.retake = Re-Take Tutorial
editor = Penyunting
mapeditor = Penyunting Peta
+
abandon = Tinggalkan
abandon.text = Zona ini dan semua sumber daya didalamnya akan berada di tangan musuh.
locked = Dikunci
@@ -437,6 +466,7 @@ zone.objective.survival = Survive
zone.objective.attack = Destroy Enemy Core
add = Menambahkan...
boss.health = Darah Boss
+
connectfail = [crimson]Gagal menyambung ke server:\n\n[accent]{0}
error.unreachable = Server tak terjangkau.\nApakah alamatnya benar?
error.invalidaddress = Alamat tidak valid.
@@ -447,6 +477,7 @@ error.mapnotfound = File peta tidak ditemaukan!
error.io = Error jaringan I/O.
error.any = Jaringan error tidak diketahui.
error.bloom = Failed to initialize bloom.\nYour device may not support it.
+
zone.groundZero.name = Titik Nol
zone.desertWastes.name = Gurun Gersang
zone.craters.name = Kawah
@@ -461,6 +492,7 @@ zone.saltFlats.name = Salt Flats
zone.impact0078.name = Impact 0078
zone.crags.name = Crags
zone.fungalPass.name = Fungal Pass
+
zone.groundZero.description = The optimal location to begin once more. Low enemy threat. Few resources.\nGather as much lead and copper as possible.\nMove on.
zone.frozenForest.description = Even here, closer to mountains, the spores have spread. The fridgid temperatures cannot contain them forever.\n\nBegin the venture into power. Build combustion generators. Learn to use menders.
zone.desertWastes.description = These wastes are vast, unpredictable, and criss-crossed with derelict sector structures.\nCoal is present in the region. Burn it for power, or synthesize graphite.\n\n[lightgray]This landing location cannot be guaranteed.
@@ -475,10 +507,12 @@ zone.nuclearComplex.description = A former facility for the production and proce
zone.fungalPass.description = A transition area between high mountains and lower, spore-ridden lands. A small enemy reconnaissance base is located here.\nDestroy it.\nUse Dagger and Crawler units. Take out the two cores.
zone.impact0078.description =
zone.crags.description =
+
settings.language = Bahasa
settings.data = Game Data
settings.reset = Atur ulang ke Default (standar)
settings.rebind = Rebind
+settings.resetKey = Reset
settings.controls = Kontrol
settings.game = Permainan
settings.sound = Suara
@@ -529,6 +563,7 @@ blocks.inaccuracy = Jarak Melenceng
blocks.shots = Tembakan
blocks.reload = Tembakan/Detik
blocks.ammo = Amunisi
+
bar.drilltierreq = Better Drill Required
bar.drillspeed = Kecepatan Bor: {0}/s
bar.pumpspeed = Pump Speed: {0}/s
@@ -544,6 +579,9 @@ bar.heat = Panas
bar.power = Tenaga
bar.progress = Perkembangan Pembangunan
bar.spawned = Unit: {0}/{1}
+bar.input = Input
+bar.output = Output
+
bullet.damage = [stat]{0}[lightgray] kekuatan (dmg)
bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] kotak
bullet.incendiary = [stat]pembakar
@@ -555,6 +593,7 @@ bullet.freezing = [stat]membeku
bullet.tarred = [stat]tar
bullet.multiplier = [stat]{0}[lightgray]x multiplikasi amunisi
bullet.reload = [stat]{0}[lightgray]x rasio menembak
+
unit.blocks = blok
unit.powersecond = unit tenaga/detik
unit.liquidsecond = unit zat cair/detik
@@ -567,6 +606,8 @@ unit.persecond = /detik
unit.timesspeed = x kecepatan
unit.percent = %
unit.items = item
+unit.thousands = k
+unit.millions = mil
category.general = Umum
category.power = Tenaga
category.liquids = Zat Cair
@@ -579,6 +620,7 @@ setting.shadows.name = Bayangan
setting.blockreplace.name = Automatic Block Suggestions
setting.linear.name = Linier Filter
setting.hints.name = Hints
+setting.buildautopause.name = Auto-Pause Building
setting.animatedwater.name = Animasi Air
setting.animatedshields.name = Animasi Lindungan
setting.antialias.name = Antialiasi[LIGHT_GRAY] (membutuhkan restart)[]
@@ -601,12 +643,16 @@ setting.screenshake.name = Layar Getar
setting.effects.name = Munculkan Efek
setting.destroyedblocks.name = Display Destroyed Blocks
setting.conveyorpathfinding.name = Conveyor Placement Pathfinding
+setting.coreselect.name = Allow Schematic Cores
setting.sensitivity.name = Sensitivitas Kontroler
setting.saveinterval.name = Jarak Menyimpan
setting.seconds = {0} Detik
+setting.blockselecttimeout.name = Block Select Timeout
+setting.milliseconds = {0} milliseconds
setting.fullscreen.name = Layar Penuh
setting.borderlesswindow.name = Jendela tak Berbatas[LIGHT_GRAY] (bisa membutuhkan restart)
setting.fps.name = Tunjukkan FPS
+setting.blockselectkeys.name = Show Block Select Keys
setting.vsync.name = VSync
setting.pixelate.name = Mode Pixel[LIGHT_GRAY] (menonaktifkan animasi)
setting.minimap.name = Tunjukkan Peta kecil
@@ -635,16 +681,36 @@ category.multiplayer.name = Bermain Bersama
command.attack = Serang
command.rally = Rally
command.retreat = Mundur
+placement.blockselectkeys = \n[lightgray]Key: [{0},
keybind.clear_building.name = Clear Building
keybind.press = Tekan kunci...
keybind.press.axis = Tekan sumbu atau kunci...
keybind.screenshot.name = Tangkapan Layar Peta
+keybind.toggle_power_lines.name = Toggle Power Lasers
keybind.move_x.name = Pindah x
keybind.move_y.name = Pindah y
+keybind.mouse_move.name = Follow Mouse
+keybind.dash.name = Terbang
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.category_prev.name = Previous Category
+keybind.category_next.name = Next Category
+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 = Toggle Fullscreen
keybind.select.name = Pilih/Tembak
keybind.diagonal_placement.name = Penaruhan Diagonal
@@ -657,7 +723,6 @@ keybind.menu.name = Menu
keybind.pause.name = Jeda
keybind.pause_building.name = Pause/Resume Building
keybind.minimap.name = Peta Kecil
-keybind.dash.name = Terbang
keybind.chat.name = Chat
keybind.player_list.name = Daftar pemain
keybind.console.name = Console
@@ -680,7 +745,9 @@ mode.pvp.description = Melawan Pemain lain. Membutuhkan setidaknya 2 inti berbed
mode.attack.name = Penyerangan
mode.attack.description = Menghancurkan base musuh. Tidak ada gelombang. Membutuhkan inti merah di dalam peta untuk main.
mode.custom = Pengaturan Modifikasi
+
rules.infiniteresources = Sumber Daya Tak Terbatas
+rules.reactorexplosions = Reactor Explosions
rules.wavetimer = Pengaturan Waktu Gelombang
rules.waves = Gelombang
rules.attack = Attack Mode
@@ -688,6 +755,7 @@ rules.enemyCheat = Sumber Daya A.I Musuh (Tim Merah) Tak Terbatas
rules.unitdrops = Munculnya Unit
rules.unitbuildspeedmultiplier = Multiplikasi Kecepatan Munculnya Unit
rules.unithealthmultiplier = Multiplikasi Darah Unit
+rules.blockhealthmultiplier = Block Health Multiplier
rules.playerhealthmultiplier = Multiplikasi Darah Pemain
rules.playerdamagemultiplier = Multiplikasi Kekuatan Pemain
rules.unitdamagemultiplier = Multiplikasi Kekuatan Unit
@@ -706,6 +774,10 @@ rules.title.resourcesbuilding = Sumber Daya & Bangunan
rules.title.player = Pemain
rules.title.enemy = Musush
rules.title.unit = Unit
+rules.title.experimental = Experimental
+rules.lighting = Lighting
+rules.ambientlight = Ambient Light
+
content.item.name = Item
content.liquid.name = Zat Cair
content.unit.name = Unit
@@ -752,6 +824,7 @@ mech.trident-ship.name = Trident
mech.trident-ship.weapon = Lahan Bom
mech.glaive-ship.name = Glaive
mech.glaive-ship.weapon = Repeater Api
+item.corestorable = [lightgray]Storable in Core: {0}
item.explosiveness = [LIGHT_GRAY]Tingkat Keledakan: {0}%
item.flammability = [LIGHT_GRAY]Tingkat Kebakaran: {0}%
item.radioactivity = [LIGHT_GRAY]Tingkat Radioaktif: {0}%
@@ -767,6 +840,7 @@ mech.buildspeed = [LIGHT_GRAY]Kecepatan Membangun: {0}%
liquid.heatcapacity = [LIGHT_GRAY]Kapasitas Panas: {0}
liquid.viscosity = [LIGHT_GRAY]Kelekatan: {0}
liquid.temperature = [LIGHT_GRAY]Suhu: {0}
+
block.sand-boulder.name = Sand Boulder
block.grass.name = Rumput
block.salt.name = Garam
@@ -865,6 +939,8 @@ block.distributor.name = Distributor
block.sorter.name = Penyortir
block.inverted-sorter.name = Inverted Sorter
block.message.name = Pesan
+block.illuminator.name = Illuminator
+block.illuminator.description = A small, compact, configurable light source. Requires power to function.
block.overflow-gate.name = Gerbang Luap
block.silicon-smelter.name = Pelebur Silikon
block.phase-weaver.name = Pengrajut Phase
@@ -878,6 +954,7 @@ block.coal-centrifuge.name = Sentrifugal Batu Bara
block.power-node.name = Tiang Listrik
block.power-node-large.name = Tiang Listrik Besar
block.surge-tower.name = Tiang Surge
+block.diode.name = Battery Diode
block.battery.name = Baterai
block.battery-large.name = Baterai Besar
block.combustion-generator.name = Generator Pembakar
@@ -901,6 +978,7 @@ block.mechanical-pump.name = Pompa Mekanik
block.item-source.name = Sumber Item
block.item-void.name = Penghilang Item
block.liquid-source.name = Sumber Zat Cair
+block.liquid-void.name = Liquid Void
block.power-void.name = Penghilang Listrik
block.power-source.name = Listrik Takhingga
block.unloader.name = Pembongkar Muatan
@@ -930,6 +1008,7 @@ block.fortress-factory.name = Pabrik Robot Fortress
block.revenant-factory.name = Pabrik Penyerang Revenant
block.repair-point.name = Titik Pulih
block.pulse-conduit.name = Selang Denyut
+block.plated-conduit.name = Plated Conduit
block.phase-conduit.name = Selang Phase
block.liquid-router.name = Penyortir Zat Cair
block.liquid-tank.name = Tank Zat Cair
@@ -1001,6 +1080,7 @@ tutorial.deposit = Deposit items into blocks by dragging from your ship to the d
tutorial.waves = [LIGHT_GRAY] Musuh[] mendatang.\n\nLindungi intimu selama 2 gelombang. Bangun lebih banyak menara.
tutorial.waves.mobile = The[lightgray] enemy[] approaches.\n\nDefend the core for 2 waves. Your ship will automatically fire at enemies.\nBuild more turrets and drills. Mine more copper.
tutorial.launch = Once you reach a specific wave, you are able to[accent] launch the core[], leaving your defenses behind and[accent] obtaining all the resources in your core.[]\nThese resources can then be used to research new technology.\n\n[accent]Press the launch button.
+
item.copper.description = Bahan struktur yang berguna. Digunakan di semua tipe blok.
item.lead.description = Bahan dasar di awal permainan. Digunakan di elektronik dan blok transportasi zat cair.
item.metaglass.description = Kaca yang super-kuat. Digunakan untuk distribusi zar cair dan penyimpanan.
@@ -1062,6 +1142,7 @@ block.power-source.description = Menghasilkan tenaga tak terbatas. Sandbox ekskl
block.item-source.description = Mengeluarkan item tak terhingga. Sandbox eksklusif.
block.item-void.description = Menghancurkan item apa saja tanpa penggunaan tenaga. Sandbox eksklusif.
block.liquid-source.description = Mengeluarkan zat cair tak terhingga. Sandbox eksklusif.
+block.liquid-void.description = Removes any liquids. Sandbox only.
block.copper-wall.description = Blok pelindung murah.\nBerguna untuk melindungi inti dan menara di beberapa gelombang awal.
block.copper-wall-large.description = Blok pelindung murah.\nBerguna untuk melindungi inti dan menara di beberapa gelombang awal.\nSebesar 4 blok.
block.titanium-wall.description = A moderately strong defensive block.\nProvides moderate protection from enemies.
@@ -1097,6 +1178,7 @@ block.rotary-pump.description = Pompa canggih yang kecepatannya dua kali lipat j
block.thermal-pump.description = Pompa Tercanggih.
block.conduit.description = Blok Transportasi Zat Cair Umum. Bekerja Seperti Pengantar, tetapi untuk zat cair.
block.pulse-conduit.description = Blok Transportasi Zat Cair Canggih. Memindahkan dan menyimpan zat cair lebih cepat dan banyak daripada saluran biasa.
+block.plated-conduit.description = Moves liquids at the same rate as pulse conduits, but possesses more armor. Does not accept fluids from the sides by anything other than conduits.\nLeaks less.
block.liquid-router.description = Menerima zat cair dari satu arah dan mengeluarkannya ke 3 arah yang sama. Bisa juga menyimpan sejumlah zat cair. Berguna untuk memisahkan zat cair dari satu sumber ke target yang banyak.
block.liquid-tank.description = Menyimpan jumlah zat cair yang banyak. Gunakan sebagai penyangga ketika kebutuhan zat cair tidak konstan atau sebagai penjaga untuk mendinginkan blok yang vital.
block.liquid-junction.description = Berguna seperti jembatan untuk dua saluran yang bersimpangan. Berguna di situasi dimana dua saluran berbeda membawa zat cair berbeda ke lokasi yang berbeda.
@@ -1105,6 +1187,7 @@ block.phase-conduit.description = Blok Transportasi Zat Cair Canggih. Menggunaka
block.power-node.description = Membawa tenaga ke tiang tersambung. hingga empat sumber listrik, sambungan atau tiang lainnya yang bisa disambung. Tiang akan mendapatkan atau memberi tenaga ke/dari blok yang disambung.
block.power-node-large.description = Mempunyai radius lebih besar dari tiang listrik biasa dan bisa menyambung hingga enam to up to six sumber listrik, sambungan atau tiang lainnya.
block.surge-tower.description = An extremely long-range power node with fewer available connections.
+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 = Menyimpan tenaga jika ada kelimpahan dan memberikan tenaga jika ada kekurangan, asalkan ada kapasitas tersisa.
block.battery-large.description = Menyimpan lebih banyak tenaga daripada baterai biasa.
block.combustion-generator.description = Menghasilkan tenaga dengan membakar oli atau pembakar.
diff --git a/core/assets/bundles/bundle_it.properties b/core/assets/bundles/bundle_it.properties
index 75351ad9a8..5e9baad124 100644
--- a/core/assets/bundles/bundle_it.properties
+++ b/core/assets/bundles/bundle_it.properties
@@ -1,7 +1,7 @@
credits.text = Creato da [ROYAL]Anuken[] - [SKY]anukendev@gmail.com[]
credits = Crediti
contributors = Traduttori e Contributori
-discord = Entra nel server Discord di mindustry!
+discord = Entra nel server Discord di Mindustry!
link.discord.description = La chatroom ufficiale del server Discord di Mindustry
link.reddit.description = The Mindustry subreddit
link.github.description = Codice sorgente del gioco
@@ -12,50 +12,58 @@ link.itch.io.description = Pagina di itch.io con download per PC e versione web
link.google-play.description = Elenco di Google Play Store
link.f-droid.description = Catalogo F-Droid
link.wiki.description = Wiki ufficiale di Mindustry
-linkfail = Impossibile aprire il link! L'URL è stato copiato.
+link.feathub.description = Suggerisci nuove funzionalità
+linkfail = Impossibile aprire il link! L'URL è stato copiato negli appunti.
screenshot = Screenshot salvato a {0}
-screenshot.invalid = Mappa troppo grossa, probabilmente non c'è abbastanza memoria libera.
+screenshot.invalid = Mappa troppo pesante, probabilmente non c'è abbastanza spazio sul disco.
gameover = Il Nucleo è stato distrutto.
-gameover.pvp = La squadra [accent] {0}[] ha vinto!
-highscore = [YELLOW]Nuovo record!
-
+gameover.pvp = La squadra[accent] {0}[] ha vinto!
+highscore = [accent]Nuovo record!
copied = Copiato.
+
load.sound = Suoni
load.map = Mappe
load.image = Immagini
load.content = Contenuti
load.system = Sistema
load.mod = Mods
-load.scripts = Testi
+load.scripts = Scripts
+
+be.update = Una nuova build Bleeding Edge è disponibile:
+be.update.confirm = Vuoi scaricarla e riavviare il gioco adesso?
+be.updating = Aggiornamento in corso...
+be.ignore = Ignora
+be.noupdates = Nessun aggiornamento trovato.
+be.check = Verifica aggiornamenti
schematic = Schematica
schematic.add = Salva Schematica...
schematics = Schematiche
schematic.replace = Una schematica con questo nome esiste già. Sostituirla?
schematic.import = Importa schematica...
-schematic.exportfile = Esporta file
+schematic.exportfile = Esporta File
schematic.importfile = Importa File
-schematic.browseworkshop = Naviga sul Workshop
-schematic.copy = Copia negli appunti
-schematic.copy.import = Importa dagli appunti
-schematic.shareworkshop = Condividi sul Workshop
+schematic.browseworkshop = Naviga nel Workshop
+schematic.copy = Copia negli Appunti
+schematic.copy.import = Importa dagli Appunti
+schematic.shareworkshop = Condividi nel Workshop
schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Ruota Schematica
schematic.saved = Schematica salvata.
schematic.delete.confirm = Questa schematica sarà cancellata definitivamente.
-schematic.rename = Rinomina schematica
+schematic.rename = Rinomina Schematica
schematic.info = {0}x{1}, {2} blocchi
-stat.wave = Ondate sconfitte:[accent] {0}
-stat.enemiesDestroyed = Nemici distrutti:[accent] {0}
-stat.built = Costruzioni erette:[accent] {0}
-stat.destroyed = Costruzioni distrutte:[accent] {0}
-stat.deconstructed = Costruzioni smantellate:[accent] {0}
-stat.delivered = Riorse lanciate:
-stat.rank = Livello finale: [accent]{0}
+stat.wave = Ondate Sconfitte:[accent] {0}
+stat.enemiesDestroyed = Nemici Distrutti:[accent] {0}
+stat.built = Costruzioni Erette:[accent] {0}
+stat.destroyed = Costruzioni Distrutte:[accent] {0}
+stat.deconstructed = Costruzioni Smantellate:[accent] {0}
+stat.delivered = Risorse Lanciate:
+stat.rank = Livello Finale: [accent]{0}
launcheditems = [accent]Oggetti Lanciati
-launchinfo = [unlaunched][[LAUNCH] il tuo Nucleo per ottenere gli oggetti indicati in blu.
-map.delete = Sei sicuro di voler eliminare la mappa"[accent]{0}[]"?
+launchinfo = [unlaunched][[LANCIA] il tuo Nucleo per ottenere gli oggetti indicati in blu.
+map.delete = Sei sicuro di voler eliminare la mappa '[accent]{0}[]'?
level.highscore = Miglior Punteggio: [accent]{0}
level.select = Selezione del Livello
level.mode = Modalità di Gioco:
@@ -72,65 +80,71 @@ none =
minimap = Minimappa
position = Posizione
close = Chiuso
-website = Sito web
+website = Sito Web
quit = Esci
-save.quit = Salva ed esci
+save.quit = Salva ed Esci
maps = Mappe
maps.browse = Esplora Mappe
continue = Continua
-maps.none = [LIGHT_GRAY]Nessuna mappa trovata!
+maps.none = [lightgray]Nessuna mappa trovata!
invalid = Non valido
-preparingconfig = Preparo la configurazione
-preparingcontent = Preparo il contenuto
-uploadingcontent = Carico il contenuto
-uploadingpreviewfile = Carico file di anteprima
-committingchanges = Applico le modifiche
+pickcolor = Seleziona Colore
+preparingconfig = Preparo la Configurazione
+preparingcontent = Preparo il Contenuto
+uploadingcontent = Carico il Contenuto
+uploadingpreviewfile = Carico File di Anteprima
+committingchanges = Applico le Modifiche
done = Fatto
feature.unsupported = Il tuo dispositivo non supporta questa funzione.
-mods.alphainfo = Tieni a mente che queste Mod sono in alpha, e[scarlet] possono contenere molti bug[].\Segnala tutti i problemi che trovi su GitHub o Discord di Mindustry.
+mods.alphainfo = Tieni a mente che queste mods sono in alpha e[scarlet] possono contenere molti bug[].Segnala tutti i problemi che trovi su GitHub o Discord di Mindustry.
mods.alpha = [accent](Alpha)
mods = Mods
-mods.none = [LIGHT_GRAY]Nessuna Mod trovata!
-mods.guide = Guida per il modding!
+mods.none = [lightgray]Nessuna mod trovata!
+mods.guide = Guida per il modding
mods.report = Segnala un Bug
-mods.openfolder = Apri Cartella Mod
+mods.openfolder = Apri Cartella Mods
mod.enabled = [lightgray]Abilitato
mod.disabled = [scarlet]Disabilitato
mod.disable = Disabilita
-mod.delete.error = Impossibile eliminare questa Mod. Il file potrebbe essere in uso.
+mod.delete.error = Impossibile eliminare questa mod. Il file potrebbe essere in uso.
+mod.requiresversion = [scarlet]Versione minima richiesta: [accent]{0}
mod.missingdependencies = [scarlet]Dipendenze mancanti: {0}
-mod.nowdisabled = [scarlet]Alla Mod '{0}' mancano delle dipendenze:[accent] {1}\n[lightgray]Queste Mod devono essere scaricate prima.\nQuesta Mod verrà disabilitata automaticamente.
+mod.erroredcontent = [scarlet]Errori di Contenuto
+mod.errors = Si sono verificati degli errori durante il caricamento del contenuto.
+mod.noerrorplay = [scarlet]Sono presenti delle mod con errori.[] Puoi disabilitare le mod affette oppure sistemarle prima di giocare.
+mod.nowdisabled = [scarlet]Alla mod '{0}' mancano delle dipendenze:[accent] {1}\n[lightgray]Queste mods devono essere scaricate prima.\nQuesta mod verrà disabilitata automaticamente.
mod.enable = Abilita
mod.requiresrestart = Il gioco verrà chiuso per applicare i cambiamenti.
mod.reloadrequired = [scarlet]Riavvio necessario
-mod.import = Importa una Mod
-mod.import.github = Importa una Mod da GitHub
-mod.item.remove = Questo item fa parte della Mod[accent] '{0}'[]. Per rimuoverlo, disinstalla questa Mod.
-mod.remove.confirm = Questa Mod verrà eliminata.
-mod.author = [LIGHT_GRAY]Autore:[] {0}
-mod.missing = Questo salvataggio contiene Mod che hai recentemente aggiornato o non hai più installate. Il salvataggio potrebbe corrompersi. Sei sicuro di volerlo caricare?\n[lightgray]Mods:\n{0}
-mod.preview.missing = Prima di pubblicare questa Mod nel Workshop, devi aggiungere un immagine di copertina.\nMetti un immagine[accent] con nome preview.png[] nella cartella della Mod e riprova.
-mod.folder.missing = Solo le Mod in una cartella possono essere pubblicate nel Workshop.\nPer convertire una Mod in una cartella, decomprimi i suoi file in una cartella ed elimina il vecchio zip, quindi riavvia il gioco o ricarica le tue mods.
+mod.import = Importa Mod
+mod.import.github = Importa Mod da GitHub
+mod.item.remove = Questo item fa parte della mod[accent] '{0}'[]. Per rimuoverlo, disinstalla questa mod.
+mod.remove.confirm = Questa mod verrà eliminata.
+mod.author = [lightgray]Autore:[] {0}
+mod.missing = Questo salvataggio contiene delle mods che hai recentemente aggiornato o non hai più installate. Il salvataggio potrebbe corrompersi. Sei sicuro di volerlo caricare?\n[lightgray]Mods:\n{0}
+mod.preview.missing = Prima di pubblicare questa mod nel Workshop, devi aggiungere un immagine di copertina.\nMetti un immagine con nome[accent] preview.png[] nella cartella della mods e riprova.
+mod.folder.missing = Solo le mods in una cartella possono essere pubblicate nel Workshop.\nPer convertire una mod in una cartella, decomprimi i suoi file in una cartella ed elimina il vecchio zip, quindi riavvia il gioco o ricarica le tue mods.
+mod.scripts.unsupported = Il tuo dispositivo non supporta gli scripts per le mods. Alcune mods non funzioneranno correttamente.
about.button = Info
name = Nome:
noname = Scegli un[accent] nome[] prima di unirti.
-filename = Nome file:
-unlocked = Nuovo blocco scoperto!
+filename = Nome File:
+unlocked = Nuovo contenuto sbloccato!
completed = [accent]Completato
-techtree = Albero scoperta
-research.list = [LIGHT_GRAY]Ricerca:
+techtree = Albero Scoperta
+research.list = [lightgray]Ricerca:
research = Ricerca
-researched = [LIGHT_GRAY]{0} cercati.
+researched = [lightgray]{0} cercati.
players = {0} giocatori online
players.single = {0} giocatori online
server.closing = [accent]Chiusura server...
server.kicked.kick = Sei stato cacciato dal server!
server.kicked.whitelist = Non sei presente nella whitelist.
server.kicked.serverClose = Server chiuso.
-server.kicked.vote = Sei stato cacciato su richiesta dei giocatori. Addio.
-server.kicked.clientOutdated = Versione del client obsoleta! Aggiorna il tuo gioco!
+server.kicked.vote = Sei stato cacciato su richiesta dei giocatori. Tanti saluti.
+server.kicked.clientOutdated = Versione del client obsoleta! Aggiorna il gioco!
server.kicked.serverOutdated = Server obsoleto! Chiedi all'host di aggiornare la versione del server!
server.kicked.banned = Sei stato bandito da questo server.
server.kicked.typeMismatch = Questo server non è compatibile con il tuo client.
@@ -141,29 +155,30 @@ server.kicked.nameEmpty = Il tuo nome deve contenere almeno un carattere.
server.kicked.idInUse = Sei già su questo server! Non è permesso connettersi con due account.
server.kicked.customClient = Questo server non supporta i client personalizzati. Scarica la versione ufficiale dal sito.
server.kicked.gameover = Game over!
-server.versions = Your version:[accent] {0}[]\nVersione server:[accent] {1}[]
-host.info = Il pulsante [accent]host [] ospita un server sulla porta [scarlet]6567[].[] Chiunque sulla stessa [LIGHT_GRAY]rete wifi o locale[] dovrebbe essere in grado di vedere il server nell'elenco server.\n\n Se vuoi che le persone siano in grado di connettersi ovunque tramite il tuo IP, è richiesto il [accent]port forwarding[]. \n\n[LIGHT_GRAY]Nota: se qualcuno sta riscontrando problemi durante la connessione al gioco LAN, assicurati di aver consentito a Mindustry di accedere alla rete locale nelle impostazioni del firewall.
-join.info = Qui è possibile inserire l'[accent]IP del server[] a cui connettersi, o scoprire [accent]un server sulla rete locale[] disponibile.\nSono supportati sia il multiplayer LAN che WAN. \n\n[LIGHT_GRAY]Nota: non esiste un elenco automatico dei server globali; se desideri connetterti a qualcuno tramite il suo IP, è necessario chiedere all'host il proprio IP.
+server.kicked.serverRestarting = Il server si sta riavviando.
+server.versions = Versione client:[accent] {0}[]\nVersione server:[accent] {1}[]
+host.info = Il pulsante [accent]Ospita[] ospita un server sulla porta [scarlet]6567[].[] Chiunque sulla stessa [lightgray]rete Wi-Fi o locale[] dovrebbe essere in grado di vedere il server nell'elenco server.\nSe vuoi che le persone siano in grado di connettersi ovunque tramite il tuo IP, è richiesto il [accent]port forwarding[].\n\n[lightgray]Nota: se qualcuno sta riscontrando problemi durante la connessione al gioco LAN, assicurati di aver consentito a Mindustry di accedere alla rete locale nelle impostazioni del firewall.
+join.info = Qui è possibile inserire l'[accent]IP del server[] a cui connettersi, o scoprire [accent]un server sulla rete locale[] disponibile.\nSono supportati sia il multiplayer LAN che WAN.\n\n[lightgray]Nota: non esiste un elenco automatico dei server globali; se desideri connetterti a qualcuno tramite il suo IP, è necessario chiedere all'host il proprio IP.
hostserver = Ospita Server
-invitefriends = Invita amici
+invitefriends = Invita Amici
hostserver.mobile = Ospita\nServer
-host = Host
-hosting = [accent] Apertura del server...
+host = Ospita
+hosting = [accent]Apertura del server...
hosts.refresh = Aggiorna
hosts.discovering = Ricerca partite LAN
hosts.discovering.any = Ricerca partite
server.refreshing = Aggiornamento del server
-hosts.none = [lightgray]Nessuna partita LAN trovata!
+hosts.none = [lightgray]Nessuna partita locale trovata!
host.invalid = [scarlet]Impossibile connettersi all'host.
trace = Traccia giocatore
trace.playername = Nome del giocatore: [accent]{0}
trace.ip = IP: [accent]{0}
trace.id = ID univoco: [accent]{0}
-trace.mobile = Mobile Client: [accent]{0}
-trace.modclient = Client personalizzato: [accent]{0}
+trace.mobile = Client Mobile: [accent]{0}
+trace.modclient = Client Personalizzato: [accent]{0}
invalidid = ID client non valido! Segnala un bug.
-server.bans = Lista Ban
-server.bans.none = Nessun giocatore bandito trovato! Finora tutto liscio.
+server.bans = Lista Bans
+server.bans.none = Nessun giocatore bandito trovato!
server.admins = Amministratori
server.admins.none = Nessun amministratore trovato!
server.add = Aggiungi server
@@ -171,8 +186,8 @@ server.delete = Sei sicuro di voler eliminare questo server?
server.edit = Modifica server
server.outdated = [crimson]Server obsoleto![]
server.outdated.client = [crimson]Client obsoleto![]
-server.version = [lightgray]Versione: {0}
-server.custombuild = [yellow] Costruzione personalizzata
+server.version = [gray]v{0} {1}
+server.custombuild = [yellow]Build Personalizzata
confirmban = Sei sicuro di voler bandire questo giocatore?
confirmkick = Sei sicuro di voler espellere questo giocatore?
confirmvotekick = Sei sicuro di voler votare per l'espulsione di questo giocatore?
@@ -180,25 +195,25 @@ confirmunban = Sei sicuro di voler riammettere questo giocatore?
confirmadmin = Sei sicuro di voler rendere questo giocatore un amministratore?
confirmunadmin = Sei sicuro di voler rimuovere lo stato di amministratore da questo giocatore?
joingame.title = Unisciti alla Partita
-joingame.ip = IP:
+joingame.ip = Indirizzo:
disconnect = Disconnesso.
disconnect.error = Errore di connessione.
disconnect.closed = Connessione chiusa.
disconnect.timeout = Timed out.
disconnect.data = Errore durante il caricamento del mondo!
-cantconnect = Impossibile unirsi al server ([accent]{0}[]).
+cantconnect = Impossibile unirsi alla partita ([accent]{0}[]).
connecting = [accent]Connessione in corso...
connecting.data = [accent]Caricamento del mondo...
server.port = Porta:
server.addressinuse = Indirizzo già in uso!
server.invalidport = Numero porta non valido!
-server.error = [crimson]Errore nell'hosting del server: [accent] {0}
+server.error = [crimson]Errore nell'hosting del server.
save.new = Nuovo Salvataggio
save.overwrite = Sei sicuro di voler sovrascrivere questo salvataggio?
overwrite = Sovrascrivi
save.none = Nessun salvataggio trovato!
-saveload = [accent]Salvataggio in corso...
-savefail = [crimson]Salvataggio del gioco non riuscito!
+saveload = Salvataggio in corso...
+savefail = Salvataggio del gioco non riuscito!
save.delete.confirm = Sei sicuro di voler eliminare questo salvataggio?
save.delete = Elimina
save.export = Esporta Salvataggio
@@ -212,14 +227,14 @@ save.rename.text = Nuovo nome:
selectslot = Seleziona un salvataggio.
slot = [accent]Slot {0}
editmessage = Modifica Messaggio
-save.corrupted = [orang]Salvataggio corrotto o non valido!
+save.corrupted = Salvataggio corrotto o non valido!
empty =
on = On
off = Off
save.autosave = Salvataggio Automatico: {0}
save.map = Mappa: {0}
save.wave = Ondata: {0}
-save.mode = Gamemode: {0}
+save.mode = Modalità di Gioco: {0}
save.date = Ultimo Salvataggio: {0}
save.playtime = Tempo di Gioco: {0}
warning = Attenzione
@@ -246,17 +261,17 @@ quit.confirm.tutorial = Sei sicuro di sapere cosa stai facendo? Il tutorial può
loading = [accent]Caricamento in Corso...
reloading = [accent]Ricaricamento delle mods...
saving = [accent]Salvataggio in corso...
-cancelbuilding = [accent][[{0}][] to clear plan
-selectschematic = [accent][[{0}][] to select+copy
+cancelbuilding = [accent][[{0}][] per pulire la selezione
+selectschematic = [accent][[{0}][] per selezionare+copiare
pausebuilding = [accent][[{0}][] to pause building
-resumebuilding = [scarlet][[{0}][] to resume building
+resumebuilding = [scarlet][[{0}][] per riprendere a costruire
wave = [accent]Ondata {0}
-wave.waiting = [LIGHT_GRAY]Ondata tra {0}
-wave.waveInProgress = [LIGHT_GRAY]Ondata in corso...
+wave.waiting = [lightgray]Ondata tra {0}
+wave.waveInProgress = [lightgray]Ondata in corso
waiting = In attesa...
waiting.players = Attendendo giocatori...
-wave.enemies = [LIGHT_GRAY]{0} Nemici Rimasti
-wave.enemy = [LIGHT_GRAY]{0} Nemico Rimasto
+wave.enemies = [lightgray]{0} Nemici Rimasti
+wave.enemy = [lightgray]{0} Nemico Rimasto
loadimage = Carica immagine
saveimage = Salva Immagine
unknown = Sconosciuto
@@ -265,35 +280,36 @@ builtin = Incluso
map.delete.confirm = Sei sicuro di voler eliminare questa mappa? L'operazione è irreversibile!
map.random = [accent]Mappa casuale
map.nospawn = Questa mappa non possiede un Nucleo in cui spawnare! Aggiungine uno nell'editor.
-map.nospawn.pvp = Questa mappa non ha un Nucleo nemico! Aggiungi un [SCARLET]Nucleo rosso[] nell'editor per poter giocare.
-map.nospawn.attack = Questa mappa non ha un Nucleo nemico! Aggiungi un [SCARLET]Nucleo rosso[] nell'editor per poter giocare.
+map.nospawn.pvp = Questa mappa non ha un Nucleo Nemico! Aggiungi dei Nuclei nell'editor per poter giocare.
+map.nospawn.attack = Questa mappa non ha nessun Nucleo Nemico da poter attaccare! Aggiungi dei Nuclei Nemici nell'editor per poter giocare.
map.invalid = Errore nel caricamento della mappa: file mappa corrotto o non valido.
workshop.update = Aggiorna elemento
workshop.error = Errore nel recupero dei dettagli del Workshop: {0}
map.publish.confirm = Vuoi pubblicare questa mappa?\n\n[lightgray]Assicurati di aver accettato il Workshop EULA, o le tue mappe non saranno visibili!
workshop.menu = Seleziona cosa vorresti fare con questo elemento.
-workshop.info = Info elemento
+workshop.info = Info Elemento
changelog = Changelog (opzionale):
eula = Steam EULA
-missing = This item has been deleted or moved.\n[lightgray]The Workshop listing has now been automatically un-linked.
+missing = Questo prodotto è stato eliminato o spostato.\n[lightgray]L'elemento è stato scollegato automaticamente dal Workshop.
publishing = [accent]Pubblicazione...
-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}
-editor.brush = Pennello
-editor.openin = Apri nell'editor
-editor.oregen = Generazione dei minerali
-editor.oregen.info = Generazione dei minerali:
-editor.mapinfo = Informazioni mappa
+publish.confirm = Sei sicuro di volerlo pubblicare?\n\n[lightgray]Assicurati di accettare il contratto EULA del Workshop o i tuoi prodotti non verranno mostrati!
+publish.error = Errore nella pubblicazione del prodotto: {0}
+steam.error = Impossibile inizializzare i servizi di Steam.\nErrore: {0}
+
+editor.brush = Dimensioni Pennello
+editor.openin = Apri nell'Editor
+editor.oregen = Generazione dei Minerali
+editor.oregen.info = Generazione dei Minerali:
+editor.mapinfo = Info Mappa
editor.author = Autore:
editor.description = Descrizione:
editor.nodescription = Una mappa deve avere una descrizione di almeno 4 caratteri per poter essere pubblicata.
editor.waves = Ondate:
editor.rules = Regole:
editor.generation = Generazione:
-editor.ingame = Modifica in gioco
-editor.publish.workshop = Pubblica sul Workshop
-editor.newmap = Nuova mappa
+editor.ingame = Modifica in Gioco
+editor.publish.workshop = Pubblica nel Workshop
+editor.newmap = Nuova Mappa
workshop = Workshop
waves.title = Ondate
waves.remove = Rimuovi
@@ -305,50 +321,50 @@ waves.to = a
waves.boss = Boss
waves.preview = Anteprima
waves.edit = Modifica...
-waves.copy = Copia negli appunti
-waves.load = Carica dagli appunti
-waves.invalid = Onde dagli appunti non valide.
-waves.copied = Onde copiate.
-waves.none = Nessun nemico definiti.\n Nota che le disposizioni di ondate vuote verranno automaticamente rimpiazzate con la disposizione predefinita.
-editor.default = [LIGHT_GRAY]
+waves.copy = Copia negli Appunti
+waves.load = Carica dagli Appunti
+waves.invalid = Ondate dagli appunti non valide.
+waves.copied = Ondate copiate.
+waves.none = Nessun nemico impostato.\nNota che le disposizioni di ondate vuote verranno automaticamente rimpiazzate con la disposizione predefinita.
+editor.default = [lightgray]
details = Dettagli...
edit = Modifica...
editor.name = Nome:
-editor.spawn = Piazza un'unità
-editor.removeunit = Rimuovi un'unità
-editor.teams = Squadre
-editor.errorload = Errore nel caricamento di:\n[accent]{0}
-editor.errorsave = Errore nel salvataggio di:\n[accent]{0}
-editor.errorimage = Quella è un'immagine, non una mappa.\n\nSe vuoi importare una mappa vecchia clicca su "Importa una mappa vecchia" nell'editor.
+editor.spawn = Piazza un'Unità
+editor.removeunit = Rimuovi un'Unità
+editor.teams = Colore Squadre
+editor.errorload = Errore nel caricamento del file.
+editor.errorsave = Errore nel salvataggio del file,
+editor.errorimage = Questa è un'immagine, non una mappa.\n\nSe vuoi importare una mappa vecchia clicca su 'Importa Mappa Vecchia' nell'editor.
editor.errorlegacy = La mappa è troppo vecchia ed usa un formato che non è più supportato.
-editor.errornot = Questo file non è una mappa.
-editor.errorheader = Questo file della mappa è invalido o corrotto.
-editor.errorname = Questa mappa è senza nome.
+editor.errornot = Questo non è un file mappa.
+editor.errorheader = Il file di questa mappa non è valido o è corrotto.
+editor.errorname = Questa mappa è senza nome. Stai cercando di caricare un salvataggio?
editor.update = Aggiorna
editor.randomize = Casualizza
editor.apply = Applica
editor.generate = Genera
editor.resize = Ridimensiona
-editor.loadmap = Carica\nmappa
-editor.savemap = Salva\nla mappa
+editor.loadmap = Carica Mappa
+editor.savemap = Salva Mappa
editor.saved = Salvato!
-editor.save.noname = La tua mappa non ha un nome! Impostane uno nelle informazioni della mappa.
-editor.save.overwrite = La tua mappa sovrascrive quelle incluse! Imposta un nome diverso nelle informazioni della mappa.
+editor.save.noname = La tua mappa non ha un nome! Impostane uno nel menu 'Info Mappa'.
+editor.save.overwrite = La tua mappa sovrascrive quelle incluse! Imposta un nome diverso nel menu 'Info Mappa'.
editor.import.exists = [scarlet]Impossibile importare:[] esiste già una mappa chiamata '{0}' che non può essere sovrascritta!
-editor.import = Importando...
+editor.import = Importa...
editor.importmap = Importa mappa
editor.importmap.description = Importa mappa preesistente
-editor.importfile = Importa file
+editor.importfile = Importa File
editor.importfile.description = Importa un file mappa esterno
-editor.importimage = Importa mappa terreno
-editor.importimage.description = Importa immagine esterna terreno
-editor.export = Esportazione...
+editor.importimage = Importa Mappa Vecchia
+editor.importimage.description = Importa immagine del terreno esterna
+editor.export = Esporta...
editor.exportfile = Esporta file
editor.exportfile.description = Esporta file mappa
-editor.exportimage = Esporta immagine
+editor.exportimage = Esporta Immagine Terreno
editor.exportimage.description = Esporta file immagine mappa
-editor.loadimage = Carica\nimmagine
-editor.saveimage = Salva\nimmagine
+editor.loadimage = Importa\nTerreno
+editor.saveimage = Esporta\nTerreno
editor.unsaved = [scarlet]Alcune modifiche non sono state salvate![]\nSei sicuro di voler uscire?
editor.resizemap = Ridimensiona la mappa
editor.mapname = Nome Mappa:
@@ -359,30 +375,30 @@ editor.selectmap = Seleziona una mappa da caricare:
toolmode.replace = Sostituire
toolmode.replace.description = Disegna solo su blocchi solidi.
-toolmode.replaceall = Sostituisci tutto
-toolmode.replaceall.description = Rimpiazza tutti i blocchi nella mappa
+toolmode.replaceall = Sostituisci Tutto
+toolmode.replaceall.description = Rimpiazza tutti i blocchi nella mappa.
toolmode.orthogonal = Ortogonale
-toolmode.orthogonal.description = Disegna solo linee ortogonali
+toolmode.orthogonal.description = Disegna solo linee ortogonali.
toolmode.square = Quadrato
-toolmode.square.description = Pennello quadrato
+toolmode.square.description = Pennello quadrato.
toolmode.eraseores = Rimuovi Minerali
-toolmode.eraseores.description = Rimuove solo minerali
+toolmode.eraseores.description = Rimuove solo minerali.
toolmode.fillteams = Riempi Squadre
-toolmode.fillteams.description = Riempe squadre al posto di blocchi
+toolmode.fillteams.description = Riempe squadre al posto di blocchi.
toolmode.drawteams = Disegna Squadre
-toolmode.drawteams.description = Disegna squadre al posto di blocchi
+toolmode.drawteams.description = Disegna squadre al posto di blocchi.
-filters.empty = [LIGHT_GRAY]Nessun filtro! Aggiungine uno cliccando il tasto sotto.
+filters.empty = [lightgray]Nessun filtro! Aggiungine uno cliccando il tasto sotto.
filter.distort = Modifica
filter.noise = Interferenza
filter.median = Mediana
filter.oremedian = Mediana Minerali
filter.blend = Miscela
-filter.defaultores = Minerali predefiniti
-filter.ore = Minerali
-filter.rivernoise = Interferenze a fiume
+filter.defaultores = Minerali Predefiniti
+filter.ore = Minerale
+filter.rivernoise = Interferenze Fiume
filter.mirror = Rifletti
-filter.clear = Resetta il filtro
+filter.clear = Resetta Filtro
filter.option.ignore = Ignora
filter.scatter = Dispersione
filter.terrain = Terreno
@@ -390,17 +406,17 @@ filter.option.scale = Scala
filter.option.chance = Probabilità
filter.option.mag = Magnitudine
filter.option.threshold = Soglia
-filter.option.circle-scale = Modifica grandezza cerchio
+filter.option.circle-scale = Modifica Diametro Cerchio
filter.option.octaves = Ottavi
filter.option.falloff = Cadere
filter.option.angle = Angolo
filter.option.block = Blocco
-filter.option.floor = Pavimento
-filter.option.flooronto = Pavimento mirato
+filter.option.floor = Terreno
+filter.option.flooronto = Terreno Mirato
filter.option.wall = Muro
filter.option.ore = Minerale
-filter.option.floor2 = Pavimento secondario
-filter.option.threshold2 = Soglia secondaria
+filter.option.floor2 = Terreno Secondario
+filter.option.threshold2 = Soglia Secondaria
filter.option.radius = Raggio
filter.option.percentile = Percentuale
@@ -423,44 +439,44 @@ mapeditor = Editor Mappe
abandon = Abbandona
abandon.text = Questa zona e tutte le tue risorse saranno perdute e passeranno al nemico.
locked = Bloccato
-complete = [LIGHT_GRAY]Completato:
+complete = [lightgray]Completato:
requirement.wave = Raggiungi onda {0} in {1}
-requirement.core = Distruggi il Nucleo nemico in {0}
+requirement.core = Distruggi il Nucleo Nemico in {0}
requirement.unlock = Sblocca {0}
-resume = Riprendi Zona:\n[LIGHT_GRAY]{0}
-bestwave = [LIGHT_GRAY]Ondata migliore: {0}
+resume = Riprendi Zona:\n[lightgray]{0}
+bestwave = [lightgray]Ondata Migliore: {0}
launch = < DECOLLARE >
-launch.title = Decollo riuscito!
-launch.next = [LIGHT_GRAY]nuova opportunità all'ondata {0}
+launch.title = Decollo Riuscito!
+launch.next = [lightgray]nuova opportunità all'ondata {0}
launch.unable2 = [scarlet]IMPOSSIBILE DECOLLARE![]
launch.confirm = Questo trasporterà tutte le risorse nel tuo Nucleo.\nNon riuscirai a ritornare in questa base.
launch.skip.confirm = Se salti adesso non riuscirai a decollare fino alle ondate successive
uncover = Scopri
-configure = Configura l'equipaggiamento
-bannedblocks = Blocchi banditi
-addall = Aggiungi tutti
-configure.locked = [LIGHT_GRAY]Arriva all'ondata {0}\nper configurare l'equipaggiamento.
+configure = Configura Equipaggiamento
+bannedblocks = Blocchi Banditi
+addall = Aggiungi Tutti
+configure.locked = [lightgray]Arriva all'ondata {0}\nper configurare l'equipaggiamento.
configure.invalid = Il valore dev'essere un numero compresto tra 0 e {0}.
-zone.unlocked = [LIGHT_GRAY]{0} sbloccata.
-zone.requirement.complete = Ondata {0} raggiunta:\n{1} requisiti di zona soddisfatti.
+zone.unlocked = [lightgray]{0} sbloccata.
+zone.requirement.complete = Ondata {0} raggiunta:\n[lightgray]{1}[] requisiti di zona soddisfatti.
zone.config.unlocked = Equipaggiamento sbloccato:[lightgray]\n{0}
-zone.resources = Risorse Trovate:
+zone.resources = [lightgray]Risorse Trovate:
zone.objective = [lightgray]Obiettivo: [accent]{0}
zone.objective.survival = Sopravvivere
zone.objective.attack = Distruggere il Nucleo Nemico
add = Aggiungi...
boss.health = Vita del Boss
-connectfail = [crimson] Impossibile connettersi al server: [accent] {0}
+connectfail = [crimson]Impossibile connettersi al server:\n\n[accent] {0}
error.unreachable = Server irraggiungibile. L'indirizzo è scritto correttamente?
-error.invalidaddress = Indirizzo invalido.
-error.timedout = Timeout!\n Assicurati che l'host abbia il port forwarding impostato e che l'indirizzo sia corretto!
-error.mismatch = Errore pacchetti:\nPossibile discordanza della versione client / server.\n Assicurati che tu e l'host possiediate l'ultima versione di Mindustry!
+error.invalidaddress = Indirizzo non valido.
+error.timedout = Timeout!\nAssicurati che l'host abbia il port forwarding impostato e che l'indirizzo sia corretto!
+error.mismatch = Errore dei pacchetti:\nPossibile discordanza della versione client/server.\nAssicurati che tu e l'host possiediate l'ultima versione di Mindustry!
error.alreadyconnected = Già connesso.
-error.mapnotfound = Mappa non trovata
+error.mapnotfound = Mappa non trovata!
error.io = Errore I/O di rete.
error.any = Errore di rete sconosciuto.
-error.bloom = Errore dell'avvio del bloom.\nIl tuo dispositivo potrebbe non supportarlo.
+error.bloom = Errore dell'avvio delle shaders.\nIl tuo dispositivo potrebbe non supportarle.
zone.groundZero.name = Terreno Zero
zone.desertWastes.name = Rifiuti Desertici
@@ -478,7 +494,7 @@ zone.crags.name = Dirupi
zone.fungalPass.name = Passaggio Fungoso
zone.groundZero.description = La posizione ottimale per cominciare. Bassa minaccia nemica. Poche risorse.\nRaccogli quanto più piombo e rame possibile.\nProcedi.
-zone.frozenForest.description = Anche qui, più vicino alle montagne, le spore si sono diffuse. Le temperature rigide non possono contenerle per sempre.\n Inizia la scoperta dell'energia. Costruisci generatori a combustione. Impara a usare i riparatori.
+zone.frozenForest.description = Anche qui, più vicino alle montagne, le spore si sono diffuse. Le temperature rigide non possono contenerle per sempre.\nInizia la scoperta dell'energia. Costruisci generatori a combustione. Impara a usare i riparatori.
zone.desertWastes.description = Questi rifiuti sono vasti, imprevedibili ed attraversati da strutture settoriali abbandonate.\n\nIl carbone è presente nella regione. Bruciatelo per ottenere energia o sintetizzate la grafite.\n\n[lightgray]Questa posizione di atterraggio non può essere garantita.
zone.saltFlats.description = Alle periferie del deserto si trovano le saline. Poche risorse possono essere trovate in questa posizione.\n\nIl nemico ha eretto un complesso di archiviazione delle risorse qui. Sradicare il loro Nucleo. Non lasciare nulla in piedi.
zone.craters.description = L'acqua si è accumulata in questo cratere, reliquia delle vecchie guerre. Recupera l'area. Raccogli la sabbia. Fondi il vetro metallico. Pompa l'acqua per raffreddare torrette e trivelle.
@@ -487,20 +503,21 @@ zone.stainedMountains.description = Più nell'entroterra si trovano le montagne,
zone.overgrowth.description = Quest'area è invasa, più vicina alla fonte delle spore.\nIl nemico ha stabilito qui un avamposto. Costruisci unità col pugnale. Distruggilo. Riprenditi ciò che è stato perso.
zone.tarFields.description = La periferia di una zona di produzione di petrolio, tra le montagne e il deserto. Una delle poche aree con riserve di catrame utilizzabili.\nAnche se abbandonata, questa zona ha alcune pericolose forze nemiche nelle vicinanze. Non sottovalutarlo.\n\n[lightgray]Ricerca la tecnologia di lavorazione del petrolio, se possibile.
zone.desolateRift.description = Una zona estremamente pericolosa. Risorse abbondanti, ma poco spazio. Alto rischio di distruzione. Lascia il prima possibile. Non lasciarti ingannare dalla lunga distanza tra gli attacchi nemici.
-zone.nuclearComplex.description = Un ex impianto per la produzione e la lavorazione del torio, ridotto in rovina.\n[lightgray] Ricerca il torio ed i suoi numerosi usi.\n\nIl nemico è presente qui in gran numero, alla costante ricerca di aggressori.
+zone.nuclearComplex.description = Un ex impianto per la produzione e la lavorazione del torio, ridotto in rovina.\n[lightgray]Ricerca il torio ed i suoi numerosi usi.\n\nIl nemico è presente qui in gran numero, alla costante ricerca di aggressori.
zone.fungalPass.description = Un'area di transizione tra alte montagne e terre più basse, piene di spore. Qui si trova una piccola base di ricognizione nemica.\nDistruggila.\nUsa le unità Pugnale e Strisciatore. Elimina i due nuclei.
zone.impact0078.description =
zone.crags.description =
settings.language = Lingua
-settings.data = Importa/Esporta salvataggio
+settings.data = Dati di Gioco
settings.reset = Ripristina Impostazioni
settings.rebind = Modifica
+settings.resetKey = Ripristina
settings.controls = Controlli
settings.game = Gioco
settings.sound = Suoni
settings.graphics = Grafica
-settings.cleardata = Elimina Dati di Gioco...
+settings.cleardata = Elimina Dati di Gioco
settings.clear.confirm = Sei sicuro di voler cancellare i dati?\nQuesta operazione non può essere annullata!
settings.clearall.confirm = [scarlet]ATTENZIONE![]\nQuesto cancellerà tutti i dati, inclusi salvataggi, mappe, oggetti sbloccati ed impostazioni.\nDopo aver premuto su 'ok' il gioco eliminerà i dati e si chiuderà automaticamente.
paused = [accent]< In Pausa >
@@ -513,8 +530,8 @@ error.title = [crimson]Si è verificato un errore
error.crashtitle = Si è verificato un errore
blocks.input = Ingresso
blocks.output = Uscita
-blocks.booster = Booster
-block.unknown = [LIGHT_GRAY]???
+blocks.booster = Potenziamenti
+block.unknown = [lightgray]???
blocks.powercapacity = Capacità Energetica
blocks.powershot = Danno/Colpo
blocks.damage = Danno
@@ -523,7 +540,7 @@ blocks.targetsground = Attacca Nemici Terreni
blocks.itemsmoved = Velocità di Movimento
blocks.launchtime = Tempo fra Decolli
blocks.shootrange = Raggio
-blocks.size = Grandezza
+blocks.size = Dimensioni
blocks.liquidcapacity = Capacità del Liquido
blocks.powerrange = Raggio Energia
blocks.powerconnections = Connessioni Massime
@@ -551,7 +568,7 @@ bar.drilltierreq = Miglior Trivella Richiesta
bar.drillspeed = Velocità Scavo: {0}/s
bar.pumpspeed = Velocità di Pompaggio: {0}/s
bar.efficiency = Efficienza: {0}%
-bar.powerbalance = Energia: {0}
+bar.powerbalance = Energia: {0}/s
bar.powerstored = Immagazzinata: {0}/{1}
bar.poweramount = Energia: {0}
bar.poweroutput = Energia in Uscita: {0}
@@ -560,7 +577,7 @@ bar.capacity = Capacità: {0}
bar.liquid = Liquido
bar.heat = Calore
bar.power = Energia
-bar.progress = Progresso della Costruzione
+bar.progress = Progresso Costruzione
bar.spawned = Unità: {0}/{1}
bar.input = Entrata
bar.output = Uscita
@@ -578,14 +595,14 @@ bullet.multiplier = [stat]{0}[lightgray]x moltiplicatore munizioni
bullet.reload = [stat]{0}[lightgray]x ricarica
unit.blocks = blocchi
-unit.powersecond = unità energia/secondo
-unit.liquidsecond = unità liquide/secondo
-unit.itemssecond = oggetti/secondo
+unit.powersecond = unità energia/s
+unit.liquidsecond = unità liquide/s
+unit.itemssecond = oggetti/s
unit.liquidunits = unità liquidi
unit.powerunits = unità energia
unit.degrees = gradi
unit.seconds = secondi
-unit.persecond = /sec
+unit.persecond = /s
unit.timesspeed = x velocità
unit.percent = %
unit.items = oggetti
@@ -603,10 +620,10 @@ setting.shadows.name = Ombre
setting.blockreplace.name = Suggerimento Blocchi Automatico
setting.linear.name = Filtro Lineare
setting.hints.name = Suggerimenti
-setting.buildautopause.name = Auto-Pause Building
+setting.buildautopause.name = Pausa automatica nella costruzione
setting.animatedwater.name = Acqua Animata
setting.animatedshields.name = Scudi Animati
-setting.antialias.name = Antialias[LIGHT_GRAY] (richiede riavvio)[]
+setting.antialias.name = Antialias[lightgray] (richiede riavvio)[]
setting.indicators.name = Indicatori Alleati/Nemici
setting.autotarget.name = Mira Automatica
setting.keyboard.name = Tastiera
@@ -626,37 +643,38 @@ setting.screenshake.name = Movimento dello Schermo
setting.effects.name = Visualizza Effetti
setting.destroyedblocks.name = Mostra Blocchi Distrutti
setting.conveyorpathfinding.name = Conveyor Placement Pathfinding
+setting.coreselect.name = Consenti Schematiche dei Nuclei
setting.sensitivity.name = Sensibilità del Controller
setting.saveinterval.name = Intervallo di Salvataggio Automatico
+setting.seconds = {0} secondi
setting.blockselecttimeout.name = Tempo di Selezione del Blocco
setting.milliseconds = {0} millisecondi
-setting.seconds = {0} secondi
setting.fullscreen.name = Schermo Intero
-setting.borderlesswindow.name = Finestra Senza Bordi[LIGHT_GRAY] (potrebbe richiedere riavvio)
+setting.borderlesswindow.name = Finestra Senza Bordi[lightgray] (potrebbe richiedere riavvio)
setting.fps.name = Mostra FPS e Ping
setting.blockselectkeys.name = Mostra Tasto di Selezione del Blocco
setting.vsync.name = VSync
-setting.pixelate.name = Effetto Pixel [LIGHT_GRAY](potrebbe ridure le prestazioni)
+setting.pixelate.name = Effetto Pixel [lightgray](potrebbe ridure le prestazioni)
setting.minimap.name = Mostra Minimappa
setting.position.name = Mostra Posizione Giocatori
setting.musicvol.name = Volume Musica
setting.ambientvol.name = Volume Ambiente
setting.mutemusic.name = Silenzia Musica
setting.sfxvol.name = Volume Effetti
-setting.mutesound.name = Togli Suoni
+setting.mutesound.name = Silenzia Suoni
setting.crashreport.name = Invia rapporti anonimi sugli arresti anomali
-setting.savecreate.name = Autosalvataggio
+setting.savecreate.name = Salvataggio Automatico
setting.publichost.name = Gioco Visibile Pubblicamente
setting.chatopacity.name = Opacità Chat
setting.lasersopacity.name = Opacità Laser d'Energia
setting.playerchat.name = Mostra Chat in-game
-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.
-uiscale.reset = La scala dell'interfaccia utente è stata modificata.\nPremere "OK" per confermare questa scala.\n[scarlet] Ripristina ed esci in [accent] {0}[] secondi...
+public.confirm = Vuoi rendere la tua partita pubblica?\n[accent]Chiunque sarà in grado di accedere alle tue partite.\n[lightgray]Questo può essere modificato più tardi in Impostazioni->Gioco->Partite Pubbliche.
+public.beta = Nota che le versioni beta del gioco non possono creare lobby pubbliche.
+uiscale.reset = La scala dell'interfaccia utente è stata modificata.\nPremere 'OK' per confermare questa scala.\n[scarlet]Ripristina ed esci in [accent] {0}[] secondi...
uiscale.cancel = Annulla ed Esci
setting.bloom.name = Shaders
keybind.title = Configurazione Tasti
-keybinds.mobile = [scarlet]La maggior parte dei keybind qui non sono funzionali sui dispositivi mobili. È supportato solo il movimento di base.
+keybinds.mobile = [scarlet]La maggior parte dei controlli qui non sono funzionano sui dispositivi mobili. È supportato solo il movimento di base.
category.general.name = Generale
category.view.name = Visualizzazione
category.multiplayer.name = Multigiocatore
@@ -668,6 +686,7 @@ keybind.clear_building.name = Pulisci Costruzione
keybind.press = Premi un tasto...
keybind.press.axis = Premi un'asse o un tasto...
keybind.screenshot.name = Screenshot della Mappa
+keybind.toggle_power_lines.name = Attiva/Disattiva Laser d'Energia
keybind.move_x.name = Muovi Orizzontalmente
keybind.move_y.name = Muovi Verticalmente
keybind.mouse_move.name = Segui il Mouse
@@ -675,23 +694,23 @@ keybind.dash.name = Scatto
keybind.schematic_select.name = Seleziona Regione
keybind.schematic_menu.name = Menu Schematica
keybind.schematic_flip_x.name = Ruota Schematica Orizzontalmente
-keybind.schematic_flip_y.name = Flip Schematic Verticalmente
+keybind.schematic_flip_y.name = Ruota Schematica Verticalmente
keybind.category_prev.name = Categoria Precedente
keybind.category_next.name = Categoria Successiva
keybind.block_select_left.name = Seleziona Blocco Sinistra
keybind.block_select_right.name = Seleziona Blocco Destra
keybind.block_select_up.name = Seleziona Blocco Su
keybind.block_select_down.name = Seleziona Blocco Giù
-keybind.block_select_01.name = Categoria/Seleziona Blocco 1
-keybind.block_select_02.name = Categoria/Seleziona Blocco 2
-keybind.block_select_03.name = Categoria/Seleziona Blocco 3
-keybind.block_select_04.name = Categoria/Seleziona Blocco 4
-keybind.block_select_05.name = Categoria/Seleziona Blocco 5
-keybind.block_select_06.name = Categoria/Seleziona Blocco 6
-keybind.block_select_07.name = Categoria/Seleziona Blocco 7
-keybind.block_select_08.name = Categoria/Seleziona Blocco 8
-keybind.block_select_09.name = Categoria/Seleziona Blocco 9
-keybind.block_select_10.name = Categoria/Seleziona Blocco 10
+keybind.block_select_01.name = Seleziona Categoria/Blocco 1
+keybind.block_select_02.name = Seleziona Categoria/Blocco 2
+keybind.block_select_03.name = Seleziona Categoria/Blocco 3
+keybind.block_select_04.name = Seleziona Categoria/Blocco 4
+keybind.block_select_05.name = Seleziona Categoria/Blocco 5
+keybind.block_select_06.name = Seleziona Categoria/Blocco 6
+keybind.block_select_07.name = Seleziona Categoria/Blocco 7
+keybind.block_select_08.name = Seleziona Categoria/Blocco 8
+keybind.block_select_09.name = Seleziona Categoria/Blocco 9
+keybind.block_select_10.name = Seleziona Categoria/Blocco 10
keybind.fullscreen.name = Schermo Intero
keybind.select.name = Seleziona/Spara
keybind.diagonal_placement.name = Posizionamento Diagonale
@@ -699,7 +718,7 @@ keybind.pick.name = Scegli Blocco
keybind.break_block.name = Rompi Blocco
keybind.deselect.name = Deseleziona
keybind.shoot.name = Spara
-keybind.zoom.name = Esegui Zoom
+keybind.zoom.name = Zoom
keybind.menu.name = Menu
keybind.pause.name = Pausa
keybind.pause_building.name = Pausa/Riprendi Costruzione
@@ -708,14 +727,13 @@ keybind.chat.name = Chat
keybind.player_list.name = Lista dei Giocatori
keybind.console.name = Console
keybind.rotate.name = Ruota
-keybind.rotateplaced.name = Ruota Blocco Esistente (Premuto)
-keybind.toggle_menus.name = Mostra/Nascondi HUD
-keybind.chat_history_prev.name = Scorri Chat vero l'alto
+keybind.rotateplaced.name = Ruota Blocco Esistente (premuto)
+keybind.toggle_menus.name = Mostra/Nascondi Menu
+keybind.chat_history_prev.name = Scorri Chat vero l'alto
keybind.chat_history_next.name = Scorri Chat verso il basso
keybind.chat_scroll.name = Scorri Chat
keybind.drop_unit.name = Lascia Materiali
keybind.zoom_minimap.name = Esegui Zoom Minimappa
-keybind.toggle_power_lines.name = Attiva/Disattiva Laser d'Energia
mode.help.title = Descrizione delle Modalità
mode.survival.name = Sopravvivenza
mode.survival.description = Modalità normale. Risorse limitate ed ondate in entrata automatiche.
@@ -725,10 +743,10 @@ mode.editor.name = Editor
mode.pvp.name = PvP
mode.pvp.description = Lotta contro altri giocatori.
mode.attack.name = Schermaglia
-mode.attack.description = Obiettivo: Distruggere la base nemica, non ci sono ondate.
+mode.attack.description = Distruggi la base nemica. \n[gray]Richiede un Nucleo rosso nella mappa per essere giocata.
mode.custom = Regole Personalizzate
-rules.infiniteresources = Risorse infinite
+rules.infiniteresources = Risorse Infinite
rules.reactorexplosions = Esplosioni Reattore
rules.wavetimer = Timer Ondate
rules.waves = Ondate
@@ -737,27 +755,28 @@ rules.enemyCheat = Risorse AI Infinite
rules.unitdrops = Generazione Unità
rules.unitbuildspeedmultiplier = Moltiplicatore Velocità Costruzione Unità
rules.unithealthmultiplier = Moltiplicatore Vita Unità
+rules.blockhealthmultiplier = Moltiplicatore Danno Blocco
rules.playerhealthmultiplier = Moltiplicatore Vita Giocatore
rules.playerdamagemultiplier = Moltiplicatore Danno Giocatore
rules.unitdamagemultiplier = Moltiplicatore Danno Unità
-rules.enemycorebuildradius = Raggio di Protezione del Nucleo Nemico dalle Costruzioni:[LIGHT_GRAY] (tiles)
-rules.respawntime = Tempo di rigeneratione:[LIGHT_GRAY] (sec)
-rules.wavespacing = Tempo fra Ondate:[LIGHT_GRAY] (secondi)
+rules.enemycorebuildradius = Raggio di protezione del Nucleo Nemico dalle costruzioni:[lightgray] (blocchi)
+rules.respawntime = Tempo di Rigeneratione:[lightgray] (secondi)
+rules.wavespacing = Tempo fra Ondate:[lightgray] (secondi)
rules.buildcostmultiplier = Moltiplicatore Costo Costruzione
rules.buildspeedmultiplier = Moltiplicatore Velocità Costruzione
-rules.waitForWaveToEnd = Ondate aspettano fino a quando l'ondata precedente finisce
-rules.dropzoneradius = Raggio di Generazione:[LIGHT_GRAY] (blocchi)
+rules.waitForWaveToEnd = Le ondate aspettano fino a quando l'ondata precedente finisce
+rules.dropzoneradius = Raggio di Generazione:[lightgray] (blocchi)
rules.respawns = Rigenerazioni per ondata max
-rules.limitedRespawns = Limite rigenerazioni
+rules.limitedRespawns = Limite Rigenerazioni
rules.title.waves = Ondate
rules.title.respawns = Rigenerazioni
-rules.title.resourcesbuilding = Risorse e costruzioni
+rules.title.resourcesbuilding = Risorse e Costruzioni
rules.title.player = Giocatori
rules.title.enemy = Nemici
rules.title.unit = Unità
rules.title.experimental = Sperimentale
rules.lighting = Illuminazione
-rules.ambientlight = Illuminazione Ambientale
+rules.ambientlight = Illuminazione\nAmbientale
content.item.name = Oggetti
content.liquid.name = Liquidi
@@ -806,33 +825,33 @@ mech.trident-ship.weapon = Valle delle Bombe
mech.glaive-ship.name = Glaive
mech.glaive-ship.weapon = Ripetitore di Fiamma
item.corestorable = [lightgray]Immagazzinabili nel Nucleo: {0}
-item.explosiveness = [LIGHT_GRAY]Esplosività: {0}
-item.flammability = [LIGHT_GRAY]Infiammabilità: {0}
-item.radioactivity = [LIGHT_GRAY]Radioattività: {0}
-unit.health = [LIGHT_GRAY]Salute: {0}
-unit.speed = [LIGHT_GRAY]Velocità: {0}
-mech.weapon = [LIGHT_GRAY]Armi: {0}
-mech.health = [LIGHT_GRAY]Salute: {0}
-mech.itemcapacity = [LIGHT_GRAY]Capacità Oggetti: {0}
-mech.minespeed = [LIGHT_GRAY]Velocità di Scavo: {0}
-mech.minepower = [LIGHT_GRAY]Potenza di Scavo: {0}
-mech.ability = [LIGHT_GRAY]Abilità: {0}
-mech.buildspeed = [LIGHT_GRAY]Velocità di Costruzione: {0}%
-liquid.heatcapacity = [LIGHT_GRAY]Capacità Termica: {0}
-liquid.viscosity = [LIGHT_GRAY]Viscosità: {0}
-liquid.temperature = [LIGHT_GRAY]Temperatura: {0}
+item.explosiveness = [lightgray]Esplosività: {0}
+item.flammability = [lightgray]Infiammabilità: {0}
+item.radioactivity = [lightgray]Radioattività: {0}
+unit.health = [lightgray]Salute: {0}
+unit.speed = [lightgray]Velocità: {0}
+mech.weapon = [lightgray]Armi: {0}
+mech.health = [lightgray]Salute: {0}
+mech.itemcapacity = [lightgray]Capacità Oggetti: {0}
+mech.minespeed = [lightgray]Velocità di Scavo: {0}
+mech.minepower = [lightgray]Potenza di Scavo: {0}
+mech.ability = [lightgray]Abilità: {0}
+mech.buildspeed = [lightgray]Velocità di Costruzione: {0}%
+liquid.heatcapacity = [lightgray]Capacità Termica: {0}
+liquid.viscosity = [lightgray]Viscosità: {0}
+liquid.temperature = [lightgray]Temperatura: {0}
block.sand-boulder.name = Masso di Sabbia
block.grass.name = Erba
block.salt.name = Sale
-block.saltrocks.name = Rocce salate
+block.saltrocks.name = Rocce Salate
block.pebbles.name = Ciottoli
block.tendrils.name = Viticci
block.sandrocks.name = Rocce Sabbiose
block.spore-pine.name = Pino di Spore
block.sporerocks.name = Roccia di Spore
-block.rock.name = Roccia
-block.snowrock.name = Roccia Innevata
+block.rock.name = Masso
+block.snowrock.name = Masso Innevato
block.snow-pine.name = Pino Innevato
block.shale.name = Scisto
block.shale-boulder.name = Masso di Scisto
@@ -848,7 +867,7 @@ block.thruster.name = Propulsore
block.kiln.name = Forno
block.graphite-press.name = Pressa per Grafite
block.multi-press.name = Multi Pressa
-block.constructing = {0}\n[LIGHT_GRAY](In Costruzione)
+block.constructing = {0}\n[lightgray](In Costruzione)
block.spawn.name = Spawn Nemico
block.core-shard.name = Nucleo: Frammento
block.core-foundation.name = Nucleo: Fondamento
@@ -865,7 +884,7 @@ block.ice.name = Ghiaccio
block.snow.name = Neve
block.craters.name = Crateri
block.sand-water.name = Acqua Sabbiosa
-block.darksand-water.name = Acqua Sabbiosa scura
+block.darksand-water.name = Acqua Sabbiosa Scura
block.char.name = Carbone
block.holostone.name = Pietra Holo
block.ice-snow.name = Neve Ghiacciata
@@ -877,32 +896,32 @@ block.pine.name = Pino
block.white-tree-dead.name = Albero Bianco Morto
block.white-tree.name = Albero Morto
block.spore-cluster.name = Agglomerato di Spore
-block.metal-floor.name = Pavimento Metallico
+block.metal-floor.name = Pavimento Metallico 1
block.metal-floor-2.name = Pavimento Metallico 2
block.metal-floor-3.name = Pavimento Metallico 3
block.metal-floor-5.name = Pavimento Metallico 4
block.metal-floor-damaged.name = Pavimento Metallico Danneggiato
-block.dark-panel-1.name = Pannello scuro 1
-block.dark-panel-2.name = Pannello scuro 2
-block.dark-panel-3.name = Pannello scuro 3
-block.dark-panel-4.name = Pannello scuro 4
-block.dark-panel-5.name = Pannello scuro 5
-block.dark-panel-6.name = Pannello scuro 6
+block.dark-panel-1.name = Pannello Scuro 1
+block.dark-panel-2.name = Pannello Scuro 2
+block.dark-panel-3.name = Pannello Scuro 3
+block.dark-panel-4.name = Pannello Scuro 4
+block.dark-panel-5.name = Pannello Scuro 5
+block.dark-panel-6.name = Pannello Scuro 6
block.dark-metal.name = Metallo Scuro
block.ignarock.name = Roccia Ignea
block.hotrock.name = Roccia Bollente
block.magmarock.name = Roccia Magmatica
block.cliffs.name = Scogliere
block.copper-wall.name = Muro di Rame
-block.copper-wall-large.name = Muro Grande di Rame
+block.copper-wall-large.name = Muro di Rame Grande
block.titanium-wall.name = Muro di Titanio
-block.titanium-wall-large.name = Muro Grande di Titanio
+block.titanium-wall-large.name = Muro di Titanio Grande
block.plastanium-wall.name = Muro di Plastanio
-block.plastanium-wall-large.name = Muro Grande di Plastanio
+block.plastanium-wall-large.name = Muro di Plastanio Grande
block.phase-wall.name = Muro di Fase
-block.phase-wall-large.name = Muro Grande di Fase
+block.phase-wall-large.name = Muro di Fase Grande
block.thorium-wall.name = Muro di Torio
-block.thorium-wall-large.name = Muro Grande di Torio
+block.thorium-wall-large.name = Muro di Torio Grande
block.door.name = Porta
block.door-large.name = Porta Grande
block.duo.name = Torretta Duo
@@ -945,7 +964,7 @@ block.impact-reactor.name = Reattore ad Impatto
block.mechanical-drill.name = Trivella Meccanica
block.pneumatic-drill.name = Trivella Pneumatica
block.laser-drill.name = Trivella Laser
-block.water-extractor.name = Estrattore d'acqua
+block.water-extractor.name = Estrattore d'Acqua
block.cultivator.name = Coltivatore
block.dart-mech-pad.name = Piattaforma del Mech Dardo
block.delta-mech-pad.name = Piattaforma del Mech Delta
@@ -959,6 +978,7 @@ block.mechanical-pump.name = Pompa Meccanica
block.item-source.name = Fonte Infinita (oggetti)
block.item-void.name = Cestino (oggetti)
block.liquid-source.name = Fonte Infinita (liquidi)
+block.liquid-void.name = Cestino (liquidi)
block.power-void.name = Cestino (energia)
block.power-source.name = Fonte Infinita (energia)
block.unloader.name = Scaricatore
@@ -987,12 +1007,13 @@ block.titan-factory.name = Fabbrica Mech Titano
block.fortress-factory.name = Fabbrica Mech Fortezza
block.revenant-factory.name = Fabbrica Combattenti Superstiti
block.repair-point.name = Punto di Riparazione
-block.pulse-conduit.name = Condotto Attiva
-block.phase-conduit.name = Condotta di Fase
+block.pulse-conduit.name = Condotto a Impulsi
+block.plated-conduit.name = Condotto Placcato
+block.phase-conduit.name = Condotto di Fase
block.liquid-router.name = Distributore di Liquidi
block.liquid-tank.name = Serbatoio
block.liquid-junction.name = Giunzione Liquida
-block.bridge-conduit.name = Condotta Sopraelevata
+block.bridge-conduit.name = Condotto Sopraelevato
block.rotary-pump.name = Pompa a Turbina
block.thorium-reactor.name = Reattore al Torio
block.mass-driver.name = Lancia Materiali
@@ -1039,31 +1060,31 @@ unit.eradicator.name = Estirpatore
unit.lich.name = Lich
unit.reaper.name = Mietitore
tutorial.next = [lightgray]
-tutorial.intro = Sei entrato nel[scarlet] Tutorial di Mindustry.[]\nInizia[accent] scavando rame[]. Clicca un minerale di rame vicino al tuo Nucleo per farlo.\n\n[accent]{0}/{1} rame
-tutorial.intro.mobile = You have entered the[scarlet] Mindustry Tutorial.[]\nSwipe the screen to move.\n[accent]Pinch with 2 fingers [] to zoom in and out.\nBegin by[accent] mining copper[]. Move close to it, then tap a copper ore vein near your core to do this.\n\n[accent]{0}/{1} copper
-tutorial.drill = Ora crea una trivella.\n[accent]Le trivelle []scavano da sole e sono più efficienti. Piazzane una su un minerale di rame.
-tutorial.drill.mobile = Ora crea una trivella. \n[accent] Le trivelle []scavano da sole e sono più efficienti. \n Toccare la scheda della trivella in basso a destra. \n Selezionare la trivella meccanica [accent] []. \n Posizionarlo su una vena di rame toccando, quindi premere il segno di spunta [accent] [] in basso per confermare la selezione. \n Premere il tasto X [accent] [] per annullare il posizionamento.
-tutorial.blockinfo = Ogni blocco ha statistiche diverse. Alcuni minerali richiedono trivelle specifiche.\nPer controllare le informazioni e le statistiche di un blocco, [accent] tocca "?" mentre lo selezioni nel database. []\n\n[accent]Accedi ora alle statistiche della trivella meccanica. []
-tutorial.conveyor = [accent]I nastri trasportatori []sono usati per trasportare oggetti al Nucleo. \nCrea una linea di nastri dalla trivella al Nucleo.
-tutorial.conveyor.mobile = [accent] I nastri trasportatori [] sono usati per trasportare oggetti nel nocciolo. \nCrea una linea di nastri trasportatori dalla trivella al nocciolo. \n[accent] Posizionati in una linea tenendo premuto il dito per alcuni secondi [] e trascinando in una direzione. \n\n [accent] {0} / {1} nastri trasportatori disposti in linea \n [accent] 0/1 oggetti consegnati
-tutorial.turret = Costruisci delle torrette per respingere il nemico [LIGHT_GRAY] []. \nCostruisci una torretta Duo vicino alla tua base.
+tutorial.intro = Sei entrato nel[scarlet] Tutorial di Mindustry.[]\nUsa[accent] [[WASD][] per muoverti.\n[accent]Scorri[] per eseguire lo zoom.\nInizia[accent] minando il rame[]. Per farlo, posizionati sulla vena di rame vicina al tuo Nucleo e clicca su di essa.\n\n[accent]{0}/{1} rame
+tutorial.intro.mobile = Sei entrato nel[scarlet] Tutorial di Mindustry.[]\nScorri sullo schermo per muoverti.\n[accent]Avvicina due dita[] per eseguire lo zoom in/out.\nInizia [accent] scavando del rame[]. Clicca un minerale di rame vicino al tuo Nucleo per farlo.\n\n[accent]{0}/{1} rame
+tutorial.drill = Ora crea una trivella.\n[accent]Le trivelle[] scavano da sole e sono più efficienti. Piazzane una su un minerale di rame.
+tutorial.drill.mobile = Ora crea una trivella.\n[accent]Le trivelle[] scavano da sole e sono più efficienti.\nTocca la scheda della trivella in basso a destra.\nSeleziona la [accent]Trivella Meccanica[].\nPiazzala su una vena di rame toccando, quindi premi il [accent]segno di spunta[] in basso per confermare la selezione.\nCon il tasto [accent]X[] puoi annullare il posizionamento.
+tutorial.blockinfo = Ogni blocco ha statistiche diverse. Alcuni minerali richiedono trivelle specifiche.\nPer controllare le informazioni e le statistiche di un blocco, [accent] tocca "?" mentre lo selezioni nel database.[]\n\n[accent]Accedi ora alle statistiche della trivella meccanica.[]
+tutorial.conveyor = [accent]I nastri trasportatori []sono usati per trasportare oggetti al Nucleo.\nCrea una linea di nastri dalla trivella al Nucleo.
+tutorial.conveyor.mobile = [accent]I nastri trasportatori[] sono usati per trasportare oggetti nel Nucleo.\nCrea una linea di nastri trasportatori dalla trivella al Nucleo.\n[accent]Piazzali in linea tenendo premuto per qualche secondo e trascinando il dito in una direzione.\n\n[accent]Piazza 2 nastri trasportatori con lo strumento linea, quindi trasporta un oggetto fino al Nucleo.
+tutorial.turret = Costruisci delle torrette per respingere il nemico[lightgray][].\nCostruisci una torretta Duo vicino alla tua base.
tutorial.drillturret = La Torretta Duo richiede[accent] munizioni di rame[] per sparare.\nPosiziona una trivella e collega un nastro alla torretta per rifornirla di munizioni con il rame estratto.
-tutorial.pause = Durante la battaglia, puoi mettere in pausa il gioco [accent]. []\nPuoi disporre gli edifici mentre sei in pausa. \n\n[accent]Premi spazio per mettere in pausa.
-tutorial.pause.mobile = Durante la battaglia, puoi mettere in pausa il gioco [accent]. []\nPuoi disporre gli edifici mentre sei in pausa. \n\n[accent] Premi questo pulsante in alto a sinistra per mettere in pausa.
+tutorial.pause = Durante la battaglia puoi[accent] mettere in pausa il gioco.[]\nPuoi disporre gli edifici mentre il gioco è in pausa.\n\nPer mettere in pausa, premi [accent]spazio[].
+tutorial.pause.mobile = Durante la battaglia puoi[accent] mettere in pausa il gioco.[]\nPuoi disporre gli edifici mentre il gioco è in pausa.\n\nPer mettere in pausa, premi il bottone in alto a sinistra.
tutorial.unpause = Ora premi di nuovo spazio per annullare la pausa.
tutorial.unpause.mobile = Ora premilo di nuovo per annullare la pausa.
-tutorial.breaking = I blocchi spesso devono essere distrutti. \n [accent]Tieni premuto il tasto destro del mouse [] per distruggere tutti i blocchi in una selezione. []\n[accent]Distruggi tutti i blocchi di scarto a sinistra del tuo Nucleo usando la selezione dell'area .
-tutorial.breaking.mobile = I blocchi spesso devono essere distrutti. \n [accent] Seleziona la modalità di decostruzione [], quindi tocca un blocco per iniziare a smantellarlo. \n Distruggi un'area tenendo premuto il dito per alcuni secondi [] e trascinando in una direzione.\nPremi il pulsante con il segno di spunta per confermare la rimozione. \n\n [accent] Distruggi tutti i blocchi di scarto a sinistra del tuo Nucleo usando la selezione dell'area.
-tutorial.withdraw = In alcune situazioni, è necessario prendere gli oggetti direttamente dai blocchi.\nPer fare ciò, [accent] tocca un blocco []con oggetti al suo interno, quindi [accent] tocca l'oggetto [] nell'inventario. \nPuoi prelevare più oggetti insieme[accent]tenendo premuto il tasto sinistro del mouse[].\n[accent]Preleva un po' di rame dal Nucleo. []
-tutorial.deposit = Deposita tutti gli oggetti che trasporti trascinandoli dalla tua nave al blocco di destinazione. \n[accent]Rimetti il rame nel Nucleo. []
-tutorial.waves = Il nemico [LIGHT_GRAY] si avvicina.\nDifendi il tuo Nucleo per 2 ondate. Costruisci più torrette. Puoi sparare tenendo premuto il tasto sinistro del mouse.
-tutorial.waves.mobile = Il [lightgray] nemico si avvicina.\n\n Difendi il Nucleo per 2 ondate. La tua nave sparerà automaticamente contro i nemici.\nCostruisci più torrette.
-tutorial.launch = Una volta raggiunta un'ondata specifica, sarai in grado di [accent] decollare con il Nucleo [], lasciando la zona e abbandonando le tue difese e le tue strutture\nOtterrai [accent]tutte le risorse nel tuo Nucleo[] e potrai quindi usarle per ricercare nuove tecnologie.\n\n [accent]Decolla e conferma per terminare il tutorial.
+tutorial.breaking = I blocchi spesso devono essere distrutti.\n[accent]Tieni premuto il tasto destro del mouse []per distruggere tutti i blocchi in una selezione.[]\n[accent]Distruggi tutti i blocchi di scarto a sinistra del tuo Nucleo usando la selezione dell'area.
+tutorial.breaking.mobile = I blocchi spesso devono essere distrutti.\n[accent]Seleziona la modalità di decostruzione[], quindi tocca un blocco per iniziare a smantellarlo.\nDistruggi un'area tenendo premuto il dito per alcuni secondi[] e trascinando in una direzione.\nPremi il pulsante con il segno di spunta per confermare la rimozione.\n\n[accent]Distruggi tutti i blocchi di scarto a sinistra del tuo Nucleo usando la selezione dell'area.
+tutorial.withdraw = In alcune situazioni, è necessario prendere gli oggetti direttamente dai blocchi.\nPer fare ciò, [accent]tocca un blocco []con oggetti al suo interno, quindi[accent] tocca l'oggetto []nell'inventario.\nPuoi prelevare più oggetti insieme[accent]tenendo premuto il tasto sinistro del mouse[].\n[accent]Preleva un po' di rame dal Nucleo.[]
+tutorial.deposit = Deposita tutti gli oggetti che trasporti trascinandoli dalla tua nave al blocco di destinazione.\n[accent]Rimetti il rame nel Nucleo. []
+tutorial.waves = [lightgray]Il nemico si avvicina.\nDifendi il tuo Nucleo per 2 ondate. Costruisci più torrette. Puoi sparare tenendo premuto il tasto sinistro del mouse.
+tutorial.waves.mobile = [lightgray]Il nemico si avvicina.\n\nDifendi il Nucleo per 2 ondate. La tua nave sparerà automaticamente contro i nemici.\nCostruisci più torrette.
+tutorial.launch = Una volta raggiunta un'ondata specifica, sarai in grado di [accent]decollare con il Nucleo[], lasciando la zona e abbandonando le tue difese e le tue strutture\nOtterrai [accent]tutte le risorse nel tuo Nucleo[] e potrai quindi usarle per ricercare nuove tecnologie.\n\n[accent]Decolla e conferma per terminare il tutorial.
-item.copper.description = Un utile materiale, usato dappertutto
-item.lead.description = Un materiale di base, molto usato nei blocchi di trasporto.
-item.metaglass.description = Un durissimo composto di vetro. Estensivamente usato per trasporto di liquidi ed immagazzinamento.
-item.graphite.description = Carbone mineralizzato, utilizzato per munizioni ed isolamento elettrico.
+item.copper.description = Un materiale utile, usato dappertutto.
+item.lead.description = Un materiale di base, molto usato nei blocchi per il trasporto.
+item.metaglass.description = Un durissimo composto di vetro. Ampiamente usato per trasporto di liquidi ed immagazzinamento.
+item.graphite.description = Carbone mineralizzato, utilizzato per munizioni e componenti elettrici.
item.sand.description = Un materiale di base che viene usato molto nei processi di fusione, sia come lega che come reagente.
item.coal.description = Un combustibile comune facilmente ottenibile.
item.titanium.description = Un raro metallo incredibilmente leggero usato ampiamente nella costruzione di trasporti, trivelle e navi.
@@ -1079,12 +1100,12 @@ item.pyratite.description = Una sostanza molto infiammabile che viene utilizzata
liquid.water.description = Il liquido più utile. Comunemente usato per il raffreddamento di macchinari ed il trattamento dei rifiuti.
liquid.slag.description = Diversi tipi di metalli fusi, mescolati insieme. Può essere separato nei suoi minerali costituenti o spruzzato sulle unità nemiche come un'arma.
liquid.oil.description = Un liquido usato nella produzione avanzata.\nPuò essere convertito in carbone per uso combustibile o spruzzato ed incendiato come arma.
-liquid.cryofluid.description = Un liquido inerte e non corrosivo creato da acqua e titanio.\nIl liquido più efficiente per il raffreddamento.
+liquid.cryofluid.description = Un liquido inerte e non corrosivo creato da acqua e titanio.\nÈ il liquido più efficiente per il raffreddamento.
mech.alpha-mech.description = Il mech standard. È abbastanza veloce e produce abbastanza danni, può anche generare 3 droni per aumentare il suo danno complessivo.
mech.delta-mech.description = Un mech veloce, poco armato fatto per giocare a tocca e fuga con il nemico. Fa poco danno alle strutture, ma può uccidere un gran nummero di nemici grazie alle sue armi ad alto voltaggio.
mech.tau-mech.description = Un mech di supporto. Cura i blocchi danneggiati sparandogli contro. Può spegnere fuochi e curare i compagni di squadra.
mech.omega-mech.description = Un mech ingombrante e ben armato, fatto per stare in prima linea. La sue difese possono bloccare fino al 90% dei danni.
-mech.dart-ship.description = Una navicella standard. Molto veloce e leggera, ma può minare pochi blocchi ed ha scarse potenzialità nella difesa.
+mech.dart-ship.description = La navicella standard. Scava velocemente. Veloce e leggera, ma con scarse potenzialità nella difesa.
mech.javelin-ship.description = Una navetta da tocca e fuga. Anche se inizialmente lenta, può accelerare ad alte velocità e volare sopra gli avamposti dei nemici, e provocare molti danni ai nemici tramite l'utilizzo di fulmini o missili.
mech.trident-ship.description = Un bombardiere pesante. Molto ben protetto.
mech.glaive-ship.description = Una grande e ben armata macchina da guerra. Equipaggiata con lanciafamme e con accelerazione veloce.
@@ -1099,7 +1120,7 @@ unit.eruptor.description = Un mech pesante progettato per abbattere le strutture
unit.wraith.description = Un'unità d'intercezione rapida ed efficiente.
unit.ghoul.description = Un bombardiere pesante. Utilizza composti esplosivi o pirite come munizioni.
unit.revenant.description = Un pesante lanciamissili volante.
-block.message.description = Stores a message. Used for communication between allies.
+block.message.description = Memorizza un messaggio. Utilizzato per la comunicazione tra alleati.
block.graphite-press.description = Comprime pezzi di carbone in fogli di grafite puri.
block.multi-press.description = Una versione aggiornata della pressa per grafite. Impiega acqua ed energia per elaborare il carbone in modo rapido ed efficiente.
block.silicon-smelter.description = Fonde sabbia e carbone riscaldati per ottenere silicio.
@@ -1108,7 +1129,7 @@ block.plastanium-compressor.description = Produce plastanio da petrolio e titani
block.phase-weaver.description = Produce tessuto di fase da torio radioattivo ed elevate quantità di sabbia.
block.alloy-smelter.description = Produce leghe di sovratensione da titanio, piombo, silicio e rame.
block.cryofluidmixer.description = Combina acqua e titanio in criofluido che è molto più efficiente per il raffreddamento.
-block.blast-mixer.description = Frantuma e mescola le spore con la pirite per produrre Composto Esplosivo.
+block.blast-mixer.description = Frantuma e mescola le spore con la pirite per produrre composto esplosivo.
block.pyratite-mixer.description = Mescola carbone, piombo e sabbia in pirite altamente infiammabile.
block.melter.description = Riscalda la pietra a temperature molto elevate per ottenere scoria liquida.
block.separator.description = Sottopone le scoria a centrifugazione per ottenere i vari minerali contenuti.
@@ -1121,50 +1142,53 @@ block.power-source.description = Produce energia infinita, esiste solo nella mod
block.item-source.description = Produce oggetti infiniti, esiste solo nella modalità creativa.
block.item-void.description = Elimina gli oggetti che vi entrano senza bisogno di energia, esiste solo nella modalità creativa.
block.liquid-source.description = Emette continuamente liquidi. Esiste solo nella modalità creativa.
+block.liquid-void.description = Elimina i liquidi in entrata, esiste solo nella modalità creativa.
block.copper-wall.description = Un blocco difensivo economico.\nUtile per proteggere il Nucleo e le torrette nelle prime ondate.
-block.copper-wall-large.description = Un blocco difensivo economico.\nUtile per proteggere il Nucleo e le torrette nelle prime ondate. \nOccupa più tessere.
+block.copper-wall-large.description = Un blocco difensivo economico.\nUtile per proteggere il Nucleo e le torrette nelle prime ondate.\nOccupa più blocchi.
block.titanium-wall.description = Un blocco difensivo moderatamente forte.\nFornisce una protezione moderata dai nemici.
-block.titanium-wall-large.description = Un blocco difensivo moderatamente forte.\nFornisce una protezione moderata dai nemici. \nOccupa più blocchi
+block.titanium-wall-large.description = Un blocco difensivo moderatamente forte.\nFornisce una protezione moderata dai nemici.\nOccupa più blocchi
block.plastanium-wall.description = Un tipo speciale di muro che assorbe gli archi elettrici e blocca le connessioni automatiche del nodo d'energia.
block.plastanium-wall-large.description = Un tipo speciale di muro che assorbe gli archi elettrici e blocca le connessioni automatiche dei nodi d'energia.\nSi estende su più blocchi.
block.thorium-wall.description = Un forte blocco difensivo.\nBuona protezione dai nemici.
-block.thorium-wall-large.description = Un forte blocco difensivo.\nBuona protezione dai nemici.\nOccupa più blocchi
+block.thorium-wall-large.description = Un forte blocco difensivo.\nBuona protezione dai nemici.\nOccupa più blocchi.
block.phase-wall.description = Non è forte come un muro di torio, ma devia i proiettili a meno che non siano troppo potenti.
-block.phase-wall-large.description = Non è forte come un muro di torio, ma devia i proiettili a meno che non siano troppo potenti.\nOccupa più blocchi
-block.surge-wall.description = Il blocco difensivo più forte. \nHa una piccola possibilità di innescare un fulmine verso l'attaccante.
-block.surge-wall-large.description = Il blocco difensivo più forte. \n Ha una piccola possibilità di innescare un fulmine verso l'attaccante.\nOccupa più blocchi
-block.door.description = Una piccola porta che può essere aperta e chiusa toccandola. \nSe aperta, i nemici possono sparare ed attraversare.
-block.door-large.description = Una grande porta che può essere aperta e chiusa toccandola. \nSe aperta, i nemici possono sparare ed attraversare. \nOccupa più blocchi
+block.phase-wall-large.description = Non è forte come un muro di torio, ma devia i proiettili a meno che non siano troppo potenti.\nOccupa più blocchi.
+block.surge-wall.description = Il blocco difensivo più forte.\nHa una piccola possibilità di innescare un fulmine verso l'attaccante.
+block.surge-wall-large.description = Il blocco difensivo più forte.\nHa una piccola possibilità di innescare un fulmine verso l'attaccante.\nOccupa più blocchi.
+block.door.description = Una piccola porta che può essere aperta e chiusa toccandola.\nSe aperta, i nemici possono sparare ed attraversare.
+block.door-large.description = Una grande porta che può essere aperta e chiusa toccandola.\nSe aperta, i nemici possono sparare ed attraversare.\nOccupa più blocchi.
block.mender.description = Ripara periodicamente blocchi nelle vicinanze.\nUtilizza del silicio per aumentarne portata ed efficienza.
block.mend-projector.description = Ripara periodicamente blocchi nelle vicinanze.\nUtilizza del tessuto di fase per aumentarne portata ed efficienza.
block.overdrive-projector.description = Aumenta la velocità di edifici vicini come trivelle e nastri trasportatori.
-block.force-projector.description = Crea un campo di forza esagonale attorno a sé, proteggendo gli edifici e le unità all'interno da danni causati da proiettili
+block.force-projector.description = Crea un campo di forza esagonale attorno a sé, proteggendo gli edifici e le unità all'interno da danni causati da proiettili.
block.shock-mine.description = Danneggia i nemici che la calpestano. Quasi invisibile al nemico.
block.conveyor.description = Nastro di base. Sposta gli oggetti in avanti e li deposita automaticamente in altri blocchi. Ruotabile.
block.titanium-conveyor.description = Nastro avanzato. Sposta gli oggetti più velocemente dei nastri standard.
block.junction.description = Permette di incrociare nastri che trasportano materiali diversi in posizioni diverse.
-block.bridge-conveyor.description = Consente il trasporto di oggetti fino a 3 tessere ad un altro nastro sopraelevato.\nPuò passare sopra ad altri blocchi od edifici.
+block.bridge-conveyor.description = Consente il trasporto di oggetti fino a 3 blocchi ad un altro nastro sopraelevato.\nPuò passare sopra ad altri blocchi od edifici.
block.phase-conveyor.description = Nastro avanzato. Consuma energia per teletrasportare gli oggetti su un altro nastro di fase collegato.
block.sorter.description = Divide gli oggetti. Se l'oggetto corrisponde a quello selezionato, Può passare. Altrimenti viene espulso sui lati.
block.inverted-sorter.description = Elabora gli oggetti come uno smistatore standard, ma in uscita dà gli elementi selezionati ai lati.
block.router.description = Accetta gli elementi da una direzione e li emette fino a 3 altre direzioni allo stesso modo. Utile per suddividere i materiali da una fonte a più destinazioni.
block.distributor.description = Un distributore avanzato che divide gli oggetti in altre 7 direzioni allo stesso modo.
-block.overflow-gate.description = Una combinazione di un incrocio e di un distributore , che distribuisce sui suoi lati se in nastro difronte si satura.
-block.mass-driver.description = Ultimo blocco di trasporto di oggetti. Raccoglie diversi oggetti e poi li spara su un'altra Lancia Materiali a lungo raggio.
-block.mechanical-pump.description = Una pompa economica con potenza lenta, ma nessun consumo di energia.
+block.overflow-gate.description = Una combinazione di un incrocio e di un distributore, che distribuisce sui suoi lati se in nastro difronte si satura.
+block.mass-driver.description = Ultimo blocco di trasporto di oggetti. Raccoglie diversi oggetti e poi li spara su un'altra Lìlancia materiali a lungo raggio.
+block.mechanical-pump.description = Una pompa economica a bassa efficienza, ma nessun consumo di energia.
block.rotary-pump.description = Una pompa avanzata che raddoppia la velocità consumando energia.
block.thermal-pump.description = La pompa migliore. Tre volte più veloce di una pompa meccanica e l'unica pompa in grado di recuperare la lava.
block.conduit.description = Condotto di base. Funziona come un nastro trasportatore, ma per i liquidi. Ideale per estrattori, pompe o altri condotti.
block.pulse-conduit.description = Condotto avanzato. Trasporta più liquido e più velocemente dei condotti standard.
+block.plated-conduit.description = Trasferisce i liquidi alla stessa velocità del Condotto a Impulsi, ma è più resistente. Non accetta liquidi dai lati da parte di condotti diversi.\nMeno perdite.
block.liquid-router.description = Accetta i liquidi da una direzione e li emette fino a 3 altre direzioni allo stesso modo. Può anche immagazzinare una certa quantità di liquido. Utile per suddividere i liquidi da una fonte verso più destinazioni.
block.liquid-tank.description = Conserva una grande quantità di liquidi. Usalo per creare zone cuscinetto quando c'è una domanda non costante di materiali o come protezione per il raffreddamento di blocchi vitali.
block.liquid-junction.description = Permette di incrociare condotti che trasportano liquidi diversi in posizioni diverse.
-block.bridge-conduit.description = Consente il trasporto di liquidi fino a 3 tessere da un altro condotto sopraelevato.\nPuò passare sopra ad altri blocchi od edifici.
+block.bridge-conduit.description = Consente il trasporto di liquidi fino a 3 blocchi da un altro condotto sopraelevato.\nPuò passare sopra ad altri blocchi od edifici.
block.phase-conduit.description = Condotto avanzato. Consuma energia per teletrasportare i liquidi in un altro condotto di fase collegato.
block.power-node.description = Trasmette energia tra i nodi collegati. È possibile creare fino a quattro collegamenti.\nClicca sul nodo per configurare i collegamenti.
-block.power-node-large.description = Ha un raggio maggiore rispetto al nodo energetico e si possono creare un massimo di sei collegamenti.\nClicca sul nodo per configurare i collegamenti.
+block.power-node-large.description = Ha un raggio maggiore rispetto al Nodo Energetico e si possono creare un massimo di sei collegamenti.\nClicca sul nodo per configurare i collegamenti.
block.surge-tower.description = Un nodo di alimentazione a lungo raggio solo due connessioni disponibili.\nClicca sul nodo per configurare i collegamenti.
-block.battery.description = Accumula energia ogni volta che c'è abbondanza e fornisce energia ogni volta che c'è carenza, purché rimanga carica.
+block.diode.description = L'energia della batteria può attraversare questo blocco in una sola direzione, ma solo se l'altra parte ha meno energia.
+block.battery.description = Accumula energia ogni volta che c'è abbondanza e fornisce energia ogni volta che c'è carenza, purché sia carica.
block.battery-large.description = Immagazzina molta più energia di una normale batteria.
block.combustion-generator.description = Genera energia bruciando combustibile.
block.thermal-generator.description = Genera una grande quantità di energia dalla lava.
@@ -1172,10 +1196,10 @@ block.turbine-generator.description = Più efficiente di un generatore a combust
block.differential-generator.description = Genera grandi quantità di energia. Utilizza la differenza di temperatura tra criofluido e pirite in combustione.
block.rtg-generator.description = Un generatore che sfrutta il calore del decadimento di materiale radioattivo per produrre energia.\nNon richiede raffreddamento ma fornisce meno energia di un reattore al torio.
block.solar-panel.description = Fornisce una piccola quantità di energia dal sole.
-block.solar-panel-large.description = Fornisce un'alimentazione molto migliore rispetto a un pannello solare standard, ma è anche molto più costoso da costruire.
+block.solar-panel-large.description = Fornisce un'alimentazione migliore rispetto a un pannello solare standard, ma è anche molto più costoso da costruire.
block.thorium-reactor.description = Genera enormi quantità di energia dal torio altamente radioattivo. Richiede un raffreddamento costante. Esploderà violentemente se vengono fornite quantità insufficienti di refrigerante.
block.impact-reactor.description = Un generatore avanzato, in grado di creare enormi quantità di energia alla massima efficienza. Richiede un significativo apporto di energia per avviare il processo.
-block.mechanical-drill.description = Una trivella economica. Se posizionato su riquadri appropriati, estrae minerali a un ritmo lento e costante.
+block.mechanical-drill.description = Una trivella economica. Se posizionata su slot appropriati, estrae minerali a un ritmo lento e costante.
block.pneumatic-drill.description = Una trivella migliorata più veloce ed in grado di elaborare materiali più duri sfruttando la pressione dell'aria.
block.laser-drill.description = Consente di perforare ancora più velocemente attraverso la tecnologia laser, ma richiede energia. Inoltre, con questa trivella è possibile recuperare il torio radioattivo.
block.blast-drill.description = La trivella migliore. Richiede grandi quantità di energia.
@@ -1185,9 +1209,9 @@ block.oil-extractor.description = Utilizza grandi quantità di energia per estra
block.core-shard.description = La prima iterazione del Nucleo. Una volta distrutto, tutti i contatti con la regione vengono persi. Non lasciare che questo accada.
block.core-foundation.description = La seconda versione del Nucleo. Meglio corazzato. Immagazzina più risorse.
block.core-nucleus.description = La terza ed ultima versione del Nucleo. Estremamente ben corazzato. Immagazzina enormi quantità di risorse.
-block.vault.description = Immagazzina una grande quantità di oggetti. Usalo per creare zone cuscinetto quando c'è una domanda non costante di materiali. Uno [LIGHT_GRAY]scaricatore[] può essere utilizzato per recuperare elementi dal deposito.
-block.container.description = Immagazzina una piccola quantità di oggetti. Usalo per creare zone cuscinetto quando c'è una domanda non costante di materiali. Uno [LIGHT_GRAY]scaricatore[] può essere utilizzato per recuperare elementi dal contenitore.
-block.unloader.description = Scarica gli oggetti da un contenitore, caveau o Nucleo su un trasportatore o direttamente in un blocco adiacente. L'oggetto da scaricare può essere scelto toccando lo scaricatore.
+block.vault.description = Immagazzina una grande quantità di oggetti. Usalo per creare zone cuscinetto quando c'è una domanda non costante di materiali. Uno [lightgray]scaricatore[] può essere utilizzato per recuperare elementi dal deposito.
+block.container.description = Immagazzina una piccola quantità di oggetti. Usalo per creare zone cuscinetto quando c'è una domanda non costante di materiali. Uno [lightgray]scaricatore[] può essere utilizzato per recuperare elementi dal contenitore.
+block.unloader.description = Scarica gli oggetti da un contenitore, deposito o Nucleo su un nastro trasportatore o direttamente in un blocco adiacente. L'oggetto da scaricare può essere scelto toccando lo scaricatore.
block.launch-pad.description = Lancia oggetti nel tuo Nucleo senza necessità di un lasciare la zona.
block.launch-pad-large.description = Una versione migliore dell'Ascensore Spaziale, immagazzina più oggetti. Lancia oggetti più frequentemente.
block.duo.description = Una torretta piccola ed economica.
@@ -1204,22 +1228,22 @@ block.ripple.description = Una grande torretta di artiglieria che spara più col
block.cyclone.description = Una grande torretta a fuoco rapido.
block.spectre.description = Una grande torretta che spara due potenti proiettili contemporaneamente.
block.meltdown.description = Una grande torretta che spara un potente laser a lungo raggio.
-block.command-center.description = Da istruzioni alle unità alleate nella mappa. Comanda la ricongizione, l'attacco del Nucleo nemico o la ritirata verso il proprio Nucleo o fabbrica.\nQuando non è presente un Nucleo nemico, le unità pattuglieranno anche se viene ordinato un attacco.
+block.command-center.description = Dà istruzioni alle unità alleate nella mappa. Comanda la ricongizione, l'attacco del Nucleo Nemico o la ritirata verso il proprio Nucleo o fabbrica.\nQuando non è presente un Nucleo Nemico, le unità pattuglieranno anche se viene ordinato un attacco.
block.draug-factory.description = Produce droni per la raccolta mineraria.
block.spirit-factory.description = Produce droni che riparano blocchi.
block.phantom-factory.description = Produce droni avanzati che seguono il giocatore e lo assistono nella costruzione.
block.wraith-factory.description = Produce unità intercettatrici veloci.
block.ghoul-factory.description = Produce bombardieri pesanti.
-block.revenant-factory.description = Produce unità laser di terra pesanti.
+block.revenant-factory.description = Produce pesanti unità lanciamissili volanti.
block.dagger-factory.description = Produce unità di base corpo a corpo di terra.
block.crawler-factory.description = Produce unità di sciame veloci ed autodistruggenti.
block.titan-factory.description = Produce unità terrestri avanzate e corazzate.
block.fortress-factory.description = Produce unità di terra di artiglieria pesante.
block.repair-point.description = Cura continuamente l'unità danneggiata più vicina.
-block.dart-mech-pad.description = Trasforma la tua nave in un mech di attacco di base. \nUsa il blocco toccando due volte mentre ti trovi su di esso.
-block.delta-mech-pad.description = Trasforma la tua nave in un mech veloce e leggermente corazzato, ideale per colpire e scappare. \nUsa il blocco toccando due volte mentre ti ci trovi sopra.
-block.tau-mech-pad.description = Trasforma la tua nave in un mech di supporto in grado di curare edifici ed unità alleate. \n Usa il blocco toccando due volte mentre sei in piedi su di esso.
-block.omega-mech-pad.description = Trasforma la tua nave in un mech voluminoso e ben corazzato, creato per gli assalti in prima linea. \nUsa il blocco toccando due volte mentre sei in piedi su di esso.
+block.dart-mech-pad.description = Trasforma la tua nave in un mech di attacco di base.\nUsa il blocco toccando due volte mentre ti trovi su di esso.
+block.delta-mech-pad.description = Trasforma la tua nave in un mech veloce e leggermente corazzato, ideale per colpire e scappare.\nUsa il blocco toccando due volte mentre ti trovi su di esso.
+block.tau-mech-pad.description = Trasforma la tua nave in un mech di supporto in grado di curare edifici ed unità alleate.\nUsa il blocco toccando due volte mentre ti trovi su di esso.
+block.omega-mech-pad.description = Trasforma la tua nave in un mech voluminoso e ben corazzato, creato per gli assalti in prima linea.\nUsa il blocco toccando due volte mentre ti trovi su di esso.
block.javelin-ship-pad.description = Trasforma la tua nave in un intercettore forte e veloce con armi elettriche.\nUsa il blocco toccando due volte mentre ti trovi su di esso.
-block.trident-ship-pad.description = Trasforma la tua nave in un bombardiere pesante e ben corazzato. \nUsa il blocco toccando due volte mentre ti trovi su di esso.
-block.glaive-ship-pad.description = Trasforma la tua nave in una nave grande e ben corazzata. \nUsa il blocco toccando due volte mentre ti trovi su di esso.
+block.trident-ship-pad.description = Trasforma la tua nave in un bombardiere pesante e ben corazzato.\nUsa il blocco toccando due volte mentre ti trovi su di esso.
+block.glaive-ship-pad.description = Trasforma la tua nave in una nave grande e ben corazzata.\nUsa il blocco toccando due volte mentre ti trovi su di esso.
diff --git a/core/assets/bundles/bundle_ja.properties b/core/assets/bundles/bundle_ja.properties
index 2d3db1916e..9fc952977a 100644
--- a/core/assets/bundles/bundle_ja.properties
+++ b/core/assets/bundles/bundle_ja.properties
@@ -10,7 +10,9 @@ link.dev-builds.description = 不安定な開発版
link.trello.description = 公式 Trelloボード で実装予定の機能をチェック
link.itch.io.description = itch.io でゲームをダウンロード
link.google-play.description = Google Play ストアを開く
+link.f-droid.description = F-Droid catalogue listing
link.wiki.description = 公式 Mindustry Wiki
+link.feathub.description = Suggest new features
linkfail = リンクを開けませんでした!\nURLをクリップボードにコピーしました。
screenshot = スクリーンショットを {0} に保存しました。
screenshot.invalid = マップが広すぎます。スクリーンショットに必要なメモリが足りない可能性があります。
@@ -18,12 +20,22 @@ gameover = ゲームオーバー
gameover.pvp = [accent] {0}[] チームの勝利!
highscore = [accent]ハイスコアを更新!
copied = コピーしました。
+
load.sound = サウンド
load.map = マップ
load.image = 画像
load.content = コンテンツ
load.system = システム
load.mod = MOD
+load.scripts = Scripts
+
+be.update = A new Bleeding Edge build is available:
+be.update.confirm = Download it and restart now?
+be.updating = Updating...
+be.ignore = Ignore
+be.noupdates = No updates found.
+be.check = Check for updates
+
schematic = 設計図
schematic.add = 設計図を保存しています...
schematics = 設計図一覧
@@ -40,6 +52,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 +60,7 @@ stat.destroyed = 破壊した建造物数:[accent] {0}
stat.deconstructed = 解体した建造物数:[accent] {0}
stat.delivered = 獲得した資源:
stat.rank = 最終ランク: [accent]{0}
+
launcheditems = [accent]回収したアイテム
launchinfo = [unlaunched][[LAUNCH] your core to obtain the items indicated in blue.
map.delete = マップ "[accent]{0}[]" を削除してもよろしいですか?
@@ -74,6 +88,7 @@ maps.browse = マップを閲覧する
continue = 続ける
maps.none = [lightgray]マップが見つかりませんでした!
invalid = 無効
+pickcolor = Pick Color
preparingconfig = 設定ファイルを準備中
preparingcontent = コンテンツを準備中
uploadingcontent = コンテンツをアップロードしています
@@ -81,6 +96,7 @@ uploadingpreviewfile = プレビューファイルをアップロードしてい
committingchanges = 変更を適応中
done = 完了
feature.unsupported = あなたのデバイスはこの機能をサポートしていません。
+
mods.alphainfo = Mods機能は実験的なものです。[scarlet] エラーが含まれている可能性があります[]。\n 発見した問題をMindustry GitHubに報告してください。
mods.alpha = [accent](Alpha)
mods = Mods
@@ -92,18 +108,25 @@ mod.enabled = [lightgray]有効
mod.disabled = [scarlet]無効
mod.disable = 無効化
mod.delete.error = MODを削除することができませんでした。
+mod.requiresversion = [scarlet]Requires min game version: [accent]{0}
mod.missingdependencies = [scarlet]Missing dependencies: {0}
+mod.erroredcontent = [scarlet]Content Errors
+mod.errors = Errors have occurred loading content.
+mod.noerrorplay = [scarlet]You have mods with errors.[] Either disable the affected mods or fix the errors before playing.
mod.nowdisabled = [scarlet]Mod '{0}' is missing dependencies:[accent] {1}\n[lightgray]These mods need to be downloaded first.\nThis mod will be automatically disabled.
mod.enable = 有効化
mod.requiresrestart = このModをインストールするためにはゲームの再起動が必要です。
mod.reloadrequired = [scarlet]Modを有効にするには、この画面を開き直してください。
mod.import = Modをインポート
mod.import.github = GitHubからMODを読み込む
+mod.item.remove = This item is part of the[accent] '{0}'[] mod. To remove it, uninstall that mod.
mod.remove.confirm = このModを削除します。
mod.author = [LIGHT_GRAY]著者:[] {0}
mod.missing = このセーブには、アップグレードされた可能性があるModsか、ここに存在しないModsが必要です。 メモリのセーブを保存する! ロードしてもよろしいですか?\n[lightgray]MODS:\n{0}
mod.preview.missing = このModをワークショップで公開するには、Modのプレビュー画像を設定する必要があります。\n[accent] preview.png[] というファイル名の画像をmodsのフォルダに配置し、再試行してください。
mod.folder.missing = ワークショップで公開できるのは、フォルダ形式のModのみとなります。\nModをフォルダ形式に変換するには、ファイルをフォルダに解凍し、古いzipを削除してからゲームを再起動するか、modを再読み込みしてください。
+mod.scripts.unsupported = Your device does not support mod scripts. Some mods will not function correctly.
+
about.button = 情報
name = 名前:
noname = [accent]プレイヤー名[]を入力してください。
@@ -132,6 +155,7 @@ server.kicked.nameEmpty = 無効な名前です。
server.kicked.idInUse = すでにサーバーに参加しています! 二つのアカウントでの同時接続は許可されていません。
server.kicked.customClient = このサーバーはカスタムビルドをサポートしていません。公式版をダウンロードしてください。
server.kicked.gameover = ゲームオーバー!
+server.kicked.serverRestarting = The server is restarting.
server.versions = あなたのバージョン:[accent] {0}[]\nサーバーのバージョン:[accent] {1}[]
host.info = [accent]ホスト[]をすると、ポート[scarlet]6567[]でサーバーが開かれまます。\n同じ[lightgray]WiFiやローカル上のネットワークなど[]ではサーバーリストに表示されるようになります。\n\nIPアドレスで他のところからも接続できるようにするには、[accent]ポート開放[]が必要です。\n\n注意: もしLAN上のゲームに参加できない場合、Mindustryがファイアーウォールの設定でローカルネットワークへの接続が許可されているかを確認してください。
join.info = ここでは、[accent]サーバーのIPアドレス[]から接続したり、[accent]ローカル上[]のサーバーを探したりすることができます。\nLANやWAN上の両方のマルチプレイに対応しています。\n\n[lightgray]注意: 世界中のサーバーの一覧ではありません。他人のサーバーにIPアドレスで接続したい場合は、あらかじめホスト側にIPアドレスをお尋ねください。
@@ -271,6 +295,7 @@ 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}
+
editor.brush = ブラシ
editor.openin = エディターで開く
editor.oregen = 鉱石の生成
@@ -347,6 +372,7 @@ editor.overwrite = [accent]警告!\nすでに存在するマップを上書き
editor.overwrite.confirm = [scarlet]警告![] すでに同じ名前のマップが存在します。上書きしてもよろしいですか?
editor.exists = すでに同じ名前のマップが存在します。
editor.selectmap = 読み込むマップを選択:
+
toolmode.replace = 置きかえ
toolmode.replace.description = 固体ブロックのみに描きます。
toolmode.replaceall = 全て置きかえ
@@ -361,6 +387,7 @@ toolmode.fillteams = チームで埋める
toolmode.fillteams.description = ブロックの代わりにチームで埋めます。
toolmode.drawteams = チームを描く
toolmode.drawteams.description = ブロックの代わりにチームを描きます。
+
filters.empty = [lightgray]フィルターが設定されていません! 下のボタンからフィルターを追加してください。
filter.distort = ゆがみ
filter.noise = ノイズ
@@ -392,6 +419,7 @@ filter.option.floor2 = 2番目の地面
filter.option.threshold2 = 2番目のスレッシュホールド
filter.option.radius = 半径
filter.option.percentile = パーセンタイル
+
width = 幅:
height = 高さ:
menu = メニュー
@@ -407,6 +435,7 @@ tutorial = チュートリアル
tutorial.retake = チュートリアル
editor = エディター
mapeditor = マップエディター
+
abandon = 撤退
abandon.text = このゾーンのすべての資源が敵に奪われます。
locked = ロック
@@ -437,6 +466,7 @@ zone.objective.survival = 敵からコアを守り切る
zone.objective.attack = 敵のコアを破壊する
add = 追加...
boss.health = ボスのHP
+
connectfail = [crimson]サーバーへ接続できませんでした:\n\n[accent]{0}
error.unreachable = サーバーに到達できません。\nアドレスは正しいですか?
error.invalidaddress = 無効なアドレスです。
@@ -447,6 +477,7 @@ error.mapnotfound = マップファイルが見つかりません!
error.io = ネットワークエラーです。
error.any = 不明なネットワークエラーです。
error.bloom = Bloomの初期化に失敗しました。\n恐らくあなたのデバイスではBloomがサポートされていません。
+
zone.groundZero.name = グラウンド · ゼロ
zone.desertWastes.name = デザート · ウェーツ
zone.craters.name = ザ · クレーター
@@ -461,6 +492,7 @@ zone.saltFlats.name = ソルト · フラッツ
zone.impact0078.name = インパクト 0078
zone.crags.name = クラーグス
zone.fungalPass.name = ファングル ・ パス
+
zone.groundZero.description = Mindustryに慣れていない初心者向けのマップです。敵は強くなく、資源も多すぎません。\n出来るだけ多くの銅と鉛を集めるのがポイントです。
zone.frozenForest.description = Even here, closer to mountains, the spores have spread. The frigid temperatures cannot contain them forever.\n\n電力を使用してみましょう。火力発電機を建設し、修復機の使い方を学びましょう。
zone.desertWastes.description = 大量の廃棄物が散乱し、放棄された建造物が存在します。\nこのマップには石炭が存在します。石炭を燃やして発電したり、グラファイトを生成しましょう。\n\n[lightgray]この着陸位置は保証できません。
@@ -475,10 +507,12 @@ zone.nuclearComplex.description = A former facility for the production and proce
zone.fungalPass.description = A transition area between high mountains and lower, spore-ridden lands. A small enemy reconnaissance base is located here.\nDestroy it.\nUse Dagger and Crawler units. Take out the two cores.
zone.impact0078.description =
zone.crags.description =
+
settings.language = 言語
settings.data = ゲームデータ
settings.reset = デフォルトにリセット
settings.rebind = 再設定
+settings.resetKey = Reset
settings.controls = コントロール
settings.game = ゲーム
settings.sound = サウンド
@@ -529,6 +563,7 @@ blocks.inaccuracy = 精度のずれ
blocks.shots = ショット
blocks.reload = ショット/秒
blocks.ammo = 弾薬
+
bar.drilltierreq = より良いドリルが必要です
bar.drillspeed = 採掘速度: {0}/秒
bar.pumpspeed = ポンプの速度: {0}/s
@@ -544,6 +579,9 @@ bar.heat = 熱
bar.power = 電力
bar.progress = 建設状況
bar.spawned = ユニット数: {0}/{1}
+bar.input = Input
+bar.output = Output
+
bullet.damage = [stat]{0}[lightgray] ダメージ
bullet.splashdamage = [stat]{0}[lightgray] 範囲ダメージ 約[stat] {1}[lightgray] タイル
bullet.incendiary = [stat]焼夷弾
@@ -555,6 +593,7 @@ bullet.freezing = [stat]フリーズ
bullet.tarred = [stat]タール弾
bullet.multiplier = [stat]弾薬 {0}[lightgray]倍
bullet.reload = [stat]リロード速度 {0}[lightgray]倍
+
unit.blocks = ブロック
unit.powersecond = 電力/秒
unit.liquidsecond = 液体/秒
@@ -567,6 +606,8 @@ unit.persecond = /秒
unit.timesspeed = 倍の速度
unit.percent = %
unit.items = アイテム
+unit.thousands = k
+unit.millions = mil
category.general = 一般
category.power = 電力
category.liquids = 液体
@@ -579,6 +620,7 @@ setting.shadows.name = 影
setting.blockreplace.name = Automatic Block Suggestions
setting.linear.name = リニアフィルター
setting.hints.name = ヒント
+setting.buildautopause.name = Auto-Pause Building
setting.animatedwater.name = 水のアニメーション
setting.animatedshields.name = シールドのアニメーション
setting.antialias.name = アンチエイリアス[lightgray] (再起動が必要)[]
@@ -601,12 +643,16 @@ setting.screenshake.name = 画面の揺れ
setting.effects.name = 画面効果
setting.destroyedblocks.name = 破壊されたブロックを表示
setting.conveyorpathfinding.name = Conveyor Placement Pathfinding
+setting.coreselect.name = Allow Schematic Cores
setting.sensitivity.name = 操作感度
setting.saveinterval.name = 自動保存間隔
setting.seconds = {0} 秒
+setting.blockselecttimeout.name = Block Select Timeout
+setting.milliseconds = {0} milliseconds
setting.fullscreen.name = フルスクリーン
setting.borderlesswindow.name = 境界の無いウィンドウ[lightgray] (再起動が必要になる場合があります)
setting.fps.name = FPSを表示
+setting.blockselectkeys.name = Show Block Select Keys
setting.vsync.name = VSync
setting.pixelate.name = ピクセル化[lightgray] (アニメーションが無効化されます)
setting.minimap.name = ミニマップを表示
@@ -635,16 +681,36 @@ category.multiplayer.name = マルチプレイ
command.attack = 攻撃
command.rally = Rally
command.retreat = 後退
+placement.blockselectkeys = \n[lightgray]Key: [{0},
keybind.clear_building.name = Clear Building
keybind.press = キーを押してください...
keybind.press.axis = 軸またはキーを押してください...
keybind.screenshot.name = スクリーンショット
+keybind.toggle_power_lines.name = Toggle Power Lasers
keybind.move_x.name = 左右移動
keybind.move_y.name = 上下移動
+keybind.mouse_move.name = Follow Mouse
+keybind.dash.name = ダッシュ
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.category_prev.name = Previous Category
+keybind.category_next.name = Next Category
+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 = フルスクリーンの切り替え
keybind.select.name = 選択/ショット
keybind.diagonal_placement.name = 斜め設置
@@ -657,7 +723,6 @@ keybind.menu.name = メニュー
keybind.pause.name = ポーズ
keybind.pause_building.name = Pause/Resume Building
keybind.minimap.name = ミニマップ
-keybind.dash.name = ダッシュ
keybind.chat.name = チャット
keybind.player_list.name = プレイヤーリスト
keybind.console.name = コンソール
@@ -680,7 +745,9 @@ mode.pvp.description = エリア内で他のプレイヤーと戦います。\n[
mode.attack.name = アタック
mode.attack.description = ウェーブがなく、敵の基地を破壊することを目指します。\n[gray]プレイするには、マップに赤色のコアが必要です。
mode.custom = カスタムルール
+
rules.infiniteresources = 資源の無限化
+rules.reactorexplosions = Reactor Explosions
rules.wavetimer = ウェーブの自動進行
rules.waves = ウェーブ
rules.attack = アタックモード
@@ -688,6 +755,7 @@ rules.enemyCheat = 敵(赤チーム)の資源の無限化
rules.unitdrops = ユニットの戦利品
rules.unitbuildspeedmultiplier = ユニットの製造速度倍率
rules.unithealthmultiplier = ユニットの体力倍率
+rules.blockhealthmultiplier = Block Health Multiplier
rules.playerhealthmultiplier = プレイヤーの体力倍率
rules.playerdamagemultiplier = プレイヤーのダメージ倍率
rules.unitdamagemultiplier = ユニットのダメージ倍率
@@ -706,6 +774,10 @@ rules.title.resourcesbuilding = 資源 & 建設
rules.title.player = プレイヤー
rules.title.enemy = 敵
rules.title.unit = ユニット
+rules.title.experimental = Experimental
+rules.lighting = Lighting
+rules.ambientlight = Ambient Light
+
content.item.name = アイテム
content.liquid.name = 液体
content.unit.name = ユニット
@@ -752,6 +824,7 @@ mech.trident-ship.name = トライデント
mech.trident-ship.weapon = 爆弾
mech.glaive-ship.name = グライブ
mech.glaive-ship.weapon = 焼夷弾
+item.corestorable = [lightgray]Storable in Core: {0}
item.explosiveness = [lightgray]爆発性: {0}%
item.flammability = [lightgray]可燃性: {0}%
item.radioactivity = [lightgray]放射能: {0}%
@@ -767,6 +840,7 @@ mech.buildspeed = [lightgray]建設速度: {0}%
liquid.heatcapacity = [lightgray]熱容量: {0}
liquid.viscosity = [lightgray]粘度: {0}
liquid.temperature = [lightgray]温度: {0}
+
block.sand-boulder.name = 巨大な礫
block.grass.name = 草
block.salt.name = 岩塩氷河
@@ -865,6 +939,8 @@ block.distributor.name = ディストリビューター
block.sorter.name = ソーター
block.inverted-sorter.name = 反転ソーター
block.message.name = メッセージブロック
+block.illuminator.name = Illuminator
+block.illuminator.description = A small, compact, configurable light source. Requires power to function.
block.overflow-gate.name = オーバーフローゲート
block.silicon-smelter.name = シリコン溶鉱炉
block.phase-weaver.name = フェーズ織機
@@ -878,6 +954,7 @@ block.coal-centrifuge.name = 石炭遠心分離機
block.power-node.name = 電源ノード
block.power-node-large.name = 大型電源ノード
block.surge-tower.name = サージタワー
+block.diode.name = Battery Diode
block.battery.name = バッテリー
block.battery-large.name = 大型バッテリー
block.combustion-generator.name = 火力発電機
@@ -901,6 +978,7 @@ block.mechanical-pump.name = 機械ポンプ
block.item-source.name = アイテムソース
block.item-void.name = アイテムボイド
block.liquid-source.name = 液体ソース
+block.liquid-void.name = Liquid Void
block.power-void.name = 電力ボイド
block.power-source.name = 無限電源
block.unloader.name = 搬出機
@@ -930,6 +1008,7 @@ block.fortress-factory.name = フォートレスユニット製造機
block.revenant-factory.name = レベナントファイター製造機
block.repair-point.name = 修復ポイント
block.pulse-conduit.name = パルスパイプ
+block.plated-conduit.name = Plated Conduit
block.phase-conduit.name = フェーズパイプ
block.liquid-router.name = 液体ルーター
block.liquid-tank.name = 液体タンク
@@ -1001,6 +1080,7 @@ tutorial.deposit = 機体にあるアイテムをドラッグアンドドロッ
tutorial.waves = [lightgray]敵[]がやってきます。\n\n2ウェーブの間コアを守ってみましょう。[accent]クリック[]で弾を発射することができます。\nさらにドリルやデュオを設置しましょう。さらに銅を採掘しましょう。
tutorial.waves.mobile = [lightgray]敵[]がやってきます。\n\n2ウェーブの間コアを守ってみましょう。あなたの機体は自動で敵を攻撃してくれます。\nさらにドリルやデュオを設置しましょう。さらに銅を採掘しましょう。
tutorial.launch = 離脱可能なウェーブに達すると、[accent]コアにある全ての資源を持って[]、マップから[accent]離脱する[]ことができます。\nこれらの資源は、新しい技術の研究に使用することができます。\n\n[accent]離脱ボタンを押しましょう。
+
item.copper.description = 便利な鉱石です。様々なブロックの材料として幅広く使われています。
item.lead.description = 一般的で手軽な鉱石です。機械や液体輸送ブロックなどに使われます。
item.metaglass.description = とても頑丈な強化ガラスです。液体の輸送やタンクとして幅広く使われています。
@@ -1062,6 +1142,7 @@ block.power-source.description = 無限に電力を出力します。サンド
block.item-source.description = アイテムを無限に搬出します。サンドボックスモードのみ使用できます。
block.item-void.description = 電力を必要とせずにアイテムを廃棄します。サンドボックスモードのみ使用できます。
block.liquid-source.description = 液体を無限に搬出します。サンドボックスモードのみ使用できます。
+block.liquid-void.description = Removes any liquids. Sandbox only.
block.copper-wall.description = 安価な防壁ブロックです。\n最初のウェーブでコアやターレットを保護するのに有用です。
block.copper-wall-large.description = 安価な大型防壁ブロックです。\n最初のウェーブでコアやターレットを保護するのに有用です。
block.titanium-wall.description = 適度に強力な防壁ブロックです。\n中程度の攻撃から保護します。
@@ -1097,6 +1178,7 @@ block.rotary-pump.description = 高度なポンプです。電力を使用して
block.thermal-pump.description = 最高性能のポンプです。
block.conduit.description = 一般的な液体輸送ブロックです。液体版のコンベアーです。ポンプや他のパイプに使うことができます。
block.pulse-conduit.description = 高度な液体輸送ブロックです。通常のパイプより速く、たくさんのアイテムを輸送することができます。
+block.plated-conduit.description = Moves liquids at the same rate as pulse conduits, but possesses more armor. Does not accept fluids from the sides by anything other than conduits.\nLeaks less.
block.liquid-router.description = 搬入したアイテムをほかの3方向に均等に搬出します。液体の漏れを防ぐことができます。一つの資源から複数に分ける際などに使われます。
block.liquid-tank.description = 大量の液体を保管しておくことができます。需要が不安定な製造設備や重要な施設の冷却水の予備などとして使用されます。
block.liquid-junction.description = パイプを他のパイプと交差できるようにします。それぞれ搬入した液体を前方に搬出します。パイプで複雑な構造を組み立てるときなどに使われます。
@@ -1105,6 +1187,7 @@ block.phase-conduit.description = 高度な液体輸送ブロックです。電
block.power-node.description = 電力ノード間で電力の送電を行います。最大で4つの電力源やノードなどに接続できます。隣接するブロックから電力の送電や供給を行います。
block.power-node-large.description = 巨大な電力ノードです。最大で6つの電力源やノードに接続できます。
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.battery-large.description = 通常のバッテリーよりもたくさんの電力を溜めておくことができます。
block.combustion-generator.description = 石油や可燃性の物質を燃やして発電します。
diff --git a/core/assets/bundles/bundle_ko.properties b/core/assets/bundles/bundle_ko.properties
index 71a44a6bff..d2d9b54b9a 100644
--- a/core/assets/bundles/bundle_ko.properties
+++ b/core/assets/bundles/bundle_ko.properties
@@ -7,14 +7,15 @@ link.reddit.description = Mindustry 레딧
link.github.description = 게임 소스코드
link.changelog.description = 새로 추가된 것들
link.dev-builds.description = 불안정한 개발 빌드들
-link.trello.description = 다음 출시될 기능들을 게시한 공식 Trello 보드
+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 위키
+link.feathub.description = 기능 아이디어 건의하기
linkfail = 링크를 여는 데 실패했습니다!\nURL이 기기의 클립보드에 복사되었습니다.
-screenshot = 스크린샷이 {0} 경로에 저장되었습니다.
-screenshot.invalid = 맵이 너무 커서 스크린샷을 찍을 메모리가 충분하지 않습니다.
+screenshot = 스크린 샷이 {0} 경로에 저장되었습니다.
+screenshot.invalid = 맵이 너무 커서 스크린 샷을 찍을 메모리가 충분하지 않습니다.
gameover = 게임 오버
gameover.pvp = [accent]{0}[] 팀이 승리했습니다!
highscore = [accent]최고점수 달성!
@@ -28,6 +29,13 @@ load.system = 시스템
load.mod = 모드
load.scripts = 스크립트
+be.update = A new Bleeding Edge build is available:
+be.update.confirm = Download it and restart now?
+be.updating = Updating...
+be.ignore = Ignore
+be.noupdates = No updates found.
+be.check = Check for updates
+
schematic = 설계도
schematic.add = 설계도 저장하기
schematics = 설계도 모음
@@ -35,11 +43,11 @@ schematic.replace = 이 설계도와 같은 이름의 설계도가 이미 존재
schematic.import = 설계도 불러오기
schematic.exportfile = 파일 내보내기
schematic.importfile = 파일 불러오기
-schematic.browseworkshop = 워크샵 탐색
+schematic.browseworkshop = Workshop 탐색
schematic.copy = 클립보드에 복사하기
schematic.copy.import = 클립보드에서 붙여넣기
schematic.shareworkshop = 워크샵에 공유
-schematic.flip = 좌우 뒤집기 :[accent][[{0}][] / 상하 뒤집기 : [accent][[{1}][]
+schematic.flip = 좌우 뒤집기 : [accent][[{0}][] / 상하 뒤집기 : [accent][[{1}][]
schematic.saved = 설계도 저장됨.
schematic.delete.confirm = 삭제된 설계도는 복구할 수 없습니다. 정말로 삭제하시겠습니까?
schematic.rename = 설계도명 변경
@@ -94,7 +102,7 @@ mods.alpha = [scarlet](Alpha)
mods = 모드
mods.none = [LIGHT_GRAY]추가한 모드가 없습니다!
mods.guide = 모드 가이드
-mods.report = 버그 신고
+mods.report = 문제 신고
mods.openfolder = 모드 폴더 열기
mod.enabled = [lightgray]활성화
mod.disabled = [scarlet]비활성화
@@ -102,7 +110,10 @@ mod.disable = 비활성화
mod.delete.error = 모드를 삭제할 수 없습니다. 아마도 해당 모드가 사용중인 것 같습니다.
mod.requiresversion = [scarlet]게임의 버전이 낮아 모드를 활성화할 수 없습니다!\n[scarlet]요구되는 게임 버전 : [accent]{0}
mod.missingdependencies = [scarlet]의존되는 모드: {0}
-mod.nowdisabled = [scarlet]모드 '{0}'는 다음의 모드에 의존합니다 :[accent] {1}\n[lightgray]이 모드를 먼저 다운로드해야합니다.\n이 모드는 자동으로 비활성화됩니다.
+mod.erroredcontent = [scarlet]컨텐츠 오류
+mod.errors = 컨텐츠를 불러오는 중 오류가 발생하였습니다.
+mod.noerrorplay = [scarlet]모드에 오류가 존재합니다.[] 해당 오류가 발생하는 모드를 비활성화하거나 모드의 오류를 고친 후 플레이가 가능합니다.
+mod.nowdisabled = [scarlet]모드 '{0}'는 다음의 모드에 의존합니다 : [accent] {1}\n[lightgray]이 모드를 먼저 다운로드해야합니다.\n이 모드는 자동으로 비활성화됩니다.
mod.enable = 활성화
mod.requiresrestart = 모드 변경사항을 적용하기 위해 게임을 종료합니다.
mod.reloadrequired = [scarlet]새로고침 예정됨
@@ -111,7 +122,7 @@ mod.import.github = 깃허브 모드 추가
mod.item.remove = 이것은 모드[accent] '{0}'[]의 자원입니다. 이 자원을 삭제하려면, 이 모드를 제거해야합니다.
mod.remove.confirm = 이 모드를 삭제하시겠습니까?
mod.author = [LIGHT_GRAY]제작자 : [] {0}
-mod.missing = 이 세이브파일에는 설치하지 않은 모드 혹은 이 버전에 속해있지 않은 데이터가 포함되어 있습니다. 이 파일을 불러올 경우 세이브파일의 데이터가 손상될 수 있습니다. 정말로 이 파일을 불러오시겠습니까?\n[lightgray]모드 :\n{0}
+mod.missing = 이 세이브파일에는 설치하지 않은 모드 혹은 현재 버전에 속해있지 않은 데이터가 포함되어 있습니다. 이 파일을 불러올 경우 세이브파일의 데이터가 손상될 수 있습니다. 정말로 이 파일을 불러오시겠습니까?\n[lightgray]모드 :\n{0}
mod.preview.missing = 워크샵에 당신의 모드를 업로드하기 전에 미리보기 이미지를 먼저 추가해야합니다.\n[accent] preview.png[]라는 이름으로 미리보기 이미지를 당신의 모드 폴더안에 준비한 후 다시 시도해주세요.
mod.folder.missing = 워크샵에는 폴더 형태의 모드만 게시할 수 있습니다.\n모드를 폴더 형태로 바꾸려면 파일을 폴더에 압축 해제하고 이전 압축파일을 제거한 후, 게임을 재시작하거나 모드를 다시 로드하십시오.
mod.scripts.unsupported = 당신의 기기는 모드스크립트를 지원하지 않습니다. 모드의 일부 기능이 작동하지 않을 수 있습니다.
@@ -144,6 +155,7 @@ server.kicked.nameEmpty = 당신의 닉네임이 비어있습니다.
server.kicked.idInUse = 이미 서버에 접속중입니다! 다중 계정은 허용되지 않습니다.
server.kicked.customClient = 이 서버는 직접 빌드한 버전을 지원하지 않습니다. 공식 버전을 사용하세요.
server.kicked.gameover = 코어가 파괴되었습니다...
+server.kicked.serverRestarting = The server is restarting.
server.versions = 클라이언트 버전 : [accent] {0}[]\n서버 버전 : [accent] {1}[]
host.info = [accent]호스트[] 버튼은 현재 네트워크의 [scarlet]6567[] 포트를 사용합니다.\n[LIGHT_GRAY]같은 Wi-Fi 또는 로컬 네트워크[] 에서 서버 목록을 볼 수 있습니다.\n\n만약 플레이어들이 이 IP를 통해 어디에서나 연결할 수 있게 하고 싶다면, 공유기 설정에서 [accent]포트 포워딩[]을 하시거나 VPN을 사용하셔야 합니다.\n\n[LIGHT_GRAY]참고: LAN 게임 연결에 문제가 있는 사람이 있다면, 방화벽 설정에서 Mindustry 가 로컬 네트워크에 액세스하도록 허용했는지 확인해주세요.
join.info = 여기서 서버 추가를 누르신 후, [accent]서버 IP[]를 입력하여 다른 서버에 접속할 수 있습니다.\n또는 [accent]로컬 네트워크(LAN)[] 서버를 검색하여 접속할 수 있습니다.\nLAN 및 WAN 멀티 플레이어 모두 지원합니다.\n\n[LIGHT_GRAY]참고:여기에서는 자동으로 글로벌 서버를 추가하지 않습니다. IP로 다른 사람의 서버에 접속하려면 직접 서버 주소를 찾아서 적으셔야합니다.[]\n\n[ROYAL]한국의 서버로는 [accent]mindustry.kr[]의 6567, 6568포트와 [accent]server1.mindustry.r-e.kr[]의 8000, 8002 포트가 있습니다.\n서버 주소 입력방법은 < 주소:포트 >의 형식입니다.\n[royal]포트가 없을 시에는 그냥 주소만 입력하시면 됩니다.\n\n[royal]예시) mindustry.kr의 6567포트\nmindustry.kr:6567\n포트가 6567일 경우에는 :6567을 생략할 수 있습니다.
@@ -568,7 +580,7 @@ bar.power = 전력
bar.progress = 생산 진행도
bar.spawned = 최대 {1}기 중 {0}기 생산됨
bar.input = 입력
-bar.output =
+bar.output = Output
bullet.damage = [lightgray]피해량 : [stat]{0}[]
bullet.splashdamage = [lightgray]범위 피해량 : [stat]{0}[] / [lightgray]피해 범위 : [stat]{1}[lightgray] 타일
@@ -594,8 +606,8 @@ unit.persecond = /초
unit.timesspeed = x 배
unit.percent = %
unit.items = 자원
-unit.thousands = 천
-unit.millions = 백만
+unit.thousands = k
+unit.millions = mil
category.general = 일반
category.power = 전력
category.liquids = 액체
@@ -631,11 +643,12 @@ setting.screenshake.name = 화면 흔들기
setting.effects.name = 화면 효과
setting.destroyedblocks.name = 부서진 블럭 표시
setting.conveyorpathfinding.name = 교차기 자동 설치
+setting.coreselect.name = Allow Schematic Cores
setting.sensitivity.name = 컨트롤러 감도
setting.saveinterval.name = 저장 간격
setting.seconds = {0} 초
setting.blockselecttimeout.name = 블록 선택 시간 초과
-setting.milliseconds = {0} 밀리초
+setting.milliseconds = {0} ms
setting.fullscreen.name = 전체 화면
setting.borderlesswindow.name = 테두리 없는 창모드[LIGHT_GRAY] (재시작이 필요할 수 있습니다)
setting.fps.name = FPS 표시
@@ -677,26 +690,27 @@ 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 = 설계도 X축 뒤집기
keybind.schematic_flip_y.name = 설계도 Y축 뒤집기
keybind.category_prev.name = 이전 목록
keybind.category_next.name = 다음 목록
-keybind.block_select_left.name = 블럭 왼쪽 선택
-keybind.block_select_right.name = 블럭 오른쪽 선택
-keybind.block_select_up.name = 블럭 위쪽 선택
-keybind.block_select_down.name = 블럭 아래쪽 선택
-keybind.block_select_01.name = 카테고리/블럭 선택 1
-keybind.block_select_02.name = 카테고리/블럭 선택 2
-keybind.block_select_03.name = 카테고리/블럭 선택 3
-keybind.block_select_04.name = 카테고리/블럭 선택 4
-keybind.block_select_05.name = 카테고리/블럭 선택 5
-keybind.block_select_06.name = 카테고리/블럭 선택 6
-keybind.block_select_07.name = 카테고리/블럭 선택 7
-keybind.block_select_08.name = 카테고리/블럭 선택 8
-keybind.block_select_09.name = 카테고리/블럭 선택 9
-keybind.block_select_10.name = 카테고리/블럭 선택 10
+keybind.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 = 대각선 설치
@@ -709,15 +723,14 @@ 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 = 콘솔
keybind.rotate.name = 회전
keybind.rotateplaced.name = 기존 회전 (고정)
keybind.toggle_menus.name = 메뉴 보이기/숨기기
-keybind.chat_history_prev.name = 이전 채팅기록
-keybind.chat_history_next.name = 다음 채팅기록
+keybind.chat_history_prev.name = 이전 채팅 기록
+keybind.chat_history_next.name = 다음 채팅 기록
keybind.chat_scroll.name = 채팅 스크롤
keybind.drop_unit.name = 유닛 처치 시 자원획득
keybind.zoom_minimap.name = 미니맵 확대
@@ -730,11 +743,11 @@ mode.editor.name = 편집기
mode.pvp.name = PvP
mode.pvp.description = 실제 플레이어와 PvP를 합니다. 맵에 적어도 2개의 다른 색상 코어가 있어야 합니다.
mode.attack.name = 공격
-mode.attack.description = 적 기지를 파괴하세요. 맵에 빨간팀 코어가 있어야 플레이 가능합니다.
+mode.attack.description = 적 기지를 파괴하세요. 맵에 빨간 팀 코어가 있어야 플레이 가능합니다.
mode.custom = 사용자 정의 규칙
rules.infiniteresources = 무한 자원
-rules.reactorexplosions = 원자로 폭발 허가여부
+rules.reactorexplosions = 원자로 폭발 허가 여부
rules.wavetimer = 단계 대기시간
rules.waves = 단계 활성화
rules.attack = 공격 모드
@@ -742,6 +755,7 @@ rules.enemyCheat = 무한한 적 자원
rules.unitdrops = 유닛 처치시 자원 약탈
rules.unitbuildspeedmultiplier = 유닛 제조속도 배수
rules.unithealthmultiplier = 유닛 체력 배수
+rules.blockhealthmultiplier = Block Health Multiplier
rules.playerhealthmultiplier = 플레이어 체력 배수
rules.playerdamagemultiplier = 플레이어 공격력 배수
rules.unitdamagemultiplier = 유닛 공격력 배수
@@ -750,7 +764,7 @@ rules.respawntime = 플레이어 부활 대기 시간 : [LIGHT_GRAY] (초)
rules.wavespacing = 단계 간격 : [LIGHT_GRAY] (초)
rules.buildcostmultiplier = 건설 소모 배수
rules.buildspeedmultiplier = 건설 속도 배수
-rules.waitForWaveToEnd = 단계가 끝날때까지 기다리는중
+rules.waitForWaveToEnd = 단계가 끝날때까지 기다리는 중
rules.dropzoneradius = 소환 충격파 범위 : [LIGHT_GRAY] (타일)
rules.respawns = 단계당 최대 플레이어 부활 횟수
rules.limitedRespawns = 플레이어 부활 제한
@@ -810,7 +824,7 @@ mech.trident-ship.name = 트라이던트
mech.trident-ship.weapon = 폭탄 저장고
mech.glaive-ship.name = 글레이브
mech.glaive-ship.weapon = 중무장 인화성 소총
-item.corestorable = [lightgray]코어 잔여 저장공간: {0}
+item.corestorable = [lightgray]코어 저장 가능 여부 : {0}
item.explosiveness = [LIGHT_GRAY]폭발성 : {0}
item.flammability = [LIGHT_GRAY]인화성 : {0}
item.radioactivity = [LIGHT_GRAY]방사능 : {0}
@@ -964,6 +978,7 @@ block.mechanical-pump.name = 기계식 펌프
block.item-source.name = 아이템 소스
block.item-void.name = 아이템 삭제 장치
block.liquid-source.name = 무한 액체공급 장치
+block.liquid-void.name = Liquid Void
block.power-void.name = 방전장치
block.power-source.name = 무한 전력공급 장치
block.unloader.name = 언로더
@@ -1117,7 +1132,7 @@ block.cryofluidmixer.description = 물과 티타늄을 냉각에 훨씬 더 효
block.blast-mixer.description = 포자를 사용하여 파이라타이트를 폭발성 화합물로 변환시킵니다.
block.pyratite-mixer.description = 석탄, 납, 모래를 가연성이 높은 파이라타이트로 만듭니다.
block.melter.description = 고철을 녹여 파도의 탄약 혹은 원심 분리기에 사용할 수 있는 액체인 광재로 만듭니다.
-block.separator.description = 광재룰 각종 자원으로 재활용 할 수 있게 해 주는 건물입니다.
+block.separator.description = 광재를 각종 자원으로 재활용 할 수 있게 해 주는 건물입니다.
block.spore-press.description = 포자를 압축해 기름을 추출합니다.
block.pulverizer.description = 고철을 갈아 모래로 만듭니다. 맵에 모래가 부족할 때 유용합니다.
block.coal-centrifuge.description = 석유로 석탄을 만듭니다.
@@ -1127,6 +1142,7 @@ block.power-source.description = 무한한 전력을 공급해주는 블록입
block.item-source.description = 자원을 선택하면 그 자원이 무한하게 생성되는 블록입니다.\n샌드박스에서만 건설가능.
block.item-void.description = 자원을 사라지게 만듭니다.\n샌드박스에서만 건설가능.
block.liquid-source.description = 무한한 액체를 출력합니다.\n샌드박스에서만 건설가능.
+block.liquid-void.description = Removes any liquids. Sandbox only.
block.copper-wall.description = 게임 시작 초기에 방어용으로 적합합니다.
block.copper-wall-large.description = 구리 벽 4개를 뭉친 블럭입니다.
block.titanium-wall.description = 흑연이 생산될 즈음에 사용하기 적합합니다.
diff --git a/core/assets/bundles/bundle_nl.properties b/core/assets/bundles/bundle_nl.properties
index 4e0b424284..6a8681f28a 100644
--- a/core/assets/bundles/bundle_nl.properties
+++ b/core/assets/bundles/bundle_nl.properties
@@ -1,45 +1,58 @@
-credits.text = Gemaakt door [ROYAL]Anuken[] - [SKY]anukendev@gmail.com[] -
+credits.text = Gemaakt door [ROYAL]Anuken[] - [SKY]anukendev@gmail.com[]
credits = Credits
-contributors = Vertalers en Medewerkers
+contributors = Vertalers en Bijdragers
discord = Word lid van de Mindustry Discord!
link.discord.description = De officiële Mindustry discord chatroom
-link.reddit.description = The Mindustry subreddit
+link.reddit.description = De Mindustry subreddit
link.github.description = Game broncode
-link.changelog.description = Lijst van Updates
+link.changelog.description = Lijst van updates
link.dev-builds.description = Onstabiele ontwikkeling builds
link.trello.description = Officiële trello-bord voor geplande functies
-link.itch.io.description = itch.io pagina met pc-downloads en webversie
+link.itch.io.description = itch.io pagina met pc-downloads
link.google-play.description = Google Play store vermelding
+link.f-droid.description = F-Droid catalogus vermelding
link.wiki.description = Officiële Mindustry wiki
+link.feathub.description = Stel iets voor
linkfail = Kan link niet openen!\nDe URL is gekopieerd naar je klembord
screenshot = Schermafbeeling opgeslagen in {0}
-screenshot.invalid = Map is te groot, Mogelijk niet genoeg ruimte op apparaat.
+screenshot.invalid = Map is te groot, Mogelijk niet genoeg geheugen beschikbaar voor een schermafbeelding.
gameover = Spel afgelopen
gameover.pvp = het[accent] {0}[] team heeft gewonnen!
highscore = [accent]Nieuw topscore!
-copied = Copied.
+copied = Gekopieerd.
+
load.sound = Geluid
load.map = Mappen
load.image = Afbeeldingen
load.content = inhoud
load.system = Systeem
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.scripts = Scripts
+
+be.update = Er is een nieuwe Bleeding Edge versie beschikbaar:
+be.update.confirm = Download het en herstart?
+be.updating = Updaten...
+be.ignore = Negeer
+be.noupdates = Geen updates gevonden.
+be.check = Check voor updates
+
+schematic = Blauwdruk
+schematic.add = Bewaar blauwdruk...
+schematics = Blauwdrukken
+schematic.replace = Er bestaat al een blauwdruk met die naam. Overschrijven?
+schematic.import = Importeer blauwdrul...
+schematic.exportfile = Exporteer bestand
+schematic.importfile = Importeer bestand
+schematic.browseworkshop = Blader Werkplaats
+schematic.copy = Kopiëren naar Klembord
+schematic.copy.import = Importeren van Klembord
+schematic.shareworkshop = Delen op de Werkplaats
+schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Spiegel blauwdruk
+schematic.saved = Blauwdruk bewaard.
+schematic.delete.confirm = Deze blauwdruk zal in een zwart gat verdwijnen.
+schematic.rename = Hernoem blauwdruk
+schematic.info = {0}x{1}, {2} blokken
+
stat.wave = Waves Verslagen:[accent] {0}
stat.enemiesDestroyed = Vijanden Vernietigd:[accent] {0}
stat.built = Gebouwen Gebouwd:[accent] {0}
@@ -47,68 +60,78 @@ stat.destroyed = Gebouwen Vernietigd:[accent] {0}
stat.deconstructed = Gebouwen Gesloopt:[accent] {0}
stat.delivered = Middelen Gelanceerd:
stat.rank = Eindrang: [accent]{0}
+
launcheditems = [accent]Gelanceerde items
-launchinfo = [unlaunched][[LAUNCH] your core to obtain the items indicated in blue.
+launchinfo = [unlaunched][[LANCEER] je core om de in blauw gekleurde items te verkrijgen.
map.delete = Weet je zeker dat je de map wilt verwijderen? "[accent]{0}[]"?
level.highscore = Topscore: [accent]{0}
level.select = Selecteer Level
level.mode = Spelmodus:
showagain = Niet Laten zien in de volgende sessie
coreattack = < Core wordt aangevallen! >
-nearpoint = [[ [scarlet]LEAVE DROP POINT IMMEDIATELY[] ]\nannihilation imminent
+nearpoint = [[ [scarlet]VERLAAT DE LANDINGSZONE ONMIDDELIJK[] ]\nlevensgevaarlijk
database = Core Database
savegame = Opslaan
loadgame = Laden
joingame = Treed toe
customgame = Aangepast spel
newgame = Nieuw spel
-none =
-minimap = Minimap
-position = Position
+none =
+minimap = Landkaart
+position = Positie
close = Aflsuiten
website = Website
quit = Stoppen
-save.quit = Save & Quit
+save.quit = Bewaar & Stop
maps = Mappen
-maps.browse = Browse Maps
+maps.browse = Blader mappen
continue = Ga door
maps.none = [LIGHT_GRAY]Geen map gevonden!
-invalid = Invalid
-preparingconfig = Preparing Config
-preparingcontent = Preparing Content
-uploadingcontent = Uploading Content
-uploadingpreviewfile = Uploading Preview File
-committingchanges = Comitting Changes
-done = Done
-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)
+invalid = Ongeldig
+pickcolor = Kies kleur
+preparingconfig = Configuratie voorbereiden
+preparingcontent = Inhoud voorbereiden
+uploadingcontent = Inhoud aan het uploaden
+uploadingpreviewfile = Thumbnail aan het uploaden
+committingchanges = Wijzigingen aan het bewaren
+done = Klaar
+feature.unsupported = Je apparaat ondersteunt deze functionaliteit niet.
+
+mods.alphainfo = Houd in gedachten dat mod ondersteuning nieuw is, en daarom[scarlet] mogelijk ontstabiel is[].\nVermeld problemen die je ermee ondervind in de Mindustry GitHub of Discord.
+mods.alpha = [accent](Onstabiel)
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.
+mods.none = [LIGHT_GRAY]Geen mods gevonden!
+mods.guide = Modding Handboek
+mods.report = Rapporteer Bug
+mods.openfolder = Open Mod Map
+mod.enabled = [lightgray]Aan
+mod.disabled = [scarlet]Uit
+mod.disable = Deactiveer
+mod.delete.error = Mod verwijderen mislukt. Bestand mogelijk in gebruik.
+mod.requiresversion = [scarlet]Vereist minimaal mindustry versie: [accent]{0}
+mod.missingdependencies = [scarlet]Missende benodigdheden: {0}
+mod.erroredcontent = [scarlet]Inhoud Fouten
+mod.errors = Er hebben zich fouten voordaan tijdens het laden van de inhoud.
+mod.noerrorplay = [scarlet]Je mods bevatten fouten.[] Zet de mods uit of los de problemen op voordat je verder gaat.
+mod.nowdisabled = [scarlet]Mod '{0}' mist een aantal benodigdheden:[accent] {1}\n[lightgray]Deze moet je eerst zelf downloaden.\nDeze mod is nu voor je uitgezet.
+mod.enable = Activeer
+mod.requiresrestart = Deze game zal nu herstarten om de veranderingen aan de mods door te voeren.
+mod.reloadrequired = [scarlet]Herladen Vereist
+mod.import = Importeer Mod
+mod.import.github = Importeer GitHub Mod
+mod.item.remove = Dit item is onderdeel van de[accent] '{0}'[] mod. Verwijder deze eerst.
+mod.remove.confirm = Deze mod zal worden verwijderd.
+mod.author = [LIGHT_GRAY]Auteur:[] {0}
+mod.missing = Deze Save bevat mods die zijn geupdatet of die je niet meer hebt geinstaleerd. Je save kan mogelijk kapot gaat. Weet je zeker dat je het wilt proberen?\n[lightgray]Mods:\n{0}
+mod.preview.missing = Voordat je je mod publiceert in de workshop moet je een thumbnail toevoegen.\nPlaats een afbeelding genaamd[accent] preview.png[] in de map van die mod en probeer opnieuw.
+mod.folder.missing = Enkel mods in map formaat kunnen worden gepubliceerd in de workshop.\nOm een mod om te zetten in een map, unzip de mod en verwijder de zip, hetstart dan het spel of herlaad de mods.
+mod.scripts.unsupported = Je apparaat ondersteunt geen mods met scripts. Sommige mods zullen niet correct werken.
+
about.button = Over
name = Naam:
noname = Maak eerst een[accent] Speler naam[].
filename = Bestandsnaam:
-unlocked = New content unlocked!
+unlocked = Nieuwe inhoud ontgrendeld!
completed = [accent]Voltooid
techtree = Tech boom
research.list = [LIGHT_GRAY]Onderzoek:
@@ -118,619 +141,668 @@ players = {0} Spelers online
players.single = {0} Speler online
server.closing = [accent]Server aan het sluiten...
server.kicked.kick = Je bent verwijderd van deze sessie.
-server.kicked.whitelist = You are not whitelisted here.
+server.kicked.whitelist = Je staat niet op de whitelist.
server.kicked.serverClose = Server afgesloten...
server.kicked.vote = Je bent ge vote-kicked. Tot ziens.
server.kicked.clientOutdated = Verouderde versie! Update jouw spel!
server.kicked.serverOutdated = Verouderde server! Vraag de host om te upgraden!
server.kicked.banned = Je bent verbannen van deze server.
server.kicked.typeMismatch = Deze server is niet compitabel met jouw bouwtype.
-server.kicked.playerLimit = This server is full. Wait for an empty slot.
+server.kicked.playerLimit = Deze server is vol. Wacht voor een vrije plek.
server.kicked.recentKick = Je bent reeds verwijderd.\nWacht voordat je opnieuw verbindt.
server.kicked.nameInUse = Er is al iemand met die naam\nop deze server.
server.kicked.nameEmpty = Je gekozen naam is niet geldig.
server.kicked.idInUse = Je bent al verbonden met deze server! Verbinden met 2 accounts is verboden.
server.kicked.customClient = Deze server ondersteunt geen aangepaste spellen . Download de officiele versie.
server.kicked.gameover = Spel afgelopen
+server.kicked.serverRestarting = De server is aan het herstarten.
server.versions = Jouw versie:[accent] {0}[]\nServer versie:[accent] {1}[]
host.info = De [accent]host[] knop hosts `een server op port [scarlet]6567[]. \nIedereen op hetzelfde [LIGHT_GRAY]wifi or locaal netwerk[] zou jouw server in hun serverlijst moeten zien.\n\nAls je wilt dan vrienden vanaf overal kunnen meedoen via IP, [accent]port forwarding[] is nodig.\n\n[LIGHT_GRAY]Note: IAls iemand moeilijkheden heeft met het meedoen aan jouw spel, kijk of je Mindustry in je firewall instellingen toegang hebt gegeven to jouw locaal netwerk.
join.info = Hier kan je een [accent]server IP[] invoeren om te verbinden, of om[accent]locale netwerken[] te vinden.\nBeide LAN en WAN multiplayer is ondersteund.\n\n[LIGHT_GRAY]Note: Er is geen automatische globale serverlijst; Als je met iemands IP wil verbinden, Zou je moeten vragen om hun IP.
hostserver = Host Game
-invitefriends = Invite Friends
+invitefriends = Nodig vrienden uit
hostserver.mobile = Host\nGame
host = Host
-hosting = [accent]Opening server...
-hosts.refresh = Refresh
-hosts.discovering = Discovering LAN games
-hosts.discovering.any = Discovering games
-server.refreshing = Refreshing server
-hosts.none = [lightgray]No local games found!
-host.invalid = [scarlet]Can't connect to host.
-trace = Trace Player
-trace.playername = Player name: [accent]{0}
+hosting = [accent]Server openen...
+hosts.refresh = Herlaad
+hosts.discovering = LAN games aan het zoeken
+hosts.discovering.any = games aan het zoeken
+server.refreshing = Herlaad server
+hosts.none = [lightgray]Geen lokale games gevonden!
+host.invalid = [scarlet]Kan niet verbinden met server.
+trace = Traceer Speler
+trace.playername = Speler naam: [accent]{0}
trace.ip = IP: [accent]{0}
-trace.id = Unique ID: [accent]{0}
-trace.mobile = Mobile Client: [accent]{0}
-trace.modclient = Custom Client: [accent]{0}
-invalidid = Invalid client ID! Submit a bug report.
+trace.id = Unieke ID: [accent]{0}
+trace.mobile = Mobiel apparaat: [accent]{0}
+trace.modclient = Unofficieël: [accent]{0}
+invalidid = Ongeldige speler ID! Raporteer deze bug.
server.bans = Bans
-server.bans.none = No banned players found!
+server.bans.none = Geen verbannen spelers gevonden!
server.admins = Admins
-server.admins.none = No admins found!
-server.add = Add Server
-server.delete = Are you sure you want to delete this server?
-server.edit = Edit Server
-server.outdated = [crimson]Outdated Server![]
-server.outdated.client = [crimson]Outdated Client![]
-server.version = [lightgray]Version: {0} {1}
+server.admins.none = Geen admins gevonden!
+server.add = Voeg server to
+server.delete = Weet je zeker dat je deze server wilt deleten?
+server.edit = Bewerk server
+server.outdated = [crimson]Server draait op een oudere versie![]
+server.outdated.client = [crimson]Server draait en nieuwere versie![]
+server.version = [lightgray]Versie: {0} {1}
server.custombuild = [yellow]Custom Build
-confirmban = Are you sure you want to ban this player?
-confirmkick = Are you sure you want to kick this player?
-confirmvotekick = Are you sure you want to vote-kick this player?
-confirmunban = Are you sure you want to unban this player?
-confirmadmin = Are you sure you want to make this player an admin?
-confirmunadmin = Are you sure you want to remove admin status from this player?
-joingame.title = Join Game
-joingame.ip = Address:
-disconnect = Disconnected.
-disconnect.error = Connection error.
-disconnect.closed = Connection closed.
-disconnect.timeout = Timed out.
-disconnect.data = Failed to load world data!
-cantconnect = Unable to join game ([accent]{0}[]).
-connecting = [accent]Connecting...
-connecting.data = [accent]Loading world data...
-server.port = Port:
-server.addressinuse = Address already in use!
-server.invalidport = Invalid port number!
-server.error = [crimson]Error hosting server: [accent]{0}
-save.new = New Save
-save.overwrite = Are you sure you want to overwrite\nthis save slot?
-overwrite = Overwrite
-save.none = No saves found!
-saveload = [accent]Saving...
-savefail = Failed to save game!
-save.delete.confirm = Are you sure you want to delete this save?
-save.delete = Delete
-save.export = Export Save
-save.import.invalid = [accent]This save is invalid!
-save.import.fail = [crimson]Failed to import save: [accent]{0}
-save.export.fail = [crimson]Failed to export save: [accent]{0}
-save.import = Import Save
-save.newslot = Save name:
-save.rename = Rename
-save.rename.text = New name:
-selectslot = Select a save.
-slot = [accent]Slot {0}
-editmessage = Edit Message
-save.corrupted = [accent]Save file corrupted or invalid!\nIf you have just updated your game, this is probably a change in the save format and [scarlet]not[] a bug.
-empty =
-on = On
-off = Off
+confirmban = Weet je zeker dat je deze speler wilt verbannen?
+confirmkick = Weet je zeker dat je deze speler wilt verwijderen?
+confirmvotekick = Weet je zeker dat je deze speler weg wilt stemmen?
+confirmunban = Weet je zeker dat je deze speler weer wil toelaten?
+confirmadmin = Weet je zeker dat je deze speler admin wil geven?
+confirmunadmin = Weet je zeker dat je de admin status van deze speler wilt intrekken?
+joingame.title = Treed toe
+joingame.ip = Adres:
+disconnect = Gesloten.
+disconnect.error = Verbindingsfout.
+disconnect.closed = Verbinding gestopt.
+disconnect.timeout = Verbinding afgekapt.
+disconnect.data = Kon de wereld niet laden!
+cantconnect = Geen verbinding mogelijk ([accent]{0}[]).
+connecting = [accent]Aan het verbinden...
+connecting.data = [accent]Wereld aan het laden...
+server.port = Poort:
+server.addressinuse = Adres is al in gebruik!
+server.invalidport = Poort is geen geldig getal!
+server.error = [crimson]Fout met hosten: [accent]{0}
+save.new = Nieuwe Save
+save.overwrite = Weet je zeker dat je deze\nsave wilt overschrijven?
+overwrite = Overschrijf
+save.none = Geen saves gevonden!
+saveload = [accent]Bewaren...
+savefail = Bewaren is mislukt!
+save.delete.confirm = Weet je zeker dat je deze save wilt verwijderen?
+save.delete = Verwijder
+save.export = Exporteer Save
+save.import.invalid = [accent]Deze save is ongeldig!
+save.import.fail = [crimson]Importeren van save mislukt: [accent]{0}
+save.export.fail = [crimson]Exporteren van save mislukt: [accent]{0}
+save.import = Importeer Save
+save.newslot = Save naam:
+save.rename = Hernoem
+save.rename.text = Nieuwe naam:
+selectslot = Selecteer een save.
+slot = [accent]Gleuf {0}
+editmessage = Bewerk bericht
+save.corrupted = [accent]Save bestand misvormd of ongeldig!\nAls je net je game hebt geupdatet, is dit waarschijnlijk een verandering in hoe saves werken, dit is[scarlet]geen[] bug.
+empty =
+on = Aan
+off = Uit
save.autosave = Autosave: {0}
save.map = Map: {0}
-save.wave = Wave {0}
-save.mode = Gamemode: {0}
-save.date = Last Saved: {0}
-save.playtime = Playtime: {0}
-warning = Warning.
-confirm = Confirm
-delete = Delete
-view.workshop = View In Workshop
-workshop.listing = Edit Workshop Listing
-ok = OK
+save.wave = Ronde {0}
+save.mode = Spelmodus: {0}
+save.date = Laatst bewaard: {0}
+save.playtime = Speeltijd: {0}
+warning = Waarschuwing.
+confirm = Bevestig
+delete = Verwijder
+view.workshop = Bekijk in Werkplaats
+workshop.listing = Bewerk Workshop vermelding
+ok = Oke
open = Open
-customize = Customize
-cancel = Cancel
+customize = Aanpassen
+cancel = Anuleer
openlink = Open Link
-copylink = Copy Link
-back = Back
-data.export = Export Data
-data.import = Import Data
-data.exported = Data exported.
-data.invalid = This isn't valid game data.
-data.import.confirm = Importing external data will erase[scarlet] all[] your current game data.\n[accent]This cannot be undone![]\n\nOnce the data is imported, your game will exit immediately.
-classic.export = Export Classic Data
-classic.export.text = [accent]Mindustry[] has just had a major update.\nClassic (v3.5 build 40) save or map data has been detected. Would you like to export these saves to your phone's home folder, for use in the Mindustry Classic app?
-quit.confirm = Are you sure you want to quit?
-quit.confirm.tutorial = Are you sure you know what you're doing?\nThe tutorial can be re-taken in[accent] Settings->Game->Re-Take Tutorial.[]
-loading = [accent]Loading...
-reloading = [accent]Reloading Mods...
-saving = [accent]Saving...
-cancelbuilding = [accent][[{0}][] to clear plan
-selectschematic = [accent][[{0}][] to select+copy
-pausebuilding = [accent][[{0}][] to pause building
-resumebuilding = [scarlet][[{0}][] to resume building
-wave = [accent]Wave {0}
-wave.waiting = [LIGHT_GRAY]Wave in {0}
-wave.waveInProgress = [LIGHT_GRAY]Wave in progress
-waiting = [LIGHT_GRAY]Waiting...
-waiting.players = Waiting for players...
-wave.enemies = [LIGHT_GRAY]{0} Enemies Remaining
-wave.enemy = [LIGHT_GRAY]{0} Enemy Remaining
-loadimage = Load Image
-saveimage = Save Image
-unknown = Unknown
-custom = Custom
-builtin = Built-In
-map.delete.confirm = Are you sure you want to delete this map? This action cannot be undone!
-map.random = [accent]Random Map
-map.nospawn = This map does not have any cores for the player to spawn in! Add a[ROYAL] blue[] core to this map in the editor.
-map.nospawn.pvp = This map does not have any enemy cores for player to spawn into! Add[SCARLET] red[] cores to this map in the editor.
-map.nospawn.attack = This map does not have any enemy cores for player to attack! Add[SCARLET] red[] cores to this map in the editor.
-map.invalid = Error loading map: corrupted or invalid map file.
-workshop.update = Update Item
-workshop.error = Error fetching workshop details: {0}
-map.publish.confirm = Are you sure you want to publish this map?\n\n[lightgray]Make sure you agree to the Workshop EULA first, or your maps will not show up!
-workshop.menu = Select what you would like to do with this item.
-workshop.info = Item Info
-changelog = Changelog (optional):
+copylink = Customize Link
+back = Teru
+data.export = Exporteer Data
+data.import = Importeer Data
+data.exported = Data Geexporteerd.
+data.invalid = Dit is geen geldige game data.
+data.import.confirm = Importeren van data verwijderd[scarlet] alle[] huidige data.\n[accent]Dit kan niet ongedaan worden gemaakt![]\n\nWanneer de data is geimport herstart deze game automatisch.
+classic.export = Exporteer klassieke data
+classic.export.text = [accent]Mindustry[] Heeft een grote update gehad.\nKlassieke (v3.5 build 40) saves en/of mappen zijn gedetecteerd. Wil je deze exporteren naar de thuismap van je telefoon om te gebruiken in de klassieke Mindustry app?
+quit.confirm = Weet je zeker dat je wilt stoppen?
+quit.confirm.tutorial = Weet je zeker dat je weet wat je doet?\nJe kan de tutorial opnieuw beginnen via[accent] Instellingen->Game->Herneem Tutorial.[]
+loading = [accent]Laden...
+reloading = [accent]Mods herladen...
+saving = [accent]Opslaan...
+cancelbuilding = [accent][[{0}][] om blauwdruk te verwijderen
+selectschematic = [accent][[{0}][] om te selecteren + kopiëren
+pausebuilding = [accent][[{0}][] om bouwen te pauzeren
+resumebuilding = [scarlet][[{0}][] om bouwen te hervatten
+wave = [accent]Ronde {0}
+wave.waiting = [LIGHT_GRAY]Volgende ronde over {0}
+wave.waveInProgress = [LIGHT_GRAY]Ronde bezig
+waiting = [LIGHT_GRAY]Wachten...
+waiting.players = Wachten op spelers...
+wave.enemies = [LIGHT_GRAY]{0} Vijanden resterend
+wave.enemy = [LIGHT_GRAY]{0} Vijand resterend
+loadimage = Laad afbeelding
+saveimage = Bewaar afbeelding
+unknown = Onbekend
+custom = Op maat
+builtin = Ingebouwd
+map.delete.confirm = Weet je zeker dat je deze map wilt verwijderen? Deze actie kan niet ongedaan worden gemaakt!
+map.random = [accent]Willekeurige map
+map.nospawn = Deze map heeft geen cores voor de spelers om in te spawnen! Voeg een[ROYAL] blauwe[] core toe aan de map via de editor.
+map.nospawn.pvp = Deze map heeft geen cores voor je vijanden om in te spawnen! Voeg een[SCARLET] rode[] core to aan de map via de editor.
+map.nospawn.attack = Deze map bevat geen vijandige cores om aan te vallen! Voeg een[SCARLET] rode[] core toe aan de map via de editor.
+map.invalid = Error tijdens laden van map: Ongeldig map bestand.
+workshop.update = Bijwerken
+workshop.error = Fout bij laden workshop info: {0}
+map.publish.confirm = Weet je zeker dat je deze map wilt publiceren?\n\n[lightgray]Zorg ervoor dat je de EULA van de workshop leest, anders zal je map niet zichtbaar zijn!
+workshop.menu = Selecteer wat je hiermee wilt doen.
+workshop.info = Informatie
+changelog = Update logboek (optioneel):
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}
-editor.brush = Brush
-editor.openin = Open In Editor
-editor.oregen = Ore Generation
-editor.oregen.info = Ore Generation:
-editor.mapinfo = Map Info
-editor.author = Author:
-editor.description = Description:
-editor.nodescription = A map must have a description of at least 4 characters before being published.
-editor.waves = Waves:
-editor.rules = Rules:
-editor.generation = Generation:
-editor.ingame = Edit In-Game
-editor.publish.workshop = Publish On Workshop
-editor.newmap = New Map
-workshop = Workshop
-waves.title = Waves
-waves.remove = Remove
-waves.never =
-waves.every = every
-waves.waves = wave(s)
-waves.perspawn = per spawn
-waves.to = to
+missing = Dit object is verwijderd of verplaatst.\n[lightgray]De workshop vermelding is nu niet meer gelinkt.
+publishing = [accent]Publiceren...
+publish.confirm = Weet je zeker dat je dit wilt publiceren?\n\n[lightgray]Zorg ervoor dat je de EULA van de workshopt leest, anders zal je map niet zichtbaar zijn!
+publish.error = Fout met het publiceren: {0}
+steam.error = Fout met het opstarten van steam diensten.\nError: {0}
+
+editor.brush = Kwast
+editor.openin = Bewerk in editor
+editor.oregen = Ertsgeneratie
+editor.oregen.info = Ertsgeneratie:
+editor.mapinfo = Map Informatie
+editor.author = Auteur:
+editor.description = Beschrijving:
+editor.nodescription = De map moet een beschrijving van minimaal 4 tekens hebben voordat je deze kan publiceren.
+editor.waves = Rondes:
+editor.rules = Regens:
+editor.generation = Generatie:
+editor.ingame = Bewerk In-Game
+editor.publish.workshop = Publiceer in Werkplaats
+editor.newmap = Nieuwe Map
+workshop = Werkplaats
+waves.title = Rondes
+waves.remove = Verwijder
+waves.never =
+waves.every = elke
+waves.waves = ronde(s)
+waves.perspawn = per keer
+waves.to = tot
waves.boss = Boss
-waves.preview = Preview
-waves.edit = Edit...
-waves.copy = Copy to Clipboard
-waves.load = Load from Clipboard
-waves.invalid = Invalid waves in clipboard.
-waves.copied = Waves copied.
-waves.none = No enemies defined.\nNote that empty wave layouts will automatically be replaced with the default layout.
-editor.default = [LIGHT_GRAY]
+waves.preview = Voorvertoning
+waves.edit = Bewerk...
+waves.copy = Kopiër naar klembord
+waves.load = Laad van klembord
+waves.invalid = Ongeldige rondes in klenbord.
+waves.copied = Rondes Gekopiëerd.
+waves.none = Geen vijanden ingesteld.\nLege rondes worden automatisch gevuld met de standaard waardes.
+editor.default = [LIGHT_GRAY]
details = Details...
-edit = Edit...
-editor.name = Name:
-editor.spawn = Spawn Unit
-editor.removeunit = Remove Unit
+edit = Bewerk...
+editor.name = Naam:
+editor.spawn = Voeg Unit toe
+editor.removeunit = Verwijder Unit
editor.teams = Teams
-editor.errorload = Error loading file:\n[accent]{0}
-editor.errorsave = Error saving file:\n[accent]{0}
-editor.errorimage = That's an image, not a map. Don't go around changing extensions expecting it to work.\n\nIf you want to import a legacy map, use the 'import legacy map' button in the editor.
-editor.errorlegacy = This map is too old, and uses a legacy map format that is no longer supported.
-editor.errornot = This is not a map file.
-editor.errorheader = This map file is either not valid or corrupt.
-editor.errorname = Map has no name defined.
-editor.update = Update
-editor.randomize = Randomize
-editor.apply = Apply
-editor.generate = Generate
-editor.resize = Resize
-editor.loadmap = Load Map
-editor.savemap = Save Map
-editor.saved = Saved!
-editor.save.noname = Your map does not have a name! Set one in the 'map info' menu.
-editor.save.overwrite = Your map overwrites a built-in map! Pick a different name in the 'map info' menu.
-editor.import.exists = [scarlet]Unable to import:[] a built-in map named '{0}' already exists!
-editor.import = Import...
-editor.importmap = Import Map
-editor.importmap.description = Import an already existing map
-editor.importfile = Import File
-editor.importfile.description = Import an external map file
-editor.importimage = Import Legacy Image
-editor.importimage.description = Import an external map image file
-editor.export = Export...
-editor.exportfile = Export File
-editor.exportfile.description = Export a map file
-editor.exportimage = Export Terrain Image
-editor.exportimage.description = Export a map image file
-editor.loadimage = Import Terrain
-editor.saveimage = Export Terrain
-editor.unsaved = [scarlet]You have unsaved changes![]\nAre you sure you want to exit?
-editor.resizemap = Resize Map
-editor.mapname = Map Name:
-editor.overwrite = [accent]Warning!\nThis overwrites an existing map.
-editor.overwrite.confirm = [scarlet]Warning![] A map with this name already exists. Are you sure you want to overwrite it?
-editor.exists = A map with this name already exists.
-editor.selectmap = Select a map to load:
-toolmode.replace = Replace
-toolmode.replace.description = Draws only on solid blocks.
-toolmode.replaceall = Replace All
-toolmode.replaceall.description = Replace all blocks in map.
-toolmode.orthogonal = Orthogonal
-toolmode.orthogonal.description = Draws only orthogonal lines.
-toolmode.square = Square
-toolmode.square.description = Square brush.
-toolmode.eraseores = Erase Ores
-toolmode.eraseores.description = Erase only ores.
-toolmode.fillteams = Fill Teams
-toolmode.fillteams.description = Fill teams instead of blocks.
-toolmode.drawteams = Draw Teams
-toolmode.drawteams.description = Draw teams instead of blocks.
-filters.empty = [LIGHT_GRAY]No filters! Add one with the button below.
-filter.distort = Distort
-filter.noise = Noise
-filter.median = Median
-filter.oremedian = Ore Median
-filter.blend = Blend
-filter.defaultores = Default Ores
-filter.ore = Ore
-filter.rivernoise = River Noise
-filter.mirror = Mirror
-filter.clear = Clear
-filter.option.ignore = Ignore
-filter.scatter = Scatter
-filter.terrain = Terrain
-filter.option.scale = Scale
-filter.option.chance = Chance
-filter.option.mag = Magnitude
-filter.option.threshold = Threshold
-filter.option.circle-scale = Circle Scale
-filter.option.octaves = Octaves
-filter.option.falloff = Falloff
-filter.option.angle = Angle
-filter.option.block = Block
-filter.option.floor = Floor
-filter.option.flooronto = Target Floor
-filter.option.wall = Wall
-filter.option.ore = Ore
-filter.option.floor2 = Secondary Floor
-filter.option.threshold2 = Secondary Threshold
-filter.option.radius = Radius
-filter.option.percentile = Percentile
-width = Width:
-height = Height:
+editor.errorload = Fout bij laden van bestand:\n[accent]{0}
+editor.errorsave = Fout van bewaren van bestand:\n[accent]{0}
+editor.errorimage = Dat is een afbeelding, geen map. Laat de extenties met rust.\n\nAls je een oude map wilt importeren gebruik je de knop die hiervoor bedoeld is in de editor.
+editor.errorlegacy = Deze map is te oud, bestandsformaat word niet meer ondersteund.
+editor.errornot = Dat is geen map bestand.
+editor.errorheader = Dit map bestand is niet geldig of foutief.
+editor.errorname = Map heeft geen naam.
+editor.update = Bijwerken
+editor.randomize = Willekeurig
+editor.apply = Gebruiken
+editor.generate = Genereer
+editor.resize = Verander formaat
+editor.loadmap = Laad Map
+editor.savemap = Bewaar Map
+editor.saved = Bewaard!
+editor.save.noname = je map heeft geen naam! Stel er een in via de map instellingen.
+editor.save.overwrite = De naam van deze map is al in gebruik door een van het spel zelf, kies een andere.
+editor.import.exists = [scarlet]Importeren mislukt:[] een ingebouwde map met de naam '{0}' bestaat al!
+editor.import = Importeer...
+editor.importmap = Importeer Map
+editor.importmap.description = Importeer een al bestande map
+editor.importfile = Importeer Bestand
+editor.importfile.description = Importer een extern map bestand
+editor.importimage = Importeer Klassieke Afbeelding
+editor.importimage.description = Importeer een oude afbeelding map
+editor.export = Exporteer...
+editor.exportfile = Exporteer Bestand
+editor.exportfile.description = Exporteer een map bestand
+editor.exportimage = Exporteer Thumbnail
+editor.exportimage.description = Exporteer map thumbnail
+editor.loadimage = Importeer Terein
+editor.saveimage = Exporteer Terein
+editor.unsaved = [scarlet]Je hebt onopgeslagen wijzigingen![]\nWeet je zeker dat je eruit wilt?
+editor.resizemap = Verander Map Formaat
+editor.mapname = Map Naam:
+editor.overwrite = [accent]Waarschuwing!\nDit overschrijft een bestaande map.
+editor.overwrite.confirm = [scarlet]Waarschuwing![] Een map met deze naam bestaat al. Weet je zeker dat je deze wilt overschrijven?
+editor.exists = Een map met deze naam bestaat al.
+editor.selectmap = Selecteer een map om te laden:
+
+toolmode.replace = Vervang
+toolmode.replace.description = Werkt enkel op vaste blokken.
+toolmode.replaceall = Vervang alles
+toolmode.replaceall.description = Vervangt alle blokken in de map.
+toolmode.orthogonal = Orthogonaal
+toolmode.orthogonal.description = Teken enkel orthogonale lijnen.
+toolmode.square = Vierkant
+toolmode.square.description = Vierkante kwast.
+toolmode.eraseores = Verwijder grondstoffen
+toolmode.eraseores.description = Verwijderd enkel grondstoffen.
+toolmode.fillteams = Vervang Teams
+toolmode.fillteams.description = Vervangt teams in plaats van blokken.
+toolmode.drawteams = Teken Teams
+toolmode.drawteams.description = Tekent teams in plaats van blokken.
+
+filters.empty = [LIGHT_GRAY]Geen filters! Voeg een toe met onderstaande knop.
+filter.distort = Verdraai
+filter.noise = Geluid
+filter.median = Mediaan
+filter.oremedian = Ertsmediaan
+filter.blend = Meng
+filter.defaultores = Standaard Grondstoffen
+filter.ore = Grondstof
+filter.rivernoise = Rivier Geluid
+filter.mirror = Spiegel
+filter.clear = Verwijder
+filter.option.ignore = Negeer
+filter.scatter = Verstrooi
+filter.terrain = Terein
+filter.option.scale = Schaal
+filter.option.chance = Verander
+filter.option.mag = Omvang
+filter.option.threshold = Drempel
+filter.option.circle-scale = Formaat Rondje
+filter.option.octaves = Octaven
+filter.option.falloff = Afval
+filter.option.angle = Hoek
+filter.option.block = Blok
+filter.option.floor = Vloer
+filter.option.flooronto = Doel Vloer
+filter.option.wall = Muur
+filter.option.ore = Grondstof
+filter.option.floor2 = Secundaire vloer
+filter.option.threshold2 = Secundaire Drempel
+filter.option.radius = Straal
+filter.option.percentile = Percentage
+
+width = Breedte:
+height = Hoogte:
menu = Menu
-play = Play
-campaign = Campaign
-load = Load
-save = Save
+play = Speel
+campaign = Veldtocht
+load = Laad
+save = Bewaar
fps = FPS: {0}
ping = Ping: {0}ms
-language.restart = Please restart your game for the language settings to take effect.
-settings = Settings
+language.restart = Herstart het spel om de gewijzigde taal te laden.
+settings = Instellingen
tutorial = Tutorial
-tutorial.retake = Re-Take Tutorial
+tutorial.retake = Herneem Tutorial
editor = Editor
mapeditor = Map Editor
-abandon = Abandon
-abandon.text = This zone and all its resources will be lost to the enemy.
-locked = Locked
-complete = [LIGHT_GRAY]Complete:
-requirement.wave = Reach Wave {0} in {1}
-requirement.core = Destroy Enemy Core in {0}
-requirement.unlock = Unlock {0}
-resume = Resume Zone:\n[LIGHT_GRAY]{0}
-bestwave = [LIGHT_GRAY]Best Wave: {0}
-launch = < LAUNCH >
-launch.title = Launch Successful
-launch.next = [LIGHT_GRAY]next opportunity at wave {0}
-launch.unable2 = [scarlet]Unable to LAUNCH.[]
-launch.confirm = This will launch all resources in your core.\nYou will not be able to return to this base.
-launch.skip.confirm = If you skip now, you will not be able to launch until later waves.
-uncover = Uncover
-configure = Configure Loadout
-bannedblocks = Banned Blocks
-addall = Add All
-configure.locked = [LIGHT_GRAY]Unlock configuring loadout:\nWave {0}.
-configure.invalid = Amount must be a number between 0 and {0}.
-zone.unlocked = [LIGHT_GRAY]{0} unlocked.
-zone.requirement.complete = Wave {0} reached:\n{1} zone requirements met.
-zone.config.unlocked = Loadout unlocked:[lightgray]\n{0}
-zone.resources = Resources Detected:
-zone.objective = [lightgray]Objective: [accent]{0}
-zone.objective.survival = Survive
-zone.objective.attack = Destroy Enemy Core
-add = Add...
-boss.health = Boss Health
-connectfail = [crimson]Failed to connect to server:\n\n[accent]{0}
-error.unreachable = Server unreachable.\nIs the address spelled correctly?
-error.invalidaddress = Invalid address.
-error.timedout = Timed out!\nMake sure the host has port forwarding set up, and that the address is correct!
-error.mismatch = Packet error:\npossible client/server version mismatch.\nMake sure you and the host have the latest version of Mindustry!
-error.alreadyconnected = Already connected.
-error.mapnotfound = Map file not found!
-error.io = Network I/O error.
-error.any = Unknown network error.
-error.bloom = Failed to initialize bloom.\nYour device may not support it.
-zone.groundZero.name = Ground Zero
-zone.desertWastes.name = Desert Wastes
-zone.craters.name = The Craters
-zone.frozenForest.name = Frozen Forest
-zone.ruinousShores.name = Ruinous Shores
-zone.stainedMountains.name = Stained Mountains
-zone.desolateRift.name = Desolate Rift
-zone.nuclearComplex.name = Nuclear Production Complex
-zone.overgrowth.name = Overgrowth
-zone.tarFields.name = Tar Fields
-zone.saltFlats.name = Salt Flats
+
+abandon = Verlaat
+abandon.text = Je verliest deze map met alles erop en eraan aan de vijand.
+locked = Op slot
+complete = [LIGHT_GRAY]Voltooid:
+requirement.wave = Berijk ronde {0} in {1}
+requirement.core = Vernietig vijandige core in {0}
+requirement.unlock = Ontgrendel: {0}
+resume = Hervat zone:\n[LIGHT_GRAY]{0}
+bestwave = [LIGHT_GRAY]Beste ronde: {0}
+launch = < LANCEER >
+launch.title = Lancering Sucessvol
+launch.next = [LIGHT_GRAY]volgende lanceerkans in ronde {0}
+launch.unable2 = [scarlet]Lanceren niet mogelijk.[]
+launch.confirm = Dit lanceert alle items in je core.\nJe zal niet meer terug kunnen keren naar deze basis.
+launch.skip.confirm = Als je nu niet lanceert, zul je moeten wachten tot het wel weer kan.
+uncover = Ontdek
+configure = Configureer startinventaris
+bannedblocks = Verboden Blokken
+addall = Voeg Alles Toe
+configure.locked = [LIGHT_GRAY]Speel startinventaris configuratie vrij:\nronde{0}.
+configure.invalid = Hoeveelheid moet een getal zijn tussen 0 en {0}.
+zone.unlocked = [LIGHT_GRAY]{0} vrijgespeeld.
+zone.requirement.complete = Ronde {0} berijkt:\n{1} zone vrijgespeeld.
+zone.config.unlocked = Startinventaris vrijgespeeld:[lightgray]\n{0}
+zone.resources = Vindbare grondstoffen:
+zone.objective = [lightgray]Doel: [accent]{0}
+zone.objective.survival = Overleef
+zone.objective.attack = Vernietig vijandige core
+add = Voeg toe...
+boss.health = Levens Boss
+
+connectfail = [crimson]Kon niet verbinden met server:\n\n[accent]{0}
+error.unreachable = Server onbereikbaar.\nHeb je het adres goed gespeld?
+error.invalidaddress = Ongeldig adres.
+error.timedout = Verbindingspoging duurde te lang!\nDubbelcheck dat je host is geportforward, en dat je het ip wel goed hebt ingetikt!
+error.mismatch = Pakket fout:\nmogelijk is er een versie verschil tussen jou en de server.\nZorg ervoor dat beiden op de meest recente versie van Mindustry zitten!
+error.alreadyconnected = Al verbonden.
+error.mapnotfound = Map bestand niet gevonden!
+error.io = Netwerk I/O fout.
+error.any = Onbekende netwerk fout.
+error.bloom = Bloom aanzetten mislukt.\nJe apparaat ondersteunt het waarschijnlijk niet.
+
+zone.groundZero.name = Grond Nul
+zone.desertWastes.name = Woestijnpuin
+zone.craters.name = De kraters
+zone.frozenForest.name = Bevroren Bos
+zone.ruinousShores.name = Vervallen Kust
+zone.stainedMountains.name = Bekladde Berg
+zone.desolateRift.name = Verlaten Kloof
+zone.nuclearComplex.name = Vervallen Kernreactor
+zone.overgrowth.name = Overgroeid
+zone.tarFields.name = Teervelden
+zone.saltFlats.name = Zoutvlaktes
zone.impact0078.name = Impact 0078
zone.crags.name = Crags
-zone.fungalPass.name = Fungal Pass
-zone.groundZero.description = The optimal location to begin once more. Low enemy threat. Few resources.\nGather as much lead and copper as possible.\nMove on.
-zone.frozenForest.description = Even here, closer to mountains, the spores have spread. The fridgid temperatures cannot contain them forever.\n\nBegin the venture into power. Build combustion generators. Learn to use menders.
-zone.desertWastes.description = These wastes are vast, unpredictable, and criss-crossed with derelict sector structures.\nCoal is present in the region. Burn it for power, or synthesize graphite.\n\n[lightgray]This landing location cannot be guaranteed.
-zone.saltFlats.description = On the outskirts of the desert lie the Salt Flats. Few resources can be found in this location.\n\nThe enemy has erected a resource storage complex here. Eradicate their core. Leave nothing standing.
-zone.craters.description = Water has accumulated in this crater, relic of the old wars. Reclaim the area. Collect sand. Smelt metaglass. Pump water to cool turrets and drills.
-zone.ruinousShores.description = Past the wastes, is the shoreline. Once, this location housed a coastal defense array. Not much of it remains. Only the most basic defense structures have remained unscathed, everything else reduced to scrap.\nContinue the expansion outwards. Rediscover the technology.
-zone.stainedMountains.description = Further inland lie the mountains, yet untainted by spores.\nExtract the abundant titanium in this area. Learn how to use it.\n\nThe enemy presence is greater here. Do not give them time to send their strongest units.
-zone.overgrowth.description = This area is overgrown, closer to the source of the spores.\nThe enemy has established an outpost here. Build dagger units. Destroy it. Reclaim that which was lost.
-zone.tarFields.description = The outskirts of an oil production zone, between the mountains and desert. One of the few areas with usable tar reserves.\nAlthough abandoned, this area has some dangerous enemy forces nearby. Do not underestimate them.\n\n[lightgray]Research oil processing technology if possible.
-zone.desolateRift.description = An extremely dangerous zone. Plentiful resources, but little space. High risk of destruction. Leave as soon as possible. Do not be fooled by the long spacing between enemy attacks.
-zone.nuclearComplex.description = A former facility for the production and processing of thorium, reduced to ruins.\n[lightgray]Research the thorium and its many uses.\n\nThe enemy is present here in great numbers, constantly scouting for attackers.
-zone.fungalPass.description = A transition area between high mountains and lower, spore-ridden lands. A small enemy reconnaissance base is located here.\nDestroy it.\nUse Dagger and Crawler units. Take out the two cores.
+zone.fungalPass.name = Schimmelpad
+
+zone.groundZero.description = De optimale plek om weer tot kracht te komen. Weinig gevaar. Weinig grondstoffen.\nDelf zoveel mogelijk lood en koper als je kan.\nVertrek.
+zone.frozenForest.description = Ook hier, dicht bij de bergen, hebben de schimmels zich verspreid. De koude tempratuur houd ze niet voor eeuwig tegen.\n\nBegin de industriële revolutie. Bouw fossiele generators. Leer hoe te repareren.
+zone.desertWastes.description = Deze woestijn is groot, onvoorspelbaar, en vol met oude technologie.\nSteenkool is hier te vinden. Verbrand het om stroom op te wekken, of verwerk het tot grafiet.\n\n[lightgray]Of het hier veilig is is een tweede.
+zone.saltFlats.description = Aan de randen van de woestijn liggen de zoutvlaktes. Weinig grondstoffen zijn hier te vinden.\n\nDe vijand heeft hier rantsoenen opgeslagen. Vernietig hun core. Laat niks staan.
+zone.craters.description = Water heeft zich hier opgehoopt, herrinering aan de vroegere oorlog. Herover dit gebied. Delf zand. Maak glas. Pomp water in je wapens en boren om ze te koelen.
+zone.ruinousShores.description = Voorbij de ruines is de kust. Lang geleden werd de kust hier verdedigd maar er is weinig van terug te vinden. Enkel de meest simpele verdedigingswerken staan nog overeind, \nGa door met uitbereiden, herontdek de verloren techniek.
+zone.stainedMountains.description = Verder vanaf de kust liggen de bergen, nog niet aangetast door de schimmels.\nDelf de grote hoeveelheiden titanium titanium in het gebied en leer het te gebruiken.\n\nDe vijand is krachtig hier. Geef ze geen tijd om je te overrompelen.
+zone.overgrowth.description = Dit gebied is overgroeid, dichter bij de bron van de schimmels.\nDe vijand heeft hier een uitkijkpost. Bouw dolk units. Vernietig de vijand. Herneem wat ooit verloren was.
+zone.tarFields.description = De randen van een olieveld, tussen de bergen en de woestijn. Een van de weinige plekken met bruikbare olie.\nOndanks dat het verboden is, zijn er wel krachtige vijanden in de buurt. Onderschat ze niet.\n\n[lightgray]Onderzoek wat je verder allemaal met olie kan doen.
+zone.desolateRift.description = Een supergevaarlijk gebied. Veel grondstoffen, maar weinig ruimte. Grote kans op verwoesting. Lanceer zo snel mogelijk. Word niet overmoedig door de lange tijd tussen de rondes.
+zone.nuclearComplex.description = Een voormalige installatie voor de productie en verwerking van thorium ligt er nu verlaten bij.\n[lightgray]Onderzoek thorium en de vele toepassingen ervoor.\n\nDe vijand is hier aanwezig in grote getalen, constant waakzaam voor aanvallers.
+zone.fungalPass.description = Een transitiegebied tussen de hogergelegen bergen en de lagergelegen, beschimmelde gebieden. Een kleine verkenningsbasis is hier gepositioneerd.\nVernietig het.\nGebruik Dolk en Kruiper units. Maak de twee cores onbruikbaar.
zone.impact0078.description =
zone.crags.description =
-settings.language = Language
+
+settings.language = Taal
settings.data = Game Data
-settings.reset = Reset to Defaults
-settings.rebind = Rebind
-settings.controls = Controls
-settings.game = Game
-settings.sound = Sound
-settings.graphics = Graphics
-settings.cleardata = Clear Game Data...
-settings.clear.confirm = Are you sure you want to clear this data?\nWhat is done cannot be undone!
-settings.clearall.confirm = [scarlet]WARNING![]\nThis will clear all data, including saves, maps, unlocks and keybinds.\nOnce you press 'ok' the game will wipe all data and automatically exit.
-paused = [accent]< Paused >
-clear = Clear
-banned = [scarlet]Banned
-yes = Yes
-no = No
-info.title = Info
-error.title = [crimson]An error has occured
-error.crashtitle = An error has occured
+settings.reset = Terug naar standaardinstellingen
+settings.rebind = Verander
+settings.resetKey = Reset
+settings.controls = Bediening
+settings.game = Spel
+settings.sound = Geluid
+settings.graphics = Grafisch
+settings.cleardata = Wis Game Data...
+settings.clear.confirm = Weet je zeker dat je deze data wilt verwijderen?\nDit is niet terug te draaien!
+settings.clearall.confirm = [scarlet]WAARSCHUWING![]\nDit verwijderd alle darta, inclusief saves, mappen, technologie en bedienings-instellingen.\nAls je op doorgaat wist het spel al je data en stopt ie automatisch.
+paused = [accent]< Gepauzeerd >
+clear = Wis
+banned = [scarlet]Verbannen
+yes = Ja
+no = Nee
+info.title = Informatie
+error.title = [crimson]Een fout heeft zich voorgedaan
+error.crashtitle = Een fout heeft zich voorgedaan
blocks.input = Input
blocks.output = Output
blocks.booster = Booster
block.unknown = [LIGHT_GRAY]???
-blocks.powercapacity = Power Capacity
-blocks.powershot = Power/Shot
+blocks.powercapacity = Stroom Capaciteit
+blocks.powershot = Stroom/Shot
blocks.damage = Damage
-blocks.targetsair = Targets Air
-blocks.targetsground = Targets Ground
-blocks.itemsmoved = Move Speed
-blocks.launchtime = Time Between Launches
-blocks.shootrange = Range
-blocks.size = Size
-blocks.liquidcapacity = Liquid Capacity
-blocks.powerrange = Power Range
-blocks.powerconnections = Max Connections
-blocks.poweruse = Power Use
-blocks.powerdamage = Power/Damage
-blocks.itemcapacity = Item Capacity
-blocks.basepowergeneration = Base Power Generation
-blocks.productiontime = Production Time
-blocks.repairtime = Block Full Repair Time
-blocks.speedincrease = Speed Increase
-blocks.range = Range
-blocks.drilltier = Drillables
-blocks.drillspeed = Base Drill Speed
+blocks.targetsair = Luchtdoelwitten
+blocks.targetsground = Gronddoelwitten
+blocks.itemsmoved = Beweegsnelheid
+blocks.launchtime = Tijd tussen lanceringen
+blocks.shootrange = Bereik
+blocks.size = Formaat
+blocks.liquidcapacity = Vloeistof Capaciteit
+blocks.powerrange = Stroom Bereik
+blocks.powerconnections = Maximale Hoeveelheid Dradem
+blocks.poweruse = Stroom verbruik
+blocks.powerdamage = Stroom/Damage
+blocks.itemcapacity = Materiaal Capaciteit
+blocks.basepowergeneration = Standaard Stroom Generatie
+blocks.productiontime = Productie Tijd
+blocks.repairtime = Volledige Blok Repareertijd
+blocks.speedincrease = Snelheidsverhoging
+blocks.range = Bereik
+blocks.drilltier = Valt te delven
+blocks.drillspeed = Standaard mine snelheid
blocks.boosteffect = Boost Effect
-blocks.maxunits = Max Active Units
+blocks.maxunits = Maximaal Actieve Units
blocks.health = Health
-blocks.buildtime = Build Time
-blocks.buildcost = Build Cost
-blocks.inaccuracy = Inaccuracy
-blocks.shots = Shots
-blocks.reload = Shots/Second
-blocks.ammo = Ammo
-bar.drilltierreq = Better Drill Required
-bar.drillspeed = Drill Speed: {0}/s
-bar.pumpspeed = Pump Speed: {0}/s
-bar.efficiency = Efficiency: {0}%
-bar.powerbalance = Power: {0}
-bar.powerstored = Stored: {0}/{1}
-bar.poweramount = Power: {0}
-bar.poweroutput = Power Output: {0}
+blocks.buildtime = Bouw tijd
+blocks.buildcost = Bouw kosten
+blocks.inaccuracy = Onnauwkeurigheid
+blocks.shots = Shoten
+blocks.reload = Schoten/Seconde
+blocks.ammo = Ammonutie
+
+bar.drilltierreq = Betere miner nodig
+bar.drillspeed = Mining Snelheid: {0}/s
+bar.pumpspeed = Pomp Snelheid: {0}/s
+bar.efficiency = Rendement: {0}%
+bar.powerbalance = Stroom: {0}
+bar.powerstored = Opgeslagen: {0}/{1}
+bar.poweramount = Stroom: {0}
+bar.poweroutput = Stroom Output: {0}
bar.items = Items: {0}
-bar.capacity = Capacity: {0}
-bar.liquid = Liquid
-bar.heat = Heat
-bar.power = Power
-bar.progress = Build Progress
+bar.capacity = Capaciteit: {0}
+bar.liquid = Vloeistof
+bar.heat = Warmte
+bar.power = Stroom
+bar.progress = Bouw Voortgang
bar.spawned = Units: {0}/{1}
+bar.input = Input
+bar.output = Output
+
bullet.damage = [stat]{0}[lightgray] dmg
-bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles
-bullet.incendiary = [stat]incendiary
-bullet.homing = [stat]homing
-bullet.shock = [stat]shock
-bullet.frag = [stat]frag
-bullet.knockback = [stat]{0}[lightgray] knockback
-bullet.freezing = [stat]freezing
-bullet.tarred = [stat]tarred
-bullet.multiplier = [stat]{0}[lightgray]x ammo multiplier
-bullet.reload = [stat]{0}[lightgray]x reload
-unit.blocks = blocks
-unit.powersecond = power units/second
-unit.liquidsecond = liquid units/second
-unit.itemssecond = items/second
-unit.liquidunits = liquid units
-unit.powerunits = power units
-unit.degrees = degrees
-unit.seconds = seconds
+bullet.splashdamage = [stat]{0}[lightgray] gebied dmg ~[stat] {1}[lightgray] tiles
+bullet.incendiary = [stat]brandstichtend
+bullet.homing = [stat]doelzoekend
+bullet.shock = [stat]schok
+bullet.frag = [stat]clusterbom
+bullet.knockback = [stat]{0}[lightgray] terugslag
+bullet.freezing = [stat]bevriezend
+bullet.tarred = [stat]pek
+bullet.multiplier = [stat]{0}[lightgray]x ammonutie verdubbelaar
+bullet.reload = [stat]{0}[lightgray]x herlaad
+
+unit.blocks = blokken
+unit.powersecond = stroom eenheid/seconde
+unit.liquidsecond = vloeistof eenheid/seconde
+unit.itemssecond = items/seconde
+unit.liquidunits = vloeistof eenheid
+unit.powerunits = stroom eenheid
+unit.degrees = graden
+unit.seconds = secondes
unit.persecond = /sec
-unit.timesspeed = x speed
+unit.timesspeed = x snelheid
unit.percent = %
unit.items = items
-category.general = General
-category.power = Power
-category.liquids = Liquids
+unit.thousands = k
+unit.millions = mil
+category.general = Algemeen
+category.power = Stroom
+category.liquids = Vloeisof
category.items = Items
-category.crafting = Crafting
-category.shooting = Shooting
-category.optional = Optional Enhancements
-setting.landscape.name = Lock Landscape
-setting.shadows.name = Shadows
-setting.blockreplace.name = Automatic Block Suggestions
+category.crafting = Productie
+category.shooting = Wapens
+category.optional = Optionele Verbeteringen
+setting.landscape.name = Vergrendel Landscape
+setting.shadows.name = Schaduws
+setting.blockreplace.name = Automatische Blok Suggesties
setting.linear.name = Linear Filtering
setting.hints.name = Hints
-setting.animatedwater.name = Animated Water
-setting.animatedshields.name = Animated Shields
-setting.antialias.name = Antialias[LIGHT_GRAY] (requires restart)[]
-setting.indicators.name = Ally Indicators
+setting.buildautopause.name = Pauzeer Bouw Automatisch
+setting.animatedwater.name = Animeer Water
+setting.animatedshields.name = Animeer Schilden
+setting.antialias.name = Antialias[LIGHT_GRAY] (herstart vereist)[]
+setting.indicators.name = Toon Bondgenoten
setting.autotarget.name = Auto-Target
-setting.keyboard.name = Mouse+Keyboard Controls
+setting.keyboard.name = Muis+Toetsenbord Controls
setting.touchscreen.name = Touchscreen Controls
setting.fpscap.name = Max FPS
setting.fpscap.none = None
setting.fpscap.text = {0} FPS
-setting.uiscale.name = UI Scaling[lightgray] (require restart)[]
-setting.swapdiagonal.name = Always Diagonal Placement
-setting.difficulty.training = training
-setting.difficulty.easy = easy
-setting.difficulty.normal = normal
+setting.uiscale.name = UI Schaal[lightgray] (herstart vereist)[]
+setting.swapdiagonal.name = Altijd Diagonaal Plaatsen
+setting.difficulty.training = kalm
+setting.difficulty.easy = makkelijk
+setting.difficulty.normal = normaal
setting.difficulty.hard = hard
-setting.difficulty.insane = insane
-setting.difficulty.name = Difficulty:
-setting.screenshake.name = Screen Shake
-setting.effects.name = Display Effects
-setting.destroyedblocks.name = Display Destroyed Blocks
-setting.conveyorpathfinding.name = Conveyor Placement Pathfinding
-setting.sensitivity.name = Controller Sensitivity
+setting.difficulty.insane = krankzinnig
+setting.difficulty.name = Moeilijkheidsgraad:
+setting.screenshake.name = Schuddend Scherm
+setting.effects.name = Toon Effecten
+setting.destroyedblocks.name = Toon Vernietigde Blokken
+setting.conveyorpathfinding.name = Lopendeband Plaats Hulp
+setting.coreselect.name = Sta cores toe in blauwdrukken
+setting.sensitivity.name = Gevoeligheid Controller
setting.saveinterval.name = Autosave Interval
-setting.seconds = {0} Seconds
-setting.fullscreen.name = Fullscreen
-setting.borderlesswindow.name = Borderless Window[LIGHT_GRAY] (may require restart)
+setting.seconds = {0} Seconden
+setting.blockselecttimeout.name = Block Select Timeout
+setting.milliseconds = {0} millisecondes
+setting.fullscreen.name = Volledig scherm
+setting.borderlesswindow.name = Borderless Venster[LIGHT_GRAY] (wellicht herstart vereist)
setting.fps.name = Show FPS
+setting.blockselectkeys.name = Toon Blok Selectie Toetscombinaties
setting.vsync.name = VSync
-setting.pixelate.name = Pixelate [LIGHT_GRAY](may decrease performance)
-setting.minimap.name = Show Minimap
-setting.position.name = Show Player Position
-setting.musicvol.name = Music Volume
-setting.ambientvol.name = Ambient Volume
-setting.mutemusic.name = Mute Music
+setting.pixelate.name = Pixelate [LIGHT_GRAY](mogelijk verminderde performance)
+setting.minimap.name = Toon Minimap
+setting.position.name = Toon Speler Posities
+setting.musicvol.name = Muziek Volume
+setting.ambientvol.name = Achtergronds Volume
+setting.mutemusic.name = Demp Muziek
setting.sfxvol.name = SFX Volume
-setting.mutesound.name = Mute Sound
-setting.crashreport.name = Send Anonymous Crash Reports
-setting.savecreate.name = Auto-Create Saves
-setting.publichost.name = Public Game Visibility
-setting.chatopacity.name = Chat Opacity
-setting.lasersopacity.name = Power Laser Opacity
-setting.playerchat.name = Display In-Game Chat
-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.
-uiscale.reset = UI scale has been changed.\nPress "OK" to confirm this scale.\n[scarlet]Reverting and exiting in[accent] {0}[] settings...
-uiscale.cancel = Cancel & Exit
+setting.mutesound.name = Demp Geluid
+setting.crashreport.name = Stuur Anonieme Crashmeldingen
+setting.savecreate.name = Bewaar Saves Automatisch
+setting.publichost.name = Publieke Server Zichtbaarheid
+setting.chatopacity.name = Chat Transparantie
+setting.lasersopacity.name = Stroom Draad Transparantie
+setting.playerchat.name = Toon chat
+public.confirm = Wil je je game publiek maken?\n[accent]Iedereen kan dan je games joinen.\n[lightgray]Dit kan je later veranderen in Instellingen->Spel->Publieke Server Zichtbaarheid.
+public.beta = Onthoud dat beta versies van het spel niet publiek kunnen lobbyen.
+uiscale.reset = UI formaat is geweizigd.\nKlik op "OK" om het te bevestigen.\n[scarlet]Anders word het in[accent] {0}[] ongedaan gemaakt...
+uiscale.cancel = Anuleer & Exit
setting.bloom.name = Bloom
-keybind.title = Rebind Keys
-keybinds.mobile = [scarlet]Most keybinds here are not functional on mobile. Only basic movement is supported.
-category.general.name = General
-category.view.name = View
+keybind.title = Verander Keys
+keybinds.mobile = [scarlet]De meeste keybinds werken niet voor mobiel. Enkel standaard bewegingen zijn gesupport.
+category.general.name = Algemeen
+category.view.name = Toon
category.multiplayer.name = Multiplayer
-command.attack = Attack
-command.rally = Rally
-command.retreat = Retreat
-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.move_x.name = Move x
-keybind.move_y.name = Move 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.fullscreen.name = Toggle Fullscreen
-keybind.select.name = Select/Shoot
-keybind.diagonal_placement.name = Diagonal Placement
-keybind.pick.name = Pick Block
-keybind.break_block.name = Break Block
-keybind.deselect.name = Deselect
-keybind.shoot.name = Shoot
+command.attack = Val aan
+command.rally = Groepeer
+command.retreat = Terugtrekken
+placement.blockselectkeys = \n[lightgray]Toets: [{0},
+keybind.clear_building.name = Stop met bouwen
+keybind.press = Druk op een toets...
+keybind.press.axis = Druk of swipe een toets...
+keybind.screenshot.name = Map Schermfbeelding
+keybind.toggle_power_lines.name = Wel/Geen Stroom Draden
+keybind.move_x.name = Beweeg x
+keybind.move_y.name = Beweeg y
+keybind.mouse_move.name = Volg Muis
+keybind.dash.name = Vlieg
+keybind.schematic_select.name = Selecteer gebied
+keybind.schematic_menu.name = Blauwdruk Menu
+keybind.schematic_flip_x.name = Spiegel Blauwdruk X
+keybind.schematic_flip_y.name = Spiegel Blauwdruk Y
+keybind.category_prev.name = Vorige Categorie
+keybind.category_next.name = Volgende Categorie
+keybind.block_select_left.name = Selecteer Blok Links
+keybind.block_select_right.name = Selecteer Blok Rechts
+keybind.block_select_up.name = Selecteer Blok Omhoog
+keybind.block_select_down.name = Selecteer Blok Omlaag
+keybind.block_select_01.name = Selecteer Categorie/Blok 1
+keybind.block_select_02.name = Selecteer Categorie/Blok 2
+keybind.block_select_03.name = Selecteer Categorie/Blok 3
+keybind.block_select_04.name = Selecteer Categorie/Blok 4
+keybind.block_select_05.name = Selecteer Categorie/Blok 5
+keybind.block_select_06.name = Selecteer Categorie/Blok 6
+keybind.block_select_07.name = Selecteer Categorie/Blok 7
+keybind.block_select_08.name = Selecteer Categorie/Blok 8
+keybind.block_select_09.name = Selecteer Categorie/Blok 9
+keybind.block_select_10.name = Selecteer Categorie/Blok 10
+keybind.fullscreen.name = Schakel Fullscreen
+keybind.select.name = Selecteer/Schiet
+keybind.diagonal_placement.name = Plaats Diagonaal
+keybind.pick.name = Kies Blok
+keybind.break_block.name = Breek Blok
+keybind.deselect.name = Deselecteer
+keybind.shoot.name = Shiet
keybind.zoom.name = Zoom
keybind.menu.name = Menu
-keybind.pause.name = Pause
-keybind.pause_building.name = Pause/Resume Building
+keybind.pause.name = Pauze
+keybind.pause_building.name = Pauzeer/Hervat Bouwen
keybind.minimap.name = Minimap
-keybind.dash.name = Dash
keybind.chat.name = Chat
-keybind.player_list.name = Player list
+keybind.player_list.name = Speler list
keybind.console.name = Console
-keybind.rotate.name = Rotate
-keybind.rotateplaced.name = Rotate Existing (Hold)
-keybind.toggle_menus.name = Toggle menus
-keybind.chat_history_prev.name = Chat history prev
-keybind.chat_history_next.name = Chat history next
+keybind.rotate.name = Roteer
+keybind.rotateplaced.name = Roteer bestaand (Houd vast)
+keybind.toggle_menus.name = Schakel menus
+keybind.chat_history_prev.name = Chat geschiedenis ouder
+keybind.chat_history_next.name = Chat geschiedenis nieuwer
keybind.chat_scroll.name = Chat scroll
keybind.drop_unit.name = Drop Unit
keybind.zoom_minimap.name = Zoom minimap
-mode.help.title = Description of modes
-mode.survival.name = Survival
-mode.survival.description = The normal mode. Limited resources and automatic incoming waves.
-mode.sandbox.name = Sandbox
-mode.sandbox.description = Infinite resources and no timer for waves.
+mode.help.title = Beschrijving van modes
+mode.survival.name = Overleving
+mode.survival.description = De normale mode. Standaard grondstoffen en rondes met vijanden.
+mode.sandbox.name = Zandbak
+mode.sandbox.description = Oneindige resources en geen automatische vijandelijke rondes.
mode.editor.name = Editor
mode.pvp.name = PvP
-mode.pvp.description = Fight against other players locally.
-mode.attack.name = Attack
-mode.attack.description = No waves, with the goal to destroy the enemy base.
-mode.custom = Custom Rules
-rules.infiniteresources = Infinite Resources
-rules.wavetimer = Wave Timer
-rules.waves = Waves
-rules.attack = Attack Mode
-rules.enemyCheat = Infinite AI Resources
+mode.pvp.description = Vecht tegen andere spelers.
+mode.attack.name = Aanvallen
+mode.attack.description = Geen rondes, maar met als doel de vijandlijke core(s) te vernietigen.
+mode.custom = Aangepaste regels
+
+rules.infiniteresources = Oneindige Resources
+rules.reactorexplosions = Ontploffende Reactors
+rules.wavetimer = Ronde timer
+rules.waves = Rondes
+rules.attack = Aanval modus
+rules.enemyCheat = Oneindige AI grondstoffen
rules.unitdrops = Unit Drops
-rules.unitbuildspeedmultiplier = Unit Creation Speed Multiplier
-rules.unithealthmultiplier = Unit Health Multiplier
-rules.playerhealthmultiplier = Player Health Multiplier
-rules.playerdamagemultiplier = Player Damage Multiplier
-rules.unitdamagemultiplier = Unit Damage Multiplier
-rules.enemycorebuildradius = Enemy Core No-Build Radius:[LIGHT_GRAY] (tiles)
-rules.respawntime = Respawn Time:[LIGHT_GRAY] (sec)
-rules.wavespacing = Wave Spacing:[LIGHT_GRAY] (sec)
-rules.buildcostmultiplier = Build Cost Multiplier
-rules.buildspeedmultiplier = Build Speed Multiplier
-rules.waitForWaveToEnd = Waves wait for enemies
-rules.dropzoneradius = Drop Zone Radius:[LIGHT_GRAY] (tiles)
-rules.respawns = Max respawns per wave
-rules.limitedRespawns = Limit Respawns
-rules.title.waves = Waves
-rules.title.respawns = Respawns
-rules.title.resourcesbuilding = Resources & Building
-rules.title.player = Players
-rules.title.enemy = Enemies
+rules.unitbuildspeedmultiplier = Unit Spawn Snelheid Vermenigvulder
+rules.unithealthmultiplier = Unit Health Vermenigvulder
+rules.blockhealthmultiplier = Blok Health Vermenigvulder
+rules.playerhealthmultiplier = Speler Health Vermenigvulder
+rules.playerdamagemultiplier = Speler Damage Vermenigvulder
+rules.unitdamagemultiplier = Unit Damage Vermenigvulder
+rules.enemycorebuildradius = Niet-Bouw Bereik Vijandelijke Cores:[LIGHT_GRAY] (tegels)
+rules.respawntime = Herspawn Tijd:[LIGHT_GRAY] (sec)
+rules.wavespacing = Tijd Tussen Rondes:[LIGHT_GRAY] (sec)
+rules.buildcostmultiplier = Bouw kosten Vermenigvulder
+rules.buildspeedmultiplier = Bouw snelheid Vermenigvulder
+rules.waitForWaveToEnd = Rondes wachten tot alles is verslagen
+rules.dropzoneradius = Vijandelijke Spawn Diameter:[LIGHT_GRAY] (tegels)
+rules.respawns = Maximale Levens Per Ronde
+rules.limitedRespawns = Maximale Levens
+rules.title.waves = Rondes
+rules.title.respawns = Respawn
+rules.title.resourcesbuilding = Grondstoffen & Bouwen
+rules.title.player = Spelers
+rules.title.enemy = Tegenstanders
rules.title.unit = Units
+rules.title.experimental = Experimenteel
+rules.lighting = Belichting
+rules.ambientlight = Mist
+
content.item.name = Items
-content.liquid.name = Liquids
+content.liquid.name = Vloeisof
content.unit.name = Units
-content.block.name = Blocks
-content.mech.name = Mechs
-item.copper.name = Copper
-item.lead.name = Lead
-item.coal.name = Coal
-item.graphite.name = Graphite
+content.block.name = Blokken
+content.mech.name = Behuizing
+item.copper.name = Coper
+item.lead.name = Lood
+item.coal.name = Steenkool
+item.graphite.name = Grafiet
item.titanium.name = Titanium
item.thorium.name = Thorium
-item.silicon.name = Silicon
+item.silicon.name = Silicium
item.plastanium.name = Plastanium
item.phase-fabric.name = Phase Fabric
item.surge-alloy.name = Surge Alloy
item.spore-pod.name = Spore Pod
-item.sand.name = Sand
+item.sand.name = Zand
item.blast-compound.name = Blast Compound
item.pyratite.name = Pyratite
-item.metaglass.name = Metaglass
+item.metaglass.name = Glas
item.scrap.name = Scrap
liquid.water.name = Water
liquid.slag.name = Slag
-liquid.oil.name = Oil
-liquid.cryofluid.name = Cryofluid
+liquid.oil.name = Olie
+liquid.cryofluid.name = Koelvloeistof
mech.alpha-mech.name = Alpha
mech.alpha-mech.weapon = Heavy Repeater
mech.alpha-mech.ability = Drone Swarm
@@ -752,142 +824,147 @@ mech.trident-ship.name = Trident
mech.trident-ship.weapon = Bomb Bay
mech.glaive-ship.name = Glaive
mech.glaive-ship.weapon = Flame Repeater
-item.explosiveness = [LIGHT_GRAY]Explosiveness: {0}%
-item.flammability = [LIGHT_GRAY]Flammability: {0}%
-item.radioactivity = [LIGHT_GRAY]Radioactivity: {0}%
+item.corestorable = [lightgray]Kan in de Core: {0}
+item.explosiveness = [LIGHT_GRAY]Explosivieit: {0}%
+item.flammability = [LIGHT_GRAY]Vlambaarheid: {0}%
+item.radioactivity = [LIGHT_GRAY]Radioactiviteit: {0}%
unit.health = [LIGHT_GRAY]Health: {0}
-unit.speed = [LIGHT_GRAY]Speed: {0}
-mech.weapon = [LIGHT_GRAY]Weapon: {0}
+unit.speed = [LIGHT_GRAY]Snelheid: {0}
+mech.weapon = [LIGHT_GRAY]Wapen: {0}
mech.health = [LIGHT_GRAY]Health: {0}
-mech.itemcapacity = [LIGHT_GRAY]Item Capacity: {0}
-mech.minespeed = [LIGHT_GRAY]Mining Speed: {0}
-mech.minepower = [LIGHT_GRAY]Mining Power: {0}
+mech.itemcapacity = [LIGHT_GRAY]Item Capaciteit: {0}
+mech.minespeed = [LIGHT_GRAY]Mining Snelheid: {0}
+mech.minepower = [LIGHT_GRAY]Mining Hardheid: {0}
mech.ability = [LIGHT_GRAY]Ability: {0}
-mech.buildspeed = [LIGHT_GRAY]Building Speed: {0}%
-liquid.heatcapacity = [LIGHT_GRAY]Heat Capacity: {0}
-liquid.viscosity = [LIGHT_GRAY]Viscosity: {0}
-liquid.temperature = [LIGHT_GRAY]Temperature: {0}
-block.sand-boulder.name = Sand Boulder
-block.grass.name = Grass
-block.salt.name = Salt
-block.saltrocks.name = Salt Rocks
-block.pebbles.name = Pebbles
+mech.buildspeed = [LIGHT_GRAY]Bouw Snelheid: {0}%
+liquid.heatcapacity = [LIGHT_GRAY]Warmte Capaciteit: {0}
+liquid.viscosity = [LIGHT_GRAY]Viscositeit: {0}
+liquid.temperature = [LIGHT_GRAY]Tempratuur: {0}
+
+block.sand-boulder.name = Zandkei
+block.grass.name = Gras
+block.salt.name = Zout
+block.saltrocks.name = Zoutsteen
+block.pebbles.name = Steentjes
block.tendrils.name = Tendrils
-block.sandrocks.name = Sand Rocks
-block.spore-pine.name = Spore Pine
-block.sporerocks.name = Spore Rocks
-block.rock.name = Rock
-block.snowrock.name = Snow Rock
-block.snow-pine.name = Snow Pine
+block.sandrocks.name = Zandsteen
+block.spore-pine.name = Sporenden
+block.sporerocks.name = Spore Steens
+block.rock.name = Steen
+block.snowrock.name = Sneeuwsteen
+block.snow-pine.name = Sneeuwden
block.shale.name = Shale
block.shale-boulder.name = Shale Boulder
-block.moss.name = Moss
-block.shrubs.name = Shrubs
+block.moss.name = Mos
+block.shrubs.name = Plantje
block.spore-moss.name = Spore Moss
-block.shalerocks.name = Shale Rocks
-block.scrap-wall.name = Scrap Wall
-block.scrap-wall-large.name = Large Scrap Wall
-block.scrap-wall-huge.name = Huge Scrap Wall
-block.scrap-wall-gigantic.name = Gigantic Scrap Wall
+block.shalerocks.name = Shale Steens
+block.scrap-wall.name = Scrap Muur
+block.scrap-wall-large.name = Large Scrap Muur
+block.scrap-wall-huge.name = Huge Scrap Muur
+block.scrap-wall-gigantic.name = Gigantic Scrap Muur
block.thruster.name = Thruster
-block.kiln.name = Kiln
-block.graphite-press.name = Graphite Press
-block.multi-press.name = Multi-Press
-block.constructing = {0} [LIGHT_GRAY](Constructing)
-block.spawn.name = Enemy Spawn
+block.kiln.name = Glasoven
+block.graphite-press.name = Grafiet Pers
+block.multi-press.name = Super-Pers
+block.constructing = {0} [LIGHT_GRAY](Bouwen)
+block.spawn.name = Vijandelijke Spawn
block.core-shard.name = Core: Shard
block.core-foundation.name = Core: Foundation
block.core-nucleus.name = Core: Nucleus
-block.deepwater.name = Deep Water
+block.deepwater.name = Diep Water
block.water.name = Water
-block.tainted-water.name = Tainted Water
-block.darksand-tainted-water.name = Dark Sand Tainted Water
-block.tar.name = Tar
-block.stone.name = Stone
-block.sand.name = Dark Sand
-block.darksand.name = Dark Sand
-block.ice.name = Ice
-block.snow.name = Snow
-block.craters.name = Craters
-block.sand-water.name = Sand water
-block.darksand-water.name = Dark Sand Water
+block.tainted-water.name = Vervuild Water
+block.darksand-tainted-water.name = Donker Zand Vervuild Water
+block.tar.name = Olie
+block.stone.name = Steen
+block.sand.name = Donker Zand
+block.darksand.name = Donker Zand
+block.ice.name = Ijs
+block.snow.name = Sneeuw
+block.craters.name = Krarters
+block.sand-water.name = Zand water
+block.darksand-water.name = Donker Zand Water
block.char.name = Char
block.holostone.name = Holo stone
block.ice-snow.name = Ice Snow
-block.rocks.name = Rocks
-block.icerocks.name = Ice rocks
-block.snowrocks.name = Snow Rocks
-block.dunerocks.name = Dune Rocks
-block.pine.name = Pine
-block.white-tree-dead.name = White Tree Dead
-block.white-tree.name = White Tree
+block.rocks.name = Stenen
+block.icerocks.name = Ijs Stenen
+block.snowrocks.name = Snow Steens
+block.dunerocks.name = Dune Steens
+block.pine.name = Den
+block.white-tree-dead.name = Witte Boom Dood
+block.white-tree.name = Witte Boom
block.spore-cluster.name = Spore Cluster
-block.metal-floor.name = Metal Floor
-block.metal-floor-2.name = Metal Floor 2
-block.metal-floor-3.name = Metal Floor 3
-block.metal-floor-5.name = Metal Floor 5
-block.metal-floor-damaged.name = Metal Floor Damaged
-block.dark-panel-1.name = Dark Panel 1
-block.dark-panel-2.name = Dark Panel 2
-block.dark-panel-3.name = Dark Panel 3
-block.dark-panel-4.name = Dark Panel 4
-block.dark-panel-5.name = Dark Panel 5
-block.dark-panel-6.name = Dark Panel 6
-block.dark-metal.name = Dark Metal
-block.ignarock.name = Igna Rock
-block.hotrock.name = Hot Rock
-block.magmarock.name = Magma Rock
+block.metal-floor.name = Metalen Vloer
+block.metal-floor-2.name = Metalen Vloer 2
+block.metal-floor-3.name = Metalen Vloer 3
+block.metal-floor-5.name = Metalen Vloer 5
+block.metal-floor-damaged.name = Metalen Vloer Beschadigd
+block.dark-panel-1.name = Donker Paneel 1
+block.dark-panel-2.name = Donker Paneel 2
+block.dark-panel-3.name = Donker Paneel 3
+block.dark-panel-4.name = Donker Paneel 4
+block.dark-panel-5.name = Donker Paneel 5
+block.dark-panel-6.name = Donker Paneel 6
+block.dark-metal.name = Donker Metaal
+block.ignarock.name = Igna Steen
+block.hotrock.name = Lava Steen
+block.magmarock.name = Magma Steen
block.cliffs.name = Cliffs
-block.copper-wall.name = Copper Wall
-block.copper-wall-large.name = Large Copper Wall
-block.titanium-wall.name = Titanium Wall
-block.titanium-wall-large.name = Large Titanium Wall
-block.plastanium-wall.name = Plastanium Wall
-block.plastanium-wall-large.name = Large Plastanium Wall
-block.phase-wall.name = Phase Wall
-block.phase-wall-large.name = Large Phase Wall
-block.thorium-wall.name = Thorium Wall
-block.thorium-wall-large.name = Large Thorium Wall
-block.door.name = Door
-block.door-large.name = Large Door
+block.copper-wall.name = Koperen Muur
+block.copper-wall-large.name = Grote Koperen Muur
+block.titanium-wall.name = Titanium Muur
+block.titanium-wall-large.name = Grote Titanium Muur
+block.plastanium-wall.name = Plastanium Muur
+block.plastanium-wall-large.name = Grote Plastanium Muur
+block.phase-wall.name = Phase Muur
+block.phase-wall-large.name = Grote Phase Muur
+block.thorium-wall.name = Thorium Muur
+block.thorium-wall-large.name = Grote Thorium Muur
+block.door.name = Deur
+block.door-large.name = Grote Deur
block.duo.name = Duo
block.scorch.name = Scorch
block.scatter.name = Scatter
block.hail.name = Hail
block.lancer.name = Lancer
-block.conveyor.name = Conveyor
-block.titanium-conveyor.name = Titanium Conveyor
-block.armored-conveyor.name = Armored Conveyor
-block.armored-conveyor.description = Moves items at the same speed as titanium conveyors, but possesses more armor. Does not accept inputs from the sides from anything but other conveyors.
-block.junction.name = Junction
+block.conveyor.name = Lopende Band
+block.titanium-conveyor.name = Titanium Lopende Band
+block.armored-conveyor.name = Gepantserde Lopende Band
+block.armored-conveyor.description = Verplaatst items met dezelfde snelheid als een van titanium, maar heeft meer levenspunten. accepteert alleen items van de zijkanten als het ook lopende banden zijn.
+block.junction.name = Kruising
block.router.name = Router
block.distributor.name = Distributor
-block.sorter.name = Sorter
-block.inverted-sorter.name = Inverted Sorter
-block.message.name = Message
+block.sorter.name = Sorteerder
+block.inverted-sorter.name = Omgekeerder Sorteerder
+block.message.name = Bericht
+block.illuminator.name = Lamp
+block.illuminator.description = Een kleine aanpasbare lamp, heef stroom nodig.
block.overflow-gate.name = Overflow Gate
block.silicon-smelter.name = Silicon Smelter
block.phase-weaver.name = Phase Weaver
block.pulverizer.name = Pulverizer
block.cryofluidmixer.name = Cryofluid Mixer
block.melter.name = Melter
-block.incinerator.name = Incinerator
+block.incinerator.name = Verbrander
block.spore-press.name = Spore Press
block.separator.name = Separator
block.coal-centrifuge.name = Coal Centrifuge
-block.power-node.name = Power Node
-block.power-node-large.name = Large Power Node
-block.surge-tower.name = Surge Tower
-block.battery.name = Battery
-block.battery-large.name = Large Battery
-block.combustion-generator.name = Combustion Generator
+block.power-node.name = Stroompaal
+block.power-node-large.name = Grote Stroompaal
+block.surge-tower.name = Hoogspanningsmast
+block.diode.name = Batterij Diode
+block.battery.name = Batterij
+block.battery-large.name = Grote Batterij
+block.combustion-generator.name = Fossiele Generator
block.turbine-generator.name = Turbine Generator
block.differential-generator.name = Differential Generator
block.impact-reactor.name = Impact Reactor
-block.mechanical-drill.name = Mechanical Drill
-block.pneumatic-drill.name = Pneumatic Drill
+block.mechanical-drill.name = Mechanische Drill
+block.pneumatic-drill.name = Pneumatische Drill
block.laser-drill.name = Laser Drill
-block.water-extractor.name = Water Extractor
+block.water-extractor.name = Water Put
block.cultivator.name = Cultivator
block.dart-mech-pad.name = Dart Mech Pad
block.delta-mech-pad.name = Delta Mech Pad
@@ -896,15 +973,16 @@ block.trident-ship-pad.name = Trident Ship Pad
block.glaive-ship-pad.name = Glaive Ship Pad
block.omega-mech-pad.name = Omega Mech Pad
block.tau-mech-pad.name = Tau Mech Pad
-block.conduit.name = Conduit
-block.mechanical-pump.name = Mechanical Pump
+block.conduit.name = Pijp
+block.mechanical-pump.name = Mechanische Pomp
block.item-source.name = Item Source
block.item-void.name = Item Void
block.liquid-source.name = Liquid Source
+block.liquid-void.name = Liquid Void
block.power-void.name = Power Void
block.power-source.name = Power Infinite
block.unloader.name = Unloader
-block.vault.name = Vault
+block.vault.name = Kluis
block.wave.name = Wave
block.swarmer.name = Swarmer
block.salvo.name = Salvo
@@ -914,9 +992,9 @@ block.bridge-conveyor.name = Bridge Conveyor
block.plastanium-compressor.name = Plastanium Compressor
block.pyratite-mixer.name = Pyratite Mixer
block.blast-mixer.name = Blast Mixer
-block.solar-panel.name = Solar Panel
-block.solar-panel-large.name = Large Solar Panel
-block.oil-extractor.name = Oil Extractor
+block.solar-panel.name = Zonnepaneeltje
+block.solar-panel-large.name = Zonnepaneel
+block.oil-extractor.name = Olie put
block.command-center.name = Command Center
block.draug-factory.name = Draug Miner Drone Factory
block.spirit-factory.name = Spirit Drone Factory
@@ -930,10 +1008,11 @@ block.fortress-factory.name = Fortress Mech Factory
block.revenant-factory.name = Revenant Fighter Factory
block.repair-point.name = Repair Point
block.pulse-conduit.name = Pulse Conduit
+block.plated-conduit.name = Gepantserde Pijp
block.phase-conduit.name = Phase Conduit
block.liquid-router.name = Liquid Router
-block.liquid-tank.name = Liquid Tank
-block.liquid-junction.name = Liquid Junction
+block.liquid-tank.name = Vloeistof Tank
+block.liquid-junction.name = Vloeistof Kruising
block.bridge-conduit.name = Bridge Conduit
block.rotary-pump.name = Rotary Pump
block.thorium-reactor.name = Thorium Reactor
@@ -944,32 +1023,32 @@ block.thermal-generator.name = Thermal Generator
block.alloy-smelter.name = Alloy Smelter
block.mender.name = Mender
block.mend-projector.name = Mend Projector
-block.surge-wall.name = Surge Wall
-block.surge-wall-large.name = Large Surge Wall
+block.surge-wall.name = Surge Muur
+block.surge-wall-large.name = Grote Surge Muur
block.cyclone.name = Cyclone
block.fuse.name = Fuse
-block.shock-mine.name = Shock Mine
+block.shock-mine.name = Electrische Landmijn
block.overdrive-projector.name = Overdrive Projector
-block.force-projector.name = Force Projector
+block.force-projector.name = Krachtveld
block.arc.name = Arc
block.rtg-generator.name = RTG Generator
block.spectre.name = Spectre
block.meltdown.name = Meltdown
-block.container.name = Container
+block.container.name = Doos
block.launch-pad.name = Launch Pad
block.launch-pad-large.name = Large Launch Pad
-team.blue.name = blue
-team.crux.name = red
-team.sharded.name = orange
-team.orange.name = orange
-team.derelict.name = derelict
-team.green.name = green
-team.purple.name = purple
+team.blue.name = blauw
+team.crux.name = rood
+team.sharded.name = oranje
+team.orange.name = oranje
+team.derelict.name = wees
+team.green.name = groen
+team.purple.name = paars
unit.spirit.name = Spirit Drone
unit.draug.name = Draug Miner Drone
unit.phantom.name = Phantom Drone
-unit.dagger.name = Dagger
-unit.crawler.name = Crawler
+unit.dagger.name = Dolk
+unit.crawler.name = Kruiper
unit.titan.name = Titan
unit.ghoul.name = Ghoul Bomber
unit.wraith.name = Wraith Fighter
@@ -980,27 +1059,28 @@ unit.chaos-array.name = Chaos Array
unit.eradicator.name = Eradicator
unit.lich.name = Lich
unit.reaper.name = Reaper
-tutorial.next = [lightgray]
-tutorial.intro = You have entered the[scarlet] Mindustry Tutorial.[]\nBegin by[accent] mining copper[]. Tap a copper ore vein near your core to do this.\n\n[accent]{0}/{1} copper
-tutorial.intro.mobile = You have entered the[scarlet] Mindustry Tutorial.[]\nSwipe the screen to move.\n[accent]Pinch with 2 fingers [] to zoom in and out.\nBegin by[accent] mining copper[]. Move close to it, then tap a copper ore vein near your core to do this.\n\n[accent]{0}/{1} copper
-tutorial.drill = Mining manually is inefficient.\n[accent]Drills []can mine automatically.\nPlace one on a copper vein.
-tutorial.drill.mobile = Mining manually is inefficient.\n[accent]Drills []can mine automatically.\nTap the drill tab in the bottom right.\nSelect the[accent] mechanical drill[].\nPlace it on a copper vein by tapping, then press the[accent] checkmark[] below to confirm your selection.\nPress the[accent] X button[] to cancel placement.
-tutorial.blockinfo = Each block has different stats. Each drill can only mine certain ores.\nTo check a block's info and stats,[accent] tap the "?" button while selecting it in the build menu.[]\n\n[accent]Access the Mechanical Drill's stats now.[]
-tutorial.conveyor = [accent]Conveyors[] are used to transport items to the core.\nMake a line of conveyors from the drill to the core.
-tutorial.conveyor.mobile = [accent]Conveyors[] are used to transport items to the core.\nMake a line of conveyors from the drill to the core.\n[accent] Place in a line by holding down your finger for a few seconds[] and dragging in a direction.\n\n[accent]{0}/{1} conveyors placed in line\n[accent]0/1 items delivered
-tutorial.turret = Defensive structures must be built to repel the[LIGHT_GRAY] enemy[].\nBuild a duo turret near your base.
-tutorial.drillturret = Duo turrets require[accent] copper ammo []to shoot.\nPlace a drill next to the turret to supply it with mined copper.
-tutorial.pause = During battle, you are able to[accent] pause the game.[]\nYou may queue buildings while paused.\n\n[accent]Press space to pause.
+tutorial.next = [lightgray]
+tutorial.intro = Welkom bij de[scarlet] Mindustry Tutorial.[]\nBegin met het[accent] delven van koper[]. Klik op een vakje die het heeft om het te delven.\n\n[accent]{0}/{1} koper
+tutorial.intro.mobile = Welkom bij de[scarlet] Mindustry Tutorial.[]\nVeeg over het scherm om te bewegen.\n[accent]Knijp met 2 vingers [] om in en uit te zoomen.\nBegin met het[accent] delven van koper[]. Beweeg dichterbij, en klik er dan op.\n\n[accent]{0}/{1} koper
+tutorial.drill = Met de hand delven is inefficient.\n[accent]Drills []kunnen automatisch voor je delven.\nPlaats er een op de koper.
+tutorial.drill.mobile = Met de hand delven is inefficient.\n[accent]Drills []kunnen automatisch voor je delven.\nZoek de drill rechts onderin.\nSelecter de[accent] mechanische drill[].\nPlaats het op de koper door erop te klikken, druk dan op het[accent] vinkje[] om het bouwen te bevestigen.\nKlik op de[accent] X knop[] om het te anuleren.
+tutorial.blockinfo = Elk blok heeft andere statistieken. Elke drill kan enkel bepaalde dingen delven.\nOm het van een blok te checken,[accent] druk op de "?" knop terwijl je het blok vast hebt.[]\n\n[accent]Lees de stats van de Mechanische Drill maar eens.[]
+tutorial.conveyor = [accent]Lopende Banden[] worden gebruikt om je items naar je core te krijgen.\nLeg een line aan van je drills tot aan je core.
+tutorial.conveyor.mobile = [accent]Lopende Banden[] worden gebruikt om je items naar je core te krijgen.\nLeg een line aan van je drills tot aan je core.\n[accent] Doe dit door je vinger een paar seconden stil te houden[] en dan in een richting te slepen.\n\n[accent]{0}/{1} lopende banden in 1x geplaatst\n[accent]0/1 items afgeleverd
+tutorial.turret = Defensieve gebouwen moeten worden gebouwd tegen de[LIGHT_GRAY] vijand[].\nBouw een duo kannon bij je basis.
+tutorial.drillturret = Duo's hebben[accent] koperen ammonutie []nodig om te schieten.\nPlaatst een drill ernaast om het van koper te voorzien.
+tutorial.pause = Tijdens een gevecht is het mogelijk[accent] het spel te pauzeren.[]\nJe kan nog wel je gebouwen plannen dan.\n\n[accent]Pauzeer het spel (spatie) nu.
tutorial.pause.mobile = During battle, you are able to[accent] pause the game.[]\nYou may queue buildings while paused.\n\n[accent]Press this button in the top left to pause.
-tutorial.unpause = Now press space again to unpause.
-tutorial.unpause.mobile = Now press it again to unpause.
-tutorial.breaking = Blocks frequently need to be destroyed.\n[accent]Hold down right-click[] to destroy all blocks in a selection.[]\n\n[accent]Destroy all the scrap blocks to the left of your core using area selection.
-tutorial.breaking.mobile = Blocks frequently need to be destroyed.\n[accent]Select deconstruction mode[], then tap a block to begin breaking it.\nDestroy an area by holding down your finger for a few seconds[] and dragging in a direction.\nPress the checkmark button to confirm breaking.\n\n[accent]Destroy all the scrap blocks to the left of your core using area selection.
-tutorial.withdraw = In some situations, taking items directly from blocks is necessary.\nTo do this, [accent]tap a block[] with items in it, then [accent]tap the item[] in the inventory.\nMultiple items can be withdrawn by [accent]tapping and holding[].\n\n[accent]Withdraw some copper from the core.[]
-tutorial.deposit = Deposit items into blocks by dragging from your ship to the destination block.\n\n[accent]Deposit your copper back into the core.[]
-tutorial.waves = The[LIGHT_GRAY] enemy[] approaches.\n\nDefend your core for 2 waves. Build more turrets.
-tutorial.waves.mobile = The[lightgray] enemy[] approaches.\n\nDefend the core for 2 waves. Your ship will automatically fire at enemies.\nBuild more turrets and drills. Mine more copper.
-tutorial.launch = Once you reach a specific wave, you are able to[accent] launch the core[], leaving your defenses behind and[accent] obtaining all the resources in your core.[]\nThese resources can then be used to research new technology.\n\n[accent]Press the launch button.
+tutorial.unpause = Doe het opnieuw om weer verder te gaan.
+tutorial.unpause.mobile = Doe het opnieuw om weer verder te gaan.
+tutorial.breaking = Vaak moet je blokken weer verwijderen.\n[accent]Houd rechts-klik ingedrukt[] om alle geselecteerde blokken te vernietigen.[]\n\n[accent]Vernietig de scrap blokken links van je core om verder te gaan.
+tutorial.breaking.mobile = Vaak moet je blokken weer verwijderen.\n[accent]klik op de hamer voor vernietigigs-mode[], klik dan op een blok om het te breken.\nVernietig een heel gebied door je vinger een paar seconden still te houden en dan te slepen in een richting.\nKlik dan op het vinkje om het te bevestigen.\n\n[accent]Vernietig de scrap blokken links van je core om verder te gaan.
+tutorial.withdraw = In sommige situaties, is het nodig om items uit een blok te kunnen pakken.\nOm dit te doen, [accent]klik je op een blok[] waar items in zitten, en dan [accent]op het item te klikken[] in het zwarte menu.\nMeerdere items tegelijk kan je eruit halen door [accent]het ingedrukt te houden[].\n\n[accent]Pak wat koper uit de core.[]
+tutorial.deposit = Je kan de items weer terugstoppen door van je schip het terug te slepen naar waar je het wilt.\n\n[accent]Stop het nu weer terug in de core.[]
+tutorial.waves = De[LIGHT_GRAY] vijand[] naderd.\n\nVerdedig je core voor 2 rondes. Bouw meer verdedigingen.
+tutorial.waves.mobile = De[LIGHT_GRAY] vijand[] naderd.\n\nVerdedig je core voor 2 rondes. Je schip schiet automatisch op vijanden.\nBouw meer verdedigingen, en mine meer koper.
+tutorial.launch = Tijdens sommige waves, kan je je core[accent] lanceren[], hiermee verlaat je de basis permanent[accent] maar je neemt wel alles dat in de core zit met je mee.[]\nVervolgens valt ermee te onderzoeken.\n\n[accent]Druk op de lanceer knop.
+
item.copper.description = A useful structure material. Used extensively in all types of blocks.
item.lead.description = A basic starter material. Used extensively in electronics and liquid transportation blocks.
item.metaglass.description = A super-tough glass compound. Extensively used for liquid distribution and storage.
@@ -1062,6 +1142,7 @@ block.power-source.description = Infinitely outputs power. Sandbox only.
block.item-source.description = Infinitely outputs items. Sandbox only.
block.item-void.description = Destroys any items which go into it without using power. Sandbox only.
block.liquid-source.description = Infinitely outputs liquids. Sandbox only.
+block.liquid-void.description = Removes any liquids. Sandbox only.
block.copper-wall.description = A cheap defensive block.\nUseful for protecting the core and turrets in the first few waves.
block.copper-wall-large.description = A cheap defensive block.\nUseful for protecting the core and turrets in the first few waves.\nSpans multiple tiles.
block.titanium-wall.description = A moderately strong defensive block.\nProvides moderate protection from enemies.
@@ -1097,6 +1178,7 @@ block.rotary-pump.description = An advanced pump which doubles up speed by using
block.thermal-pump.description = The ultimate pump. Three times as fast as a mechanical pump and the only pump which is able to retrieve lava.
block.conduit.description = Basic liquid transport block. Works like a conveyor, but with liquids. Best used with extractors, pumps or other conduits.
block.pulse-conduit.description = Advanced liquid transport block. Transports liquids faster and stores more than standard conduits.
+block.plated-conduit.description = Moves liquids at the same rate as pulse conduits, but possesses more armor. Does not accept fluids from the sides by anything other than conduits.\nLeaks less.
block.liquid-router.description = Accepts liquids from one direction and outputs them to up to 3 other directions equally. Can also store a certain amount of liquid. Useful for splitting the liquids from one source to multiple targets.
block.liquid-tank.description = Stores a large amount of liquids. Use it for creating buffers when there is a non-constant demand of materials or as a safeguard for cooling vital blocks.
block.liquid-junction.description = Acts as a bridge for two crossing conduits. Useful in situations with two different conduits carrying different liquids to different locations.
@@ -1105,6 +1187,7 @@ block.phase-conduit.description = Advanced liquid transport block. Uses power to
block.power-node.description = Transmits power to connected nodes. Up to four power sources, sinks or nodes can be connected. The node will receive power from or supply power to any adjacent blocks.
block.power-node-large.description = Has a larger radius than the power node and connects to up to six power sources, sinks or nodes.
block.surge-tower.description = An extremely long-range power node with fewer available connections.
+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 = Stores power whenever there is an abundance and provides power whenever there is a shortage, as long as there is capacity left.
block.battery-large.description = Stores much more power than a regular battery.
block.combustion-generator.description = Generates power by burning oil or flammable materials.
diff --git a/core/assets/bundles/bundle_nl_BE.properties b/core/assets/bundles/bundle_nl_BE.properties
index 21e2410cfe..696ecf76e3 100644
--- a/core/assets/bundles/bundle_nl_BE.properties
+++ b/core/assets/bundles/bundle_nl_BE.properties
@@ -12,6 +12,7 @@ link.itch.io.description = Itch.io pagina met de PC downloads en online versie
link.google-play.description = Mindustry op Google Play
link.f-droid.description = F-Droid catalogus
link.wiki.description = Officiële Mindustry-wiki
+link.feathub.description = Suggest new features
linkfail = Openen van link mislukt!\nDe link is gekopiëerd naar je klembord.
screenshot = Locatie screenshot: {0}
screenshot.invalid = Kaart te groot, mogelijks te weinig geheugen voor een screenshot te kunnen maken.
@@ -19,12 +20,22 @@ gameover = Game Over
gameover.pvp = Het[accent] {0}[] team heeft gewonnen!
highscore = [accent]Nieuw record!
copied = Gekopieerd.
+
load.sound = Geluiden
load.map = Kaarten
load.image = Afbeeldingen
load.content = Inhoud
load.system = Systeem
load.mod = Mods
+load.scripts = Scripts
+
+be.update = A new Bleeding Edge build is available:
+be.update.confirm = Download it and restart now?
+be.updating = Updating...
+be.ignore = Ignore
+be.noupdates = No updates found.
+be.check = Check for updates
+
schematic = Blauwdruk
schematic.add = Blauwdruk Opslaan...
schematics = Blauwdrukken
@@ -41,6 +52,7 @@ schematic.saved = Blauwdruk opgeslagen.
schematic.delete.confirm = This schematic will be utterly eradicated.
schematic.rename = Blauwdruk Hernoemen
schematic.info = {0}x{1}, {2} blokken
+
stat.wave = Je overleefde tot aanvalsgolf: [accent]{0}[].
stat.enemiesDestroyed = Vijanden vernietigd:[accent] {0}
stat.built = Gebouwen gebouwd:[accent] {0}
@@ -48,6 +60,7 @@ stat.destroyed = Gebouwen vernietigd:[accent] {0}
stat.deconstructed = Gebouwen afgebroken:[accent] {0}
stat.delivered = Gronstoffen meegenomen:
stat.rank = Eindresultaat: [accent]{0}
+
launcheditems = [accent]Meegenomen grondstoffen
launchinfo = [unlaunched][[LAUNCH] je kern om de met blauw aangeduide voorwerpen te verkrijgen.
map.delete = Ben je zeker dat je de kaart "[accent]{0}[]" wilt verwijderen?
@@ -75,6 +88,7 @@ maps.browse = Bekijk Kaarten
continue = Ga verder
maps.none = [LIGHT_GRAY]Geen kaarten gevonden!
invalid = Ongeldig
+pickcolor = Pick Color
preparingconfig = Configuratie Voorbereiden
preparingcontent = Inhoud Voorbereiden
uploadingcontent = Inhoud Uploaden
@@ -82,6 +96,7 @@ uploadingpreviewfile = Voorbeeldbestand Uploaden
committingchanges = Veranderingen Toepassen
done = Klaar
feature.unsupported = Uw apparaat ondersteunt deze functie niet.
+
mods.alphainfo = Mods zijn nog in alfa en [scarlet] kunnen zeer onstabiel zijn[].\nMeld problemen die je ondervindt op de Mindustry Github of Discord.
mods.alpha = [accent](Alfa)
mods = Mods
@@ -93,18 +108,25 @@ mod.enabled = [lightgray]Ingeschakeld
mod.disabled = [scarlet]Uitgeschakeld
mod.disable = Schakel uit
mod.delete.error = Kan mod niet verwijderen. Bestand is mogelijk in gebruik.
+mod.requiresversion = [scarlet]Requires min game version: [accent]{0}
mod.missingdependencies = [scarlet]Missing dependencies: {0}
+mod.erroredcontent = [scarlet]Content Errors
+mod.errors = Errors have occurred loading content.
+mod.noerrorplay = [scarlet]You have mods with errors.[] Either disable the affected mods or fix the errors before playing.
mod.nowdisabled = [scarlet]De volgende vereisten ontbreken voor mod '{0}':[accent] {1}\n[lightgray]Deze mods moeten eerst gedownload worden.\nDeze mod wordt automatisch uitgeschakeld.
mod.enable = Schakel in
mod.requiresrestart = The game will now close to apply the mod changes.
mod.reloadrequired = [scarlet]Herladen Vereist
mod.import = Importeer Mod
mod.import.github = Importeer GitHub Mod
+mod.item.remove = This item is part of the[accent] '{0}'[] mod. To remove it, uninstall that mod.
mod.remove.confirm = Deze mod zal worden verwijderd.
mod.author = [LIGHT_GRAY]Auteur:[] {0}
mod.missing = Dit opslagbestand bevat mods die zijn geupdate of recentelijk zijn verwijderd. Uw opslagbestand kan beschadigd geraken. Bent u zeker dat u wil verdergaan?\n[lightgray]Mods:\n{0}
mod.preview.missing = Voordat je de mod publiceert moet je een afbeelding voor de voorvertoning toevoegen.\nPlaats een afbeelding met de naam[accent] preview.png[] in de modfolder.
mod.folder.missing = Mods kunnen enkel gepubliceerd worden in foldervorm.\nOm een mod in foldervorm te zetten exporteer je het modbestand uit de zipfile en verwijder je de oude zipfile. Herlaad vervolgens je mods of herstart het spel.
+mod.scripts.unsupported = Your device does not support mod scripts. Some mods will not function correctly.
+
about.button = Over
name = Naam:
noname = Kies eerst[accent] een naam[].
@@ -133,6 +155,7 @@ server.kicked.nameEmpty = Je gekozen naam is ongeldig.
server.kicked.idInUse = Je bent al verbonden met de server! Verbinden met 2 clients tegelijk is verboden.
server.kicked.customClient = Deze server ondersteunt geen aangepaste versies (mods). Download een officiële versie.
server.kicked.gameover = Game over!
+server.kicked.serverRestarting = The server is restarting.
server.versions = Jouw versie:[accent] {0}[]\nServerversie:[accent] {1}[]
host.info = Ook de [accent]host[] knop hosts een server op poort [scarlet]6567[]. \nIedereen die verbonden is met dezelfde [LIGHT_GRAY]wifi of lokaal netwerk[] zou je server moeten zien in zijn server lijst.\n\nAls je wil dat personen kunnen verbinden met je server van ergens anders via IP. Dan is [accent]port forwarding[] is nodig.\n\n[LIGHT_GRAY]Nota: Als iemand problemen heeft met het verbinden tot je LAN spel, zorg dan dat mindustry toestemming heeft tot je lokale netwerk in de Firewall instellingen.
join.info = Hier kan je een [accent]server IP[] invullen waarmee je wil verbinden. Je kan hier ook verbinden met servers op je [accent]lokale netwerk[]. LAN en WAN multiplayer wordt ondersteund.\n\n[LIGHT_GRAY]Belangrijk: er is geen automatische globale server lijst; als je met iemand wil verbinden via een IP adres moet je zijn/haar IP adres vragen.
@@ -272,6 +295,7 @@ 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}
+
editor.brush = Brush
editor.openin = Open In Editor
editor.oregen = Ore Generation
@@ -348,6 +372,7 @@ editor.overwrite = [accent]Warning!\nThis overwrites an existing map.
editor.overwrite.confirm = [scarlet]Warning![] A map with this name already exists. Are you sure you want to overwrite it?
editor.exists = A map with this name already exists.
editor.selectmap = Select a map to load:
+
toolmode.replace = Replace
toolmode.replace.description = Draws only on solid blocks.
toolmode.replaceall = Replace All
@@ -362,6 +387,7 @@ toolmode.fillteams = Fill Teams
toolmode.fillteams.description = Fill teams instead of blocks.
toolmode.drawteams = Draw Teams
toolmode.drawteams.description = Draw teams instead of blocks.
+
filters.empty = [LIGHT_GRAY]No filters! Add one with the button below.
filter.distort = Distort
filter.noise = Noise
@@ -393,6 +419,7 @@ filter.option.floor2 = Secondary Floor
filter.option.threshold2 = Secondary Threshold
filter.option.radius = Radius
filter.option.percentile = Percentile
+
width = Width:
height = Height:
menu = Menu
@@ -408,6 +435,7 @@ tutorial = Tutorial
tutorial.retake = Re-Take Tutorial
editor = Editor
mapeditor = Map Editor
+
abandon = Abandon
abandon.text = This zone and all its resources will be lost to the enemy.
locked = Locked
@@ -438,6 +466,7 @@ zone.objective.survival = Survive
zone.objective.attack = Destroy Enemy Core
add = Add...
boss.health = Boss Health
+
connectfail = [crimson]Failed to connect to server:\n\n[accent]{0}
error.unreachable = Server unreachable.\nIs the address spelled correctly?
error.invalidaddress = Invalid address.
@@ -448,6 +477,7 @@ error.mapnotfound = Map file not found!
error.io = Network I/O error.
error.any = Unknown network error.
error.bloom = Failed to initialize bloom.\nYour device may not support it.
+
zone.groundZero.name = Ground Zero
zone.desertWastes.name = Desert Wastes
zone.craters.name = The Craters
@@ -462,6 +492,7 @@ zone.saltFlats.name = Salt Flats
zone.impact0078.name = Impact 0078
zone.crags.name = Crags
zone.fungalPass.name = Fungal Pass
+
zone.groundZero.description = The optimal location to begin once more. Low enemy threat. Few resources.\nGather as much lead and copper as possible.\nMove on.
zone.frozenForest.description = Even here, closer to mountains, the spores have spread. The fridgid temperatures cannot contain them forever.\n\nBegin the venture into power. Build combustion generators. Learn to use menders.
zone.desertWastes.description = These wastes are vast, unpredictable, and criss-crossed with derelict sector structures.\nCoal is present in the region. Burn it for power, or synthesize graphite.\n\n[lightgray]This landing location cannot be guaranteed.
@@ -476,10 +507,12 @@ zone.nuclearComplex.description = A former facility for the production and proce
zone.fungalPass.description = A transition area between high mountains and lower, spore-ridden lands. A small enemy reconnaissance base is located here.\nDestroy it.\nUse Dagger and Crawler units. Take out the two cores.
zone.impact0078.description =
zone.crags.description =
+
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
@@ -530,6 +563,7 @@ blocks.inaccuracy = Inaccuracy
blocks.shots = Shots
blocks.reload = Shots/Second
blocks.ammo = Ammo
+
bar.drilltierreq = Better Drill Required
bar.drillspeed = Drill Speed: {0}/s
bar.pumpspeed = Pump Speed: {0}/s
@@ -545,6 +579,9 @@ bar.heat = Heat
bar.power = Power
bar.progress = Build Progress
bar.spawned = Units: {0}/{1}
+bar.input = Input
+bar.output = Output
+
bullet.damage = [stat]{0}[lightgray] damage
bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles
bullet.incendiary = [stat]incendiary
@@ -556,6 +593,7 @@ bullet.freezing = [stat]freezing
bullet.tarred = [stat]tarred
bullet.multiplier = [stat]{0}[lightgray]x ammo multiplier
bullet.reload = [stat]{0}[lightgray]x fire rate
+
unit.blocks = blocks
unit.powersecond = power units/second
unit.liquidsecond = liquid units/second
@@ -568,6 +606,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
@@ -580,6 +620,7 @@ setting.shadows.name = Shadows
setting.blockreplace.name = Automatic Block Suggestions
setting.linear.name = Linear Filtering
setting.hints.name = Hints
+setting.buildautopause.name = Auto-Pause Building
setting.animatedwater.name = Animated Water
setting.animatedshields.name = Animated Shields
setting.antialias.name = Antialias[LIGHT_GRAY] (requires restart)[]
@@ -602,12 +643,16 @@ setting.screenshake.name = Screen Shake
setting.effects.name = Display Effects
setting.destroyedblocks.name = Display Destroyed Blocks
setting.conveyorpathfinding.name = Conveyor Placement Pathfinding
+setting.coreselect.name = Allow Schematic Cores
setting.sensitivity.name = Controller Sensitivity
setting.saveinterval.name = Autosave Interval
setting.seconds = {0} Seconds
+setting.blockselecttimeout.name = Block Select Timeout
+setting.milliseconds = {0} milliseconds
setting.fullscreen.name = Fullscreen
setting.borderlesswindow.name = Borderless Window[LIGHT_GRAY] (may require restart)
setting.fps.name = Show FPS
+setting.blockselectkeys.name = Show Block Select Keys
setting.vsync.name = VSync
setting.pixelate.name = Pixelate [LIGHT_GRAY](may decrease performance, disables animations)
setting.minimap.name = Show Minimap
@@ -636,16 +681,36 @@ category.multiplayer.name = Multiplayer
command.attack = Attack
command.rally = Rally
command.retreat = Retreat
+placement.blockselectkeys = \n[lightgray]Key: [{0},
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 Lasers
keybind.move_x.name = Move x
keybind.move_y.name = Move y
+keybind.mouse_move.name = Follow Mouse
+keybind.dash.name = Dash
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.category_prev.name = Previous Category
+keybind.category_next.name = Next Category
+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 = Toggle Fullscreen
keybind.select.name = Select/Shoot
keybind.diagonal_placement.name = Diagonal Placement
@@ -658,7 +723,6 @@ keybind.menu.name = Menu
keybind.pause.name = Pause
keybind.pause_building.name = Pause/Resume Building
keybind.minimap.name = Minimap
-keybind.dash.name = Dash
keybind.chat.name = Chat
keybind.player_list.name = Player list
keybind.console.name = Console
@@ -681,7 +745,9 @@ mode.pvp.description = Fight against other players locally.
mode.attack.name = Attack
mode.attack.description = No waves, with the goal to destroy the enemy base.
mode.custom = Custom Rules
+
rules.infiniteresources = Infinite Resources
+rules.reactorexplosions = Reactor Explosions
rules.wavetimer = Wave Timer
rules.waves = Waves
rules.attack = Attack Mode
@@ -689,6 +755,7 @@ rules.enemyCheat = Infinite AI (Red Team) Resources
rules.unitdrops = Unit Drops
rules.unitbuildspeedmultiplier = Unit Creation Speed Multiplier
rules.unithealthmultiplier = Unit Health Multiplier
+rules.blockhealthmultiplier = Block Health Multiplier
rules.playerhealthmultiplier = Player Health Multiplier
rules.playerdamagemultiplier = Player Damage Multiplier
rules.unitdamagemultiplier = Unit Damage Multiplier
@@ -707,6 +774,10 @@ rules.title.resourcesbuilding = Resources & Building
rules.title.player = Players
rules.title.enemy = Enemies
rules.title.unit = Units
+rules.title.experimental = Experimental
+rules.lighting = Lighting
+rules.ambientlight = Ambient Light
+
content.item.name = Items
content.liquid.name = Liquids
content.unit.name = Units
@@ -753,6 +824,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 = [LIGHT_GRAY]Explosiveness: {0}%
item.flammability = [LIGHT_GRAY]Flammability: {0}%
item.radioactivity = [LIGHT_GRAY]Radioactivity: {0}%
@@ -768,6 +840,7 @@ mech.buildspeed = [LIGHT_GRAY]Building Speed: {0}%
liquid.heatcapacity = [LIGHT_GRAY]Heat Capacity: {0}
liquid.viscosity = [LIGHT_GRAY]Viscosity: {0}
liquid.temperature = [LIGHT_GRAY]Temperature: {0}
+
block.sand-boulder.name = Sand Boulder
block.grass.name = Grass
block.salt.name = Salt
@@ -866,6 +939,8 @@ block.distributor.name = Distributor
block.sorter.name = Sorter
block.inverted-sorter.name = Inverted Sorter
block.message.name = Message
+block.illuminator.name = Illuminator
+block.illuminator.description = A small, compact, configurable light source. Requires power to function.
block.overflow-gate.name = Overflow Gate
block.silicon-smelter.name = Silicon Smelter
block.phase-weaver.name = Phase Weaver
@@ -879,6 +954,7 @@ block.coal-centrifuge.name = Coal Centrifuge
block.power-node.name = Power Node
block.power-node-large.name = Large Power Node
block.surge-tower.name = Surge Tower
+block.diode.name = Battery Diode
block.battery.name = Battery
block.battery-large.name = Large Battery
block.combustion-generator.name = Combustion Generator
@@ -902,6 +978,7 @@ block.mechanical-pump.name = Mechanical Pump
block.item-source.name = Item Source
block.item-void.name = Item Void
block.liquid-source.name = Liquid Source
+block.liquid-void.name = Liquid Void
block.power-void.name = Power Void
block.power-source.name = Power Infinite
block.unloader.name = Unloader
@@ -931,6 +1008,7 @@ block.fortress-factory.name = Fortress Mech Factory
block.revenant-factory.name = Revenant Fighter Factory
block.repair-point.name = Repair Point
block.pulse-conduit.name = Pulse Conduit
+block.plated-conduit.name = Plated Conduit
block.phase-conduit.name = Phase Conduit
block.liquid-router.name = Liquid Router
block.liquid-tank.name = Liquid Tank
@@ -1002,6 +1080,7 @@ tutorial.deposit = Deposit items into blocks by dragging from your ship to the d
tutorial.waves = De [LIGHT_GRAY] vijand[] nadert.\n\nVerdedig jouw kern voor 2 golven. Bouw meer geschutstorens.
tutorial.waves.mobile = The[lightgray] enemy[] approaches.\n\nDefend the core for 2 waves. Your ship will automatically fire at enemies.\nBuild more turrets and drills. Mine more copper.
tutorial.launch = Once you reach a specific wave, you are able to[accent] launch the core[], leaving your defenses behind and[accent] obtaining all the resources in your core.[]\nThese resources can then be used to research new technology.\n\n[accent]Press the launch button.
+
item.copper.description = A useful structure material. Used extensively in all types of blocks.
item.lead.description = A basic starter material. Used extensively in electronics and liquid transportation blocks.
item.metaglass.description = A super-tough glass compound. Extensively used for liquid distribution and storage.
@@ -1063,6 +1142,7 @@ block.power-source.description = Infinitely outputs power. Sandbox only.
block.item-source.description = Infinitely outputs items. Sandbox only.
block.item-void.description = Destroys any items which go into it without using power. Sandbox only.
block.liquid-source.description = Infinitely outputs liquids. Sandbox only.
+block.liquid-void.description = Removes any liquids. Sandbox only.
block.copper-wall.description = A cheap defensive block.\nUseful for protecting the core and turrets in the first few waves.
block.copper-wall-large.description = A cheap defensive block.\nUseful for protecting the core and turrets in the first few waves.\nSpans multiple tiles.
block.titanium-wall.description = A moderately strong defensive block.\nProvides moderate protection from enemies.
@@ -1098,6 +1178,7 @@ block.rotary-pump.description = An advanced pump which doubles up speed by using
block.thermal-pump.description = The ultimate pump.
block.conduit.description = Basic liquid transport block. Works like a conveyor, but with liquids. Best used with extractors, pumps or other conduits.
block.pulse-conduit.description = Advanced liquid transport block. Transports liquids faster and stores more than standard conduits.
+block.plated-conduit.description = Moves liquids at the same rate as pulse conduits, but possesses more armor. Does not accept fluids from the sides by anything other than conduits.\nLeaks less.
block.liquid-router.description = Accepts liquids from one direction and outputs them to up to 3 other directions equally. Can also store a certain amount of liquid. Useful for splitting the liquids from one source to multiple targets.
block.liquid-tank.description = Stores a large amount of liquids. Use it for creating buffers when there is a non-constant demand of materials or as a safeguard for cooling vital blocks.
block.liquid-junction.description = Acts as a bridge for two crossing conduits. Useful in situations with two different conduits carrying different liquids to different locations.
@@ -1106,6 +1187,7 @@ block.phase-conduit.description = Advanced liquid transport block. Uses power to
block.power-node.description = Transmits power to connected nodes. Up to four power sources, sinks or nodes can be connected. The node will receive power from or supply power to any adjacent blocks.
block.power-node-large.description = Has a larger radius than the power node and connects to up to six power sources, sinks or nodes.
block.surge-tower.description = An extremely long-range power node with fewer available connections.
+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 = Stores power whenever there is an abundance and provides power whenever there is a shortage, as long as there is capacity left.
block.battery-large.description = Stores much more power than a regular battery.
block.combustion-generator.description = Generates power by burning oil or flammable materials.
diff --git a/core/assets/bundles/bundle_pl.properties b/core/assets/bundles/bundle_pl.properties
index fd97dca25f..6d9f3d3dba 100644
--- a/core/assets/bundles/bundle_pl.properties
+++ b/core/assets/bundles/bundle_pl.properties
@@ -12,13 +12,14 @@ 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
+link.feathub.description = Zaproponuj nowe funkcje
linkfail = Nie udało się otworzyć linku!\nURL został skopiowany.
screenshot = Zapisano zdjęcie w {0}
screenshot.invalid = Zrzut ekranu jest zbyt duży. Najprawdopodobniej brakuje miejsca w pamięci urządzenia.
gameover = Koniec Gry
gameover.pvp = Zwyciężyła drużyna [accent]{0}[]!
highscore = [YELLOW] Nowy rekord!
-copied = Copied.
+copied = Skopiowano.
load.sound = Dźwięki
load.map = Mapy
@@ -26,6 +27,14 @@ load.image = Obrazy
load.content = Treść
load.system = System
load.mod = Mody
+load.scripts = Skrypty
+
+be.update = Nowa wersja Bleeding Edge jest dostępna:
+be.update.confirm = Pobrać i zainstalować teraz?
+be.updating = Aktualizowanie...
+be.ignore = Zignoruj
+be.noupdates = Nie znaleziono aktualizacji.
+be.check = Sprawdź aktualizacje
schematic = Schemat
schematic.add = Zapisz schemat...
@@ -80,7 +89,6 @@ continue = Kontynuuj
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
@@ -100,22 +108,28 @@ mod.enabled = [lightgray]Włączony
mod.disabled = [scarlet]Wyłączony
mod.disable = Wyłącz
mod.delete.error = Nie udało się usunąć moda. Plik może być w użyciu.
+mod.requiresversion = [scarlet]Wymaga gry w wersji co najmniej: [accent]{0}
mod.missingdependencies = [scarlet]Brakujące zależności: {0}
+mod.erroredcontent = [scarlet]Content Errors
+mod.errors = Wystąpił błąd podczas ładowania treści.
+mod.noerrorplay = [scarlet]Twoje mody zawierają błędy.[] Wyłącz je lub napraw błędy przed rozpoczęciem gry.
mod.nowdisabled = [scarlet]Brakuje zależności dla moda '{0}':[accent] {1}\n[lightgray]Najpierw trzeba ściągnąć te mody.\nMod zostanie automatycznie wyłączony.
mod.enable = Włącz
mod.requiresrestart = Gra się wyłączy aby wprowadzić zmiany moda.
mod.reloadrequired = [scarlet]Wymagany restart
mod.import = Importuj Mod
mod.import.github = Importuj mod z GitHuba
+mod.item.remove = Ten przedmiot jest częścią moda[accent] '{0}'[]. Aby usunąć go, odinstaluj modyfikację.
mod.remove.confirm = Ten mod zostanie usunięty.
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.
+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ę lub załaduj ponownie mody.
+mod.scripts.unsupported = Twoje urządzenie nie wspiera skryptów. Niektóre mody mogą nie działać poprawnie.
about.button = O Grze
name = Nazwa:
-noname = Najpierw wybierz[accent] nazwę gracza[]
+noname = Najpierw wybierz[accent] nazwę gracza[].
filename = Nazwa Pliku:
unlocked = Odblokowano nową zawartość!
completed = [accent]Ukończony
@@ -123,8 +137,8 @@ techtree = Drzewo Technologiczne
research.list = [lightgray]Badania:
research = Badaj
researched = [lightgray]{0} zbadane.
-players = {0} graczy online
-players.single = {0} gracz online
+players = {0} graczy
+players.single = {0} gracz
server.closing = [accent] Zamykanie serwera...
server.kicked.kick = Zostałeś wyrzucony z serwera!
server.kicked.whitelist = Nie ma cię tu na białej liście.
@@ -141,6 +155,7 @@ server.kicked.nameEmpty = Wybrana przez Ciebie nazwa jest nieprawidłowa.
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.kicked.serverRestarting = Restart serwera.
server.versions = Twoja wersja gry:[accent] {0}[]\nWersja gry serwera:[accent] {1}[]
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.
@@ -240,7 +255,7 @@ 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ę.\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?
+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, aby móc używać ich w 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] Ustawienia->Gra->Ponów samouczek.[]
loading = [accent]Ładowanie...
@@ -248,7 +263,7 @@ reloading = [accent]Przeładowywanie Modów...
saving = [accent]Zapisywanie...
cancelbuilding = [accent][[{0}][] by wyczyścić plan
selectschematic = [accent][[{0}][] by wybrać+skopiować
-pausebuilding = [accent][[{0}][] by wtrzymać budowę
+pausebuilding = [accent][[{0}][] by wstrzymać budowę
resumebuilding = [scarlet][[{0}][] by kontynuować budowę
wave = [accent]Fala {0}
wave.waiting = Fala za {0}
@@ -414,7 +429,6 @@ 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
@@ -456,7 +470,7 @@ 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 poprawność wpisanego adresu!
+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!
@@ -493,10 +507,12 @@ zone.nuclearComplex.description = Dawny zakład produkcji i przetwarzania toru,
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 =
zone.crags.description =
+
settings.language = Język
settings.data = Dane Gry
settings.reset = Przywróć Domyślne
settings.rebind = Zmień
+settings.resetKey = Resetuj
settings.controls = Sterowanie
settings.game = Gra
settings.sound = Dźwięk
@@ -563,8 +579,8 @@ bar.heat = Ciepło
bar.power = Prąd
bar.progress = Postęp Budowy
bar.spawned = Jednostki: {0}/{1}
-bar.input = Input
-bar.output = Output
+bar.input = Wejście
+bar.output = Wyjście
bullet.damage = [stat]{0}[lightgray] Obrażenia
bullet.splashdamage = [stat]{0}[lightgray] Obrażenia obszarowe ~[stat] {1}[lightgray] kratki
@@ -590,6 +606,8 @@ unit.persecond = /sekundę
unit.timesspeed = x prędkość
unit.percent = %
unit.items = przedmioty
+unit.thousands = tys.
+unit.millions = mln
category.general = Główne
category.power = Prąd
category.liquids = Płyny
@@ -621,19 +639,20 @@ setting.difficulty.normal = Normalny
setting.difficulty.hard = Trudny
setting.difficulty.insane = Szalony
setting.difficulty.name = Poziom trudności
-setting.screenshake.name = Wstrząsy ekranu
+setting.screenshake.name = Siła wstrząsów ekranu
setting.effects.name = Wyświetlanie efektów
setting.destroyedblocks.name = Wyświetl zniszczone bloki
-setting.conveyorpathfinding.name = Conveyor Placement Pathfinding
+setting.conveyorpathfinding.name = Ustalanie ścieżki przenośników
+setting.coreselect.name = Zezwalaj na schematyczne rdzenie
setting.sensitivity.name = Czułość kontrolera
setting.saveinterval.name = Interwał automatycznego zapisywania
setting.seconds = {0} sekund
setting.blockselecttimeout.name = Block Select Timeout
-setting.milliseconds = {0} millisekund
+setting.milliseconds = {0} milisekund
setting.fullscreen.name = Pełny ekran
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.blockselectkeys.name = Pokazuj skróty klawiszowe bloków
setting.vsync.name = Synchronizacja pionowa
setting.pixelate.name = Pikselacja [lightgray](wyłącza animacje)
setting.minimap.name = Pokaż Minimapę
@@ -653,7 +672,7 @@ public.confirm = Czy chcesz ustawić swoją grę jako publiczną?\n[accent]Każd
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ź
-setting.bloom.name = Bloom
+setting.bloom.name = Efekt Bloom
keybind.title = Zmień
keybinds.mobile = [scarlet]Większość skrótów klawiszowych nie funkcjonuje w wersji mobilnej. Tylko podstawowe poruszanie się jest wspierane.
category.general.name = Ogólne
@@ -662,15 +681,15 @@ category.multiplayer.name = Wielu graczy
command.attack = Atakuj
command.rally = Zbierz
command.retreat = Wycofaj
-placement.blockselectkeys = \n[lightgray]Key: [{0},
+placement.blockselectkeys = \n[lightgray]Klawisz: [{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.toggle_power_lines.name = Zmień widoczność linii energetycznych
keybind.move_x.name = Poruszanie w poziomie
keybind.move_y.name = Poruszanie w pionie
-keybind.mouse_move.name = Follow Mouse
+keybind.mouse_move.name = Podążaj Za Myszą
keybind.dash.name = Dash
keybind.schematic_select.name = Wybierz region
keybind.schematic_menu.name = Menu schematów
@@ -682,16 +701,16 @@ 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.block_select_01.name = Wybór bloku/kategorii 1
+keybind.block_select_02.name = Wybór bloku/kategorii 2
+keybind.block_select_03.name = Wybór bloku/kategorii 3
+keybind.block_select_04.name = Wybór bloku/kategorii 4
+keybind.block_select_05.name = Wybór bloku/kategorii 5
+keybind.block_select_06.name = Wybór bloku/kategorii 6
+keybind.block_select_07.name = Wybór bloku/kategorii 7
+keybind.block_select_08.name = Wybór bloku/kategorii 8
+keybind.block_select_09.name = Wybór bloku/kategorii 9
+keybind.block_select_10.name = Wybór bloku/kategorii 10
keybind.fullscreen.name = Przełącz Pełny Ekran
keybind.select.name = Zaznacz
keybind.diagonal_placement.name = Budowa po skosie
@@ -736,6 +755,7 @@ rules.enemyCheat = Nieskończone zasoby komputera-przeciwnika (czerwonego zespo
rules.unitdrops = Surowce ze zniszczonych jednostek
rules.unitbuildspeedmultiplier = Mnożnik prędkości tworzenia jednostek
rules.unithealthmultiplier = Mnożnik życia jednostek
+rules.blockhealthmultiplier = Mnożnik życia bloków
rules.playerhealthmultiplier = Mnożnik życia gracza
rules.playerdamagemultiplier = Mnożnik obrażeń gracza
rules.unitdamagemultiplier = Mnożnik obrażeń jednostek
@@ -804,6 +824,7 @@ 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.corestorable = [lightgray]Przechowywalne w rdzeniu: {0}
item.explosiveness = [lightgray]Wybuchowość: {0}
item.flammability = [lightgray]Palność: {0}
item.radioactivity = [lightgray]Promieniotwórczość: {0}
@@ -957,6 +978,7 @@ block.mechanical-pump.name = Mechaniczna Pompa
block.item-source.name = Źródło przedmiotów
block.item-void.name = Próżnia przedmiotów
block.liquid-source.name = Źródło płynów
+block.liquid-void.name = Liquid Void
block.power-void.name = Próżnia prądu
block.power-source.name = Nieskończony Prąd
block.unloader.name = Ekstraktor
@@ -1120,12 +1142,13 @@ block.power-source.description = Wydziela prąd w nieskończoność. Dostępny t
block.item-source.description = Wydziela przedmioty w nieskończoność. Dostępny tylko w trybie sandbox.
block.item-void.description = Niszczy wszystkie przedmioty, które idą do tego bloku, który nie wymaga prądu. Dostępny tylko w trybie sandbox.
block.liquid-source.description = Wydziela ciecz w nieskończoność. Dostępny tylko w trybie sandbox.
+block.liquid-void.description = Removes any liquids. Sandbox only.
block.copper-wall.description = Tani blok obronny.\nPrzydatny do ochrony rdzenia i wieżyczek w pierwszych kilku falach.
block.copper-wall-large.description = Tani blok obronny.\nPrzydatny do ochrony rdzenia i wieżyczek w pierwszych kilku falach.\nObejmuje wiele kratek.
block.titanium-wall.description = Umiarkowanie silny blok obronny.\nZapewnia umiarkowaną ochronę przed wrogami.
block.titanium-wall-large.description = Umiarkowanie silny blok obronny.\nZapewnia umiarkowaną ochronę przed wrogami.\nObejmuje wiele kratek.
-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 = Specjajny typ ściany, który pochłania łuki elektryczne oraz blokuje automatyczne łączenie węzłów.
+block.plastanium-wall-large.description = Specjajny typ ściany, który pochłania łuki elektryczne oraz blokuje automatyczne łączenie węzłów.\nObejmuje wiele kratek.
block.thorium-wall.description = Silny blok obronny.\nDobra ochrona przed wrogami.
block.thorium-wall-large.description = Silny blok obronny.\nDobra ochrona przed wrogami.\nObejmuje wiele kratek.
block.phase-wall.description = Ściana pokryta specjalną mieszanką opartą o Włókna Fazowe, która odbija większość pocisków.
@@ -1164,7 +1187,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.diode.description = Energia może przepływać przez ten blok tylko w jednym kierunku, ale tylko kiedy inne strony mają zmagazynowane mniej energii.
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.
@@ -1205,7 +1228,7 @@ block.ripple.description = Duża wieża artyleryjska, która strzela jednocześn
block.cyclone.description = Duża szybkostrzelna wieża.
block.spectre.description = Duże działo dwulufowe, które strzela potężnymi pociskami przebijającymi pancerz w jednostki naziemne i powietrzne.
block.meltdown.description = Duże działo laserowe, które strzela potężnymi wiązkami dalekiego zasięgu. Wymaga chłodzenia.
-block.command-center.description = Wydaje polecenia ruchu sojuszniczym jednostkom na całej mapie.\nPowoduje patrolowanie jednostek, atakowanie wrogiego rdzenia lub wycofanie się do rdzenia / fabryki. Gdy nie ma rdzenia wroga, jednostki będą domyślnie patrolować pod dowództwem ataku.
+block.command-center.description = Wydaje polecenia ruchu sojuszniczym jednostkom na całej mapie.\nPowoduje patrolowanie jednostek, atakowanie wrogiego rdzenia lub wycofanie się do rdzenia/fabryki. Gdy nie ma rdzenia wroga, jednostki będą domyślnie patrolować pod dowództwem ataku.
block.draug-factory.description = Produkuje drony wydobywcze Draug.
block.spirit-factory.description = Produkuje lekkie drony, które naprawiają bloki.
block.phantom-factory.description = Produkuje zaawansowane drony które pomagają przy budowie.
@@ -1217,7 +1240,7 @@ block.crawler-factory.description = Produkuje szybkie jednostki lądowe typu "ka
block.titan-factory.description = Produkuje zaawansowane, opancerzone jednostki lądowe.
block.fortress-factory.description = Produkuje naziemne jednostki ciężkiej artylerii.
block.repair-point.description = Bez przerw ulecza najbliższą zniszczoną jednostkę w jego zasięgu.
-block.dart-mech-pad.description = Umożliwia transformacje w podstawowego mecha bojowego.\nUżyj klikając podczas stania na nim.
+block.dart-mech-pad.description = Umożliwia transformację w podstawowego mecha bojowego.\nUżyj klikając podczas stania na nim.
block.delta-mech-pad.description = Opuść swój obecny statek i zamień go na szybki, lekko opancerzony mech stworzony do ataków typu uderz-uciekaj.\nUżyj, klikając dwukrotnie podczas stania na lądowisku.
block.tau-mech-pad.description = Opuść swój obecny statek i zamień go na mech wsparcia który może leczyć sojusznicze struktury i jednostki.\nUżyj, klikając dwukrotnie podczas stania na lądowisku.
block.omega-mech-pad.description = Opuść swój obecny statek i zamień go na masywny, dobrze opancerzony mech, przeznaczony do ataków na froncie.\nUżyj, klikając dwukrotnie podczas stania na lądowisku.
diff --git a/core/assets/bundles/bundle_pt_BR.properties b/core/assets/bundles/bundle_pt_BR.properties
index 1e05466d91..38f865a38c 100644
--- a/core/assets/bundles/bundle_pt_BR.properties
+++ b/core/assets/bundles/bundle_pt_BR.properties
@@ -10,11 +10,12 @@ 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.f-droid.description = Listamento de catalogo do F-Droide
link.wiki.description = Wiki oficial do Mindustry
+link.feathub.description = Suggest new features
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.
+screenshot.invalid = Mapa grande demais, Voce pode estar potencialmente sem memória suficiente para captura de tela.
gameover = O núcleo foi destruído.
gameover.pvp = O time[accent] {0}[] ganhou!
highscore = [YELLOW]Novo recorde!
@@ -26,6 +27,14 @@ load.image = Imagens
load.content = Conteúdo
load.system = Sistema
load.mod = Mods
+load.scripts = Scripts
+
+be.update = A new Bleeding Edge build is available:
+be.update.confirm = Download it and restart now?
+be.updating = Updating...
+be.ignore = Ignore
+be.noupdates = No updates found.
+be.check = Check for updates
schematic = Esquema
schematic.add = Salvar Esquema...
@@ -41,8 +50,8 @@ schematic.shareworkshop = Compartilhar na Oficina
schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Virar o Esquema
schematic.saved = Esquema salvo.
schematic.delete.confirm = Esse Esquema será totalmente erradicado.
-schematic.rename = Rename Schematic
-schematic.info = {0}x{1}, {2} blocks
+schematic.rename = Renomear esquema
+schematic.info = {0}x{1}, {2} blocos
stat.wave = Hordas derrotadas:[accent] {0}
stat.enemiesDestroyed = Inimigos Destruídos:[accent] {0}
@@ -99,19 +108,24 @@ mod.enabled = [lightgray]Ativado
mod.disabled = [scarlet]Desativado
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.requiresversion = [scarlet]Requer no mínimo versão [accent]{0} [scarlet]do jogo.
mod.missingdependencies = [scarlet]Dependências ausentes: {0}
+mod.erroredcontent = [scarlet]Erros no Conteúdo
+mod.errors = Erros ocorreram ao carregar o conteúdo.
+mod.noerrorplay = [scarlet]Você tem mods com erros.[] Desative os mods afetados ou conserte os erros antes de jogar.
mod.nowdisabled = [scarlet]O Mod '{0}' está com dependências ausentes:[accent] {1}\n[lightgray]Esses Mods precisam ser baixados primeiro.\nEsse Mod será desativado automaticamente.
mod.enable = Ativar
mod.requiresrestart = O jogo irá fechar para aplicar as mudanças do Mod.
mod.reloadrequired = [scarlet]Recarregamento necessário
mod.import = Importar Mod
mod.import.github = Importar Mod do GitHub
-mod.remove.confirm = Esse Mod será deletado.
+mod.item.remove = Este item é parte do mod[accent] '{0}'[]. Para removê-lo, desinstale esse mod.
+mod.remove.confirm = Este mod será deletado.
mod.author = [LIGHT_GRAY]Author:[] {0}
-mod.missing = Esse jogo salvo foi criado antes de você atualizar ou desinstalar um mod. O jogo salvo pode se corromper. Você tem certeza que quer carregar?\n[lightgray]Mods:\n{0}
+mod.missing = Esse jogo salvo foi criado antes de você atualizar ou desinstalar um mod. Pode ocorrer uma corrupção no salvamento. Você tem certeza que quer carregar?\n[lightgray]Mods:\n{0}
mod.preview.missing = Antes de publicar esse mod na Oficina, você deve adicionar uma imagem de pré-visualização.\nColoque uma imagem com o nome[accent] preview.png[] na pasta do Mod e tente novamente.
mod.folder.missing = Somente Mods no formato de pasta serão publicados na Oficina.\nPara converter qualquer Mod em uma pasta, Simplesmente descompacte seu arquivo numa pasta e delete a compactação antiga, então reinicie seu jogo ou recarregue os Mods.
+mod.scripts.unsupported = Seu dispositivo não suporta scripts de mods. Alguns mods não funcionarão corretamente.
about.button = Sobre
name = Nome:
@@ -141,6 +155,7 @@ server.kicked.nameEmpty = Você deve ter pelo menos uma letra ou número no nome
server.kicked.idInUse = Você ja está neste servidor! Conectar com duas contas não é permitido.
server.kicked.customClient = Este servidor não suporta versões customizadas. Baixe a versão original.
server.kicked.gameover = Fim de jogo!
+server.kicked.serverRestarting = The server is restarting.
server.versions = Sua versão:[accent] {0}[]\nVersão do servidor:[accent] {1}[]
host.info = The [accent]Hospedar[]Botão Hospeda um servidor no Host[scarlet]6567[] e [scarlet]6568.[]\nQualquer um no [LIGHT_GRAY]Wi-fi Ou Internet local[] Pode ver este servidor na lista de servidores.\n\nSe voce quer poder entrar em qualquer servidor em seu ip, [accent]port forwarding[] é requerido.\n\n[LIGHT_GRAY]Note: Se alguém esta com problemas em conectar no seu servidor lan, Tenha certeza que deixou mindustry Acessar sua internet local nas configurações de firewall
join.info = Aqui, você pode entar em um [accent]IP de servidor[] para conectar, ou descobrir [accent]servidores[] da rede local.\nAmbos os servidores LAN e WAN são suportados.\n\n[LIGHT_GRAY]Note: Não há uma lista de servidores automáticos; Se você quer conectar ao IP de alguém, você precisa pedir o IP ao anfitrião.
@@ -189,9 +204,9 @@ disconnect.data = Falha ao abrir os dados do mundo!
cantconnect = Impossível conectar ([accent]{0}[]).
connecting = [accent]Conectando...
connecting.data = [accent]Carregando dados do mundo...
-server.port = Porte:
+server.port = Port:
server.addressinuse = Senha em uso!
-server.invalidport = Numero de porta invalido!
+server.invalidport = Numero de port inválido!
server.error = [crimson]Erro ao hospedar o servidor: [accent]{0}
save.new = Novo salvamento
save.overwrite = Você tem certeza que quer sobrescrever este salvamento?
@@ -273,11 +288,11 @@ workshop.error = Erro buscando os detalhes da Oficina: {0}
map.publish.confirm = Você tem certeza de que quer publicar este mapa?\n\n[lightgray]Tenha certeza de que você concorda com o EULA da oficina primeiro, ou seus mapas não serão mostrados!
workshop.menu = Selecione oquê você gostaria de fazer com esse Item.
workshop.info = Informação do Item
-changelog = Changelog (optional):
+changelog = Mudanças (opcional):
eula = EULA da Steam
-missing = This item has been deleted or moved.\n[lightgray]The workshop listing has now been automatically un-linked.
-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!
+missing = Este item foi deletado ou movido.\n[lightgray]O listamento da oficina foi automaticamente des-ligado.
+publishing = [accent]Publicando...
+publish.confirm = Você tem certeza de que quer publicar isso?\n\n[lightgray]Primeiramente tenha certeza de que você concorda com o EULA da Oficina, ou seus itens não irão aparecer!
publish.error = Erro publicando o Item: {0}
steam.error = Falha em iniciar os serviços da Steam.\nError: {0}
@@ -364,11 +379,11 @@ toolmode.replaceall = Substituir tudo
toolmode.replaceall.description = Substituir todos os blocos no mapa
toolmode.orthogonal = Linha reta
toolmode.orthogonal.description = Desenha apenas linhas retas.
-toolmode.square = Square
+toolmode.square = Quadrado
toolmode.square.description = Pincel quadrado.
toolmode.eraseores = Apagar minérios
toolmode.eraseores.description = Apaga apenas minérios.
-toolmode.fillteams = Encher times
+toolmode.fillteams = Preencher times
toolmode.fillteams.description = Muda o time do qual todos os blocos pertencem.
toolmode.drawteams = Desenhar times
toolmode.drawteams.description = Muda o time do qual o bloco pertence.
@@ -490,8 +505,8 @@ zone.tarFields.description = Nos arredores de uma zona de produção de petróle
zone.desolateRift.description = Uma zona extremamente perigosa. Recursos abundantes, porém pouco espaço. Alto risco de destruição. Saia o mais rápido possível. Não seja enganado pelo longo espaço de tempo entre os ataques inimigos.
zone.nuclearComplex.description = Uma antiga instalação para produção e processamento de tório, reduzido a ruínas.\n[lightgray]Pesquise o tório e seus muitos usos.\n\nO inimigo está presente aqui em grandes números, constantemente à procura de atacantes.
zone.fungalPass.description = Uma area de transição entre montanhas altas e baixas, terras cheias de esporos. Uma pequena base de reconhecimento inimiga está localizada aqui.\nDestrua-a.\nUse as unidades crawler e dagger. Destrua os dois núcleos.
-zone.impact0078.description =
-zone.crags.description =
+zone.impact0078.description =
+zone.crags.description =
settings.language = Idioma
settings.data = Dados do jogo
@@ -506,7 +521,7 @@ 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, teclas personalizadas e desbloqueados.\nQuando apertar 'ok' todos os arquivos serão apagados e o jogo irá sair automaticamente.
paused = Pausado
-clear = Clear
+clear = Limpo
banned = [scarlet]Banido
yes = Sim
no = Não
@@ -515,7 +530,7 @@ error.title = [crimson]Ocorreu um Erro.
error.crashtitle = Ocorreu um Erro
blocks.input = Entrada
blocks.output = Saída
-blocks.booster = Booster
+blocks.booster = Apoio
block.unknown = [LIGHT_GRAY]???
blocks.powercapacity = Capacidade de Energia
blocks.powershot = Energia/tiro
@@ -591,12 +606,14 @@ unit.persecond = por segundo
unit.timesspeed = x Velocidade
unit.percent = %
unit.items = itens
+unit.thousands = k
+unit.millions = m
category.general = Geral
-category.power = Poder
+category.power = Energia
category.liquids = Líquidos
category.items = Itens
-category.crafting = Construindo
-category.shooting = Atirando
+category.crafting = Entrada/Saída
+category.shooting = Atiradores
category.optional = Melhoras opcionais
setting.landscape.name = Travar panorama
setting.shadows.name = Sombras
@@ -626,6 +643,7 @@ setting.screenshake.name = Balanço da Tela
setting.effects.name = Efeitos
setting.destroyedblocks.name = Mostrar Blocos Destruídos
setting.conveyorpathfinding.name = Esteiras Encontram Caminho
+setting.coreselect.name = Allow Schematic Cores
setting.sensitivity.name = Sensibilidade do Controle
setting.saveinterval.name = Intervalo de Auto Salvamento
setting.seconds = {0} segundos
@@ -651,7 +669,7 @@ setting.chatopacity.name = Opacidade do chat
setting.lasersopacity.name = Opacidade do laser
setting.playerchat.name = Mostrar chat em jogo
public.confirm = Você quer fazer sua partida pública?\n[accent]Qualquer um será capaz de entrar na sua partida.\n[lightgray]Isso pode ser mudado depois em Configurações->Jogo->Visibilidade da partida pública.
-public.beta = Note that beta versions of the game cannot make public lobbies.
+public.beta = Note que as versões beta do jogo não podem fazer salas publicas.
uiscale.reset = A escala da IU foi mudada.\nPressione "OK" para confirmar esta escala.\n[scarlet]Revertendo e saindo em[accent] {0}[] settings...
uiscale.cancel = Cancelar e sair
setting.bloom.name = Bloom
@@ -719,10 +737,10 @@ keybind.zoom_minimap.name = Zoom do minimapa
mode.help.title = Descrição dos modos
mode.survival.name = Sobrevivência
mode.survival.description = O modo normal. Recursos limitados e hordas automáticas.
-mode.sandbox.name = Sandbox
+mode.sandbox.name = Caixa de areia
mode.sandbox.description = Recursos infinitos e sem tempo para ataques.
mode.editor.name = Editor
-mode.pvp.name = JXJ
+mode.pvp.name = JxJ
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.
@@ -737,6 +755,7 @@ rules.enemyCheat = Recursos de IA Infinitos
rules.unitdrops = Inimigos dropam itens
rules.unitbuildspeedmultiplier = Multiplicador de velocidade de criação de unidade
rules.unithealthmultiplier = Multiplicador de vida de unidade
+rules.blockhealthmultiplier = Block Health Multiplier
rules.playerhealthmultiplier = Multiplicador da vida de jogador
rules.playerdamagemultiplier = Multiplicador do dano de jogador
rules.unitdamagemultiplier = Multiplicador de dano de Unidade
@@ -805,6 +824,7 @@ mech.trident-ship.name = Tridente
mech.trident-ship.weapon = Carga de bombas
mech.glaive-ship.name = Glaive
mech.glaive-ship.weapon = Repetidor de fogo
+item.corestorable = [lightgray]Armazenável no núcleo: {0}
item.explosiveness = [LIGHT_GRAY]Explosibilidade: {0}
item.flammability = [LIGHT_GRAY]Inflamabilidade: {0}
item.radioactivity = [LIGHT_GRAY]Radioatividade: {0}
@@ -958,6 +978,7 @@ block.mechanical-pump.name = Bomba Mecânica
block.item-source.name = Criador de itens
block.item-void.name = Destruidor de itens
block.liquid-source.name = Criador de líquidos
+block.liquid-void.name = Liquid Void
block.power-void.name = Anulador de energia
block.power-source.name = Criador de energia
block.unloader.name = Descarregador
@@ -980,9 +1001,9 @@ block.spirit-factory.name = Fábrica de drone de reparo Spirit
block.phantom-factory.name = Fábrica de drone de construção Phantom
block.wraith-factory.name = Fábrica de lutadores Wraith
block.ghoul-factory.name = Fábrica de Bombardeiros Ghoul
-block.dagger-factory.name = Fábrica de mech Dagger
-block.crawler-factory.name = Fábrica de mech Crawler
-block.titan-factory.name = Fábrica de mech titan
+block.dagger-factory.name = Fábrica de Mecas Dagger
+block.crawler-factory.name = Fábrica de Mecas Crawler
+block.titan-factory.name = Fábrica de Mecas Titan
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
@@ -1039,15 +1060,15 @@ unit.eradicator.name = Erradicador
unit.lich.name = Lich
unit.reaper.name = Ceifador
tutorial.next = [lightgray]
-tutorial.intro = Você entrou no[scarlet] Tutorial do Mindustry.[]\nComeçe[accent] minerando cobre[]. Toque em um veio de minério de cobre para fazer isso.\n\n[accent]{0}/{1} copper
-tutorial.intro.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 = Você entrou no Tutorial do[scarlet] Mindustry.[]\nUse[accent] [[WASD][] para se mover.\n[accent]Roda do mouse[] para aumentar e diminuir o zoom.\nComece[accent] minerando cobre[]. Toque em um veio de minério de cobre para fazer isso.\n\n[accent]{0}/{1} Cobre
+tutorial.intro.mobile = Você entrou no Tutorial do[scarlet] Mindustry.[]\nPasse o dedo na tela para se mover.\n[accent]Use os dois dedos [] para alterar o zoom.\nComece[accent] minerando cobre[]. Se aproxime dele, e toque numa veia de cobre perto do seu núcleo.\n\n[accent]{0}/{1} Cobre
tutorial.drill = Minerar manualmente é ineficiente.\n[accent]Brocas []podem minerar automaticamente.\nColoque uma num veio de cobre.
tutorial.drill.mobile = Minerar manualmente é ineficiente.\n[accent]Brocas []podem minerar automaticamente.\nToque na aba de brocas no canto inferior direito.\nSelecione a[accent] broca mecânica[].\nToque em um veio de cobre para colocá-la, então pressione a[accent] marca de verificação[] abaixo para confirmar sua seleção.\nPressione o[accent] botão "X"[] para cancelar o posicionamento.
tutorial.blockinfo = Cada bloco tem diferentes status. Cada broca pode extrair certos minérios.\nPara checar as informações e os status de um bloco,[accent] toque o botão "?" enquanto o seleciona no menu de construção.[]\n\n[accent]Acesse os status da broca mecânica agora.[]
tutorial.conveyor = [accent]Esteiras[] São usadas para transportar itens até o núcleo.\nFaça uma linha de Esteiras da mineradora até o núcleo.
tutorial.conveyor.mobile = [accent]Esteiras[] são usadas para transportar itens até o núcleo.\nFaça uma linha de esteiras da broca até o núcleo.\n[accent] Coloque uma linha segurando por alguns segundos[] e arrastando em uma direção.\n\n[accent]{0}/{1} esteiras colocadas em linha\n[accent]0/1 itens entregues
tutorial.turret = Estruturas defensivas devem ser construidas para repelir[LIGHT_GRAY] o inimigo[].\nConstrua uma torre dupla perto de sua base.
-tutorial.drillturret = Torretas duplas precisam de[accent] cobre[] como munição para atirar.\nColoque uma broca próxima à torre para carregá-la com o cobre minerado.
+tutorial.drillturret = Torres duplas precisam de[accent] cobre[] como munição para atirar.\nColoque uma broca próxima à torre para carregá-la com o cobre minerado.
tutorial.pause = Durante uma batalha, você pode[accent] pausar o jogo.[]\nVocê pode enfileirar construções enquanto o jogo está pausado.\n\n[accent]Pressione a barra de espaço para pausar.
tutorial.pause.mobile = Durante uma batalha, você pode[accent] pausar o jogo.[]\nVocê pode enfileirar construções enquanto o jogo está pausado.\n\n[accent]Pressione este botão no canto superior direito para pausar.
tutorial.unpause = Agora pressione novamente a barra de espaço para despausar.
@@ -1102,7 +1123,7 @@ unit.revenant.description = Uma matriz de mísseis pesada e flutuante.
block.message.description = Armazena uma mensagem. Usado para comunicação entre aliados.
block.graphite-press.description = Comprime pedaços de carvão em lâminas de grafite puro.
block.multi-press.description = Uma versão melhorada da prensa de grafite. Usa água e energia para processar carvão rápida e eficientemente.
-block.silicon-smelter.description = Reduz areia com carvão puro. Produz silício silicio.
+block.silicon-smelter.description = Reduz areia a silicio usando carvão puro. Produz silício.
block.kiln.description = Derrete chumbo e areia no composto conhecido como metavidro. Requer pequenas quantidades de energia.
block.plastanium-compressor.description = Produz plastânio usando petróleo e titânio.
block.phase-weaver.description = Produz tecido de fase usando tório radioativo e areia. Requer massivas quantidades de energia para funcionar.
@@ -1121,6 +1142,7 @@ block.power-source.description = Infinitivamente da energia. Apenas caixa de are
block.item-source.description = Infinivamente da itens. Apenas caixa de areia.
block.item-void.description = Destroi qualquer item que entre sem requerir energia. Apenas caixa de areia.
block.liquid-source.description = Infinitivamente da Liquidos. Apenas caixa de areia.
+block.liquid-void.description = Removes any liquids. Sandbox only.
block.copper-wall.description = Um bloco defensivo e barato.\nUtil para proteger o núcleo e torretas no começo.
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.
@@ -1138,9 +1160,9 @@ block.door-large.description = Uma grande porta. Pode ser aberta e fechada ao to
block.mender.description = Periodicamente repara blocos vizinhos. Mantem as defesas reparadas em e entre ondas.\nPode usar silício para aumentar o alcance e a eficiência.
block.mend-projector.description = Uma versão melhorada do reparador. Repara blocos vizinhos.\nPode usar tecido de fase para aumentar o alcance e a eficiência.
block.overdrive-projector.description = Aumenta a velocidade de construções vizinhas.\nPode usar tecido de fase para aumentar o alcance e a eficiência.
-block.force-projector.description = Cria um campo de forca hexagonal em volta de si mesmo, Protegendo construções e unidades dentro de dano por balas.
+block.force-projector.description = Cria um campo de força hexagonal ao redor de si, protegendo construções e unidades.\nSuperaquece se suportar muito dano. Pode usar líquidos para evitar superaquecimento. Pode-se usar tecido de fase para aumentar o tamanho do escudo.
block.shock-mine.description = Danifica inimigos em cima da mina. Quase invisivel ao inimigo.
-block.conveyor.description = Bloco de transporte de item basico. Move os itens a frente e os deposita automaticamente em torretas ou construtores. Rotacionavel.
+block.conveyor.description = Bloco de transporte de item basico. Move os itens a frente e os deposita automaticamente em torretas ou construtores. Rotacionável.
block.titanium-conveyor.description = Bloco de transporte de item avançado. Move itens mais rapidos que esteiras padrões.
block.junction.description = Funciona como uma ponte Para duas esteiras que estejam se cruzando. Util em situações que tenha duas esteiras diferentes carregando materiais diferentes para lugares diferentes.
block.bridge-conveyor.description = Bloco de transporte de itens avancado. Possibilita o transporte de itens acima de 3 blocos de construção ou paredes.
@@ -1176,16 +1198,16 @@ block.rtg-generator.description = Um Gerador termoelétrico de radioisótopos qu
block.solar-panel.description = Gera pequenas quantidades de energia do sol.
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.impact-reactor.description = Um gerador avançado, capaz de criar quantidades enormes de energia em seu poder total. Requer uma entrada significativa de energia ao iniciar.
block.mechanical-drill.description = Uma broca barata. Quando colocado em blocos apropriados, retira itens em um ritmo lento e indefinitavamente.
block.pneumatic-drill.description = Uma broca improvisada que é mais rápida e capaz de processar materiais mais duros usando a pressão do ar
block.laser-drill.description = Possibilita a mineração ainda mais rapida usando tecnologia a laser, Mas requer poder adcionalmente torio radioativo pode ser recuperado com essa mineradora
block.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.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-shard.description = The first iteration of the core capsule. Once destroyed, all contact to the region is lost. Do not let this happen.
+block.core-foundation.description = The second version of the core. Better armored. Stores more resources.
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.
diff --git a/core/assets/bundles/bundle_pt.properties b/core/assets/bundles/bundle_pt_PT.properties
similarity index 89%
rename from core/assets/bundles/bundle_pt.properties
rename to core/assets/bundles/bundle_pt_PT.properties
index a0300813f5..1375245580 100644
--- a/core/assets/bundles/bundle_pt.properties
+++ b/core/assets/bundles/bundle_pt_PT.properties
@@ -1,4 +1,4 @@
-credits.text = Created by [ROYAL]Anuken[] - [SKY]anukendev@gmail.com[]
+credits.text = Criado por [ROYAL]Anuken[] - [SKY]anukendev@gmail.com[]
credits = Créditos
contributors = Tradutores e contribuidores
discord = Junte-se ao Discord do Mindustry! (Lá falamos inglês)
@@ -10,7 +10,9 @@ link.dev-builds.description = Desenvolvimentos Instáveis
link.trello.description = Trello Oficial para Atualizações Planejadas
link.itch.io.description = Pagina da Itch.io com os Descarregamentos
link.google-play.description = Listamento do google play store
+link.f-droid.description = F-Droid catalogue listing
link.wiki.description = Wiki oficial do Mindustry
+link.feathub.description = Suggest new features
linkfail = Falha ao abrir a ligação\nO Url foi copiado
screenshot = Screenshot gravado para {0}
screenshot.invalid = Mapa grande demais, Potencialmente sem memória suficiente para captura.
@@ -18,28 +20,39 @@ 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
+load.scripts = Scripts
+
+be.update = A new Bleeding Edge build is available:
+be.update.confirm = Download it and restart now?
+be.updating = Updating...
+be.ignore = Ignore
+be.noupdates = No updates found.
+be.check = Check for updates
+
schematic = Esquema
schematic.add = Gravar Esquema...
schematics = Esquemas
-schematic.replace = A schematic by that name already exists. Replace it?
+schematic.replace = Um esquema com esse nome já existe. Deseja substituí-lo?
schematic.import = Importar Esquema...
schematic.exportfile = Exportar Ficheiro
schematic.importfile = Importar Ficheiro
-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}][]: Tornar Esquema
+schematic.browseworkshop = Pesquisar no Workshop
+schematic.copy = Copiar para a área de transferência
+schematic.copy.import = Importar da área de transferência
+schematic.shareworkshop = Partilhar na Workshop
+schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Rodar Esquema
schematic.saved = Esquema gravado.
schematic.delete.confirm = Este esquema irá ser completamente apagado.
schematic.rename = Renomear Esquema
schematic.info = {0}x{1}, {2} blocos
+
stat.wave = Hordas derrotadas:[accent] {0}
stat.enemiesDestroyed = Inimigos Destruídos:[accent] {0}
stat.built = Construções construídas:[accent] {0}
@@ -47,6 +60,7 @@ stat.destroyed = Construções destruídas:[accent] {0}
stat.deconstructed = Construções desconstruídas:[accent] {0}
stat.delivered = Recursos lançados:
stat.rank = Rank Final: [accent]{0}
+
launcheditems = [accent]Itens lançados
launchinfo = [unlaunched][[LAUNCH] your core to obtain the items indicated in blue.
map.delete = Certeza que quer deletar o mapa "[accent]{0}[]"?
@@ -56,7 +70,7 @@ level.mode = Modo de Jogo:
showagain = Não mostrar na proxima sessão
coreattack = < O núcleo está sobre ataque! >
nearpoint = [[ [scarlet]SAIA DO PONTO DE SPAWN IMEDIATAMENTE[] ]\nANIQUILAÇÃO IMINENTE
-database = banco do núcleo
+database = Banco do núcleo
savegame = Gravar Jogo
loadgame = Carregar Jogo
joingame = Entrar no Jogo
@@ -74,36 +88,45 @@ maps.browse = Pesquisar mapas
continue = Continuar
maps.none = [LIGHT_GRAY]Nenhum Mapa Encontrado!
invalid = Inválido
+pickcolor = Pick Color
preparingconfig = Preparando configuração
preparingcontent = Preparando conteúdo
uploadingcontent = Enviando conteúdo
uploadingpreviewfile = Enviando ficheiro de pré-visualização
committingchanges = Enviando mudanças
done = Feito
-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.
+feature.unsupported = O teu dispositivos não suporta esta característica.
+
+mods.alphainfo = Lembre-se de que os mods estão em alfa, e [scarlet] pode estar cheio de falhas[].\nReporta qualquer problema que encontres no the Mindustry GitHub ou Discord.
mods.alpha = [accent](Alpha)
mods = Mods
-mods.none = [LIGHT_GRAY]No mods found!
-mods.guide = Modding Guide
-mods.report = Report Bug
+mods.none = [LIGHT_GRAY]Mods não encontrados!
+mods.guide = Guia de mods
+mods.report = Reportar Bug
mods.openfolder = Open Mod Folder
mod.enabled = [lightgray]Ativado
mod.disabled = [scarlet]Desativado
mod.disable = Desativar
-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.delete.error = Incapaz de apagar o mod. Ficheiro já em uso.
+mod.requiresversion = [scarlet]Requires min game version: [accent]{0}
+mod.missingdependencies = [scarlet]Dependências ausentes: {0}
+mod.erroredcontent = [scarlet]Content Errors
+mod.errors = Errors have occurred loading content.
+mod.noerrorplay = [scarlet]You have mods with errors.[] Either disable the affected mods or fix the errors before playing.
+mod.nowdisabled = [scarlet]Mod '{0}' está faltando dependências:[accent] {1}\n[lightgray]Esses mods precisam ser baixados primeiro. NEste mod será automaticamente desativado
mod.enable = Ativar
-mod.requiresrestart = The game will now close to apply the mod changes.
+mod.requiresrestart = O jogo será fechado agora para aplicar as alterações no mod.
mod.reloadrequired = [scarlet]Reload Required
mod.import = Importar Mod
-mod.import.github = Importar Mod da GitHub
+mod.import.github = Importar Mod pelo GitHub
+mod.item.remove = This item is part of the[accent] '{0}'[] mod. To remove it, uninstall that mod.
mod.remove.confirm = Este mod irá ser apagado.
mod.author = [LIGHT_GRAY]Autor:[] {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.
+mod.missing = Este save contém mods que foram recentemente atualizados ou que não estão mais instalados. Ao guardar pode ocorreu corrupção. Tem certeza de que deseja carregá-lo?\n[lightgray]Mods:\n{0}
+mod.preview.missing = Antes de publicar este mod no workshop, você deve adicionar uma visualização da imagem.\nNome da imagem -> [accent] preview.png[] na pasta de mods e tenta outra vez.
+mod.folder.missing = Apenas mods na pasta podem ser publicados no Workshop.\nPara converter qualquer mod para uma pasta, simplesmentes descomprime os ficheiros para a pasta e apague o ficheiro zip antigo, e depois reinicia o jogo ou os teus mods.
+mod.scripts.unsupported = Your device does not support mod scripts. Some mods will not function correctly.
+
about.button = Sobre
name = Nome:
noname = Escolha[accent] um nome[] primeiro.
@@ -132,8 +155,9 @@ server.kicked.nameEmpty = Você deve ter pelo menos uma letra ou número no nome
server.kicked.idInUse = Você ja está neste servidor! Conectar com duas contas não é permitido.
server.kicked.customClient = Este servidor não suporta versões customizadas. Baixe a versão original.
server.kicked.gameover = Fim de jogo!
+server.kicked.serverRestarting = The server is restarting.
server.versions = Sua versão:[accent] {0}[]\nVersão do servidor:[accent] {1}[]
-host.info = The [accent]Hospedar[]Botão Hospeda um servidor no Host[scarlet]6567[] e [scarlet]6568.[]\nQualquer um no [LIGHT_GRAY]Wi-fi Ou Internet local[] Pode ver este servidor na lista de servidores.\n\nSe voce quer poder entrar em qualquer servidor em seu ip, [accent]port forwarding[] é requerido.\n\n[LIGHT_GRAY]Note: Se alguem esta com problemas em conectar no seu servidor lan, Tenha certeza que deixou mindustry Acessar sua internet local nas configurações de firewall
+host.info = O [accent]Hospedar[]Botão Hospeda um servidor no Host[scarlet]6567[] e [scarlet]6568.[]\nQualquer um no [LIGHT_GRAY]Wi-fi Ou Internet local[] Pode ver este servidor na lista de servidores.\n\nSe voce quer poder entrar em qualquer servidor em seu ip, [accent]port forwarding[] é requerido.\n\n[LIGHT_GRAY]Note: Se alguem esta com problemas em conectar no seu servidor lan, Tenha certeza que deixou mindustry Acessar sua internet local nas configurações de firewall
join.info = Aqui, você pode entar em um [accent]IP de servidor[] para conectar, ou descobrir [accent]servidores[] da rede local.\nAmbos os servidores LAN e WAN são suportados.\n\n[LIGHT_GRAY]Note: Não há uma lista de servidores automáticos; Se você quer conectar ao IP de alguém, você precisa pedir o IP ao anfitrião.
hostserver = Hospedar servidor
invitefriends = Convidar amigos
@@ -235,12 +259,12 @@ classic.export.text = [accent]Mindustry[] acabou de ter uma grande atualização
quit.confirm = Você tem certeza que quer sair?
quit.confirm.tutorial = Você tem certeza você sabe o que você esta fazendo?\nO tutorial pode ser refeito nas [accent] Configurações->Jogo->Refazer Tutorial.[]
loading = [accent]Carregando...
-reloading = [accent]Reloading Mods...
+reloading = [accent]Recarregar mods...
saving = [accent]Gravando...
-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}][] para apagar o plano
+selectschematic = [accent][[{0}][] para selecionar+copy
+pausebuilding = [accent][[{0}][] para pausar construção
+resumebuilding = [scarlet][[{0}][] para resumir construção
wave = [accent]Horda {0}
wave.waiting = Horda em {0}
wave.waveInProgress = [LIGHT_GRAY]Horda Em Progresso
@@ -262,15 +286,16 @@ map.invalid = Erro ao carregar o mapa: Ficheiro de mapa invalido ou corrupto.
workshop.update = Atualizar Item
workshop.error = Error fetching workshop details: {0}
map.publish.confirm = Você tem certeza de que quer publicar este mapa?\n\n[lightgray]Tenha certeza de que você concorda com o EULA da oficina primeiro, ou seus mapas não serão mostrados!
-workshop.menu = Select what you would like to do with this item.
+workshop.menu = Seleciona o que tu gostarias de fazer com este item.
workshop.info = Item Info
changelog = Changelog (optional):
eula = EULA do Steam
-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 = Este item foi apagodo ou movido.\n[lightgray]A listagem da oficina foi automaticamente desassociada.
+publishing = [accent]A publicar...
+publish.confirm = Tens a certeza que queres publicar isto?\n\n[lightgray]Certifique-se de concordar com o EULA do workshpop primeiro, ou seus itens não aparecerão!
+publish.error = Erro ao publicao os items: {0}
+steam.error = Falha ao 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 +372,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 +387,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 +419,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,13 +435,14 @@ 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
complete = [LIGHT_GRAY]Completo:
-requirement.wave = Reach Wave {0} in {1}
-requirement.core = Destroy Enemy Core in {0}
-requirement.unlock = Unlock {0}
+requirement.wave = Ronda alcançada {0} / {1}
+requirement.core = Destruir Núcleo Inimigo em {0}
+requirement.unlock = Destrava {0}
resume = Resumir Zona:\n[LIGHT_GRAY]{0}
bestwave = [LIGHT_GRAY]Melhor: {0}
launch = Lançar
@@ -424,19 +453,20 @@ launch.confirm = Isto vai lançar todos os seus recursos no seu núcleo.\nVoce n
launch.skip.confirm = Se você pular a horda agora, você não será capaz de lançar até hordas mais avançadas.
uncover = Descobrir
configure = Configurar carregamento
-bannedblocks = Banned Blocks
-addall = Add All
+bannedblocks = Blocos banidos
+addall = Adiciona tudo
configure.locked = [LIGHT_GRAY]Alcançe a horda {0}\npara configurar o carregamento.
configure.invalid = A quantidade deve ser um número entre 0 e {0}.
zone.unlocked = [LIGHT_GRAY]{0} Desbloqueado.
zone.requirement.complete = Horda {0} alcançada:\n{1} Requerimentos da zona alcançada.
-zone.config.unlocked = Loadout unlocked:[lightgray]\n{0}
+zone.config.unlocked = Loadout destravada:[lightgray]\n{0}
zone.resources = Recursos detectados:
zone.objective = [lightgray]Objetivo: [accent]{0}
zone.objective.survival = Sobreviver
zone.objective.attack = Destruir o núcleo inimigo
add = Adicionar...
boss.health = Saúde do chefe
+
connectfail = [crimson]Falha ao entrar no servidor: [accent]{0}
error.unreachable = Servidor inalcançável.
error.invalidaddress = Endereço inválido.
@@ -447,6 +477,7 @@ error.mapnotfound = Ficheiro 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 aparelho talvez não o suporte.
+
zone.groundZero.name = Marco zero
zone.desertWastes.name = Ruínas do Deserto
zone.craters.name = As crateras
@@ -461,6 +492,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,10 +507,12 @@ 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 =
zone.crags.description =
+
settings.language = Linguagem
settings.data = Dados do jogo
settings.reset = Restaurar Padrões
settings.rebind = Religar
+settings.resetKey = Reset
settings.controls = Controles
settings.game = Jogo
settings.sound = Som
@@ -487,8 +521,8 @@ 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 toda a data, Incluindo saves, mapas, Keybinds e desbloqueados.\nQuando apertar 'ok' Vai apagar toda a data e sair automaticamente.
paused = Pausado
-clear = Clear
-banned = [scarlet]Banned
+clear = Limpar
+banned = [scarlet]Banido
yes = Sim
no = Não
info.title = [accent]Informação
@@ -529,6 +563,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 = Pump Speed: {0}/s
@@ -544,6 +579,9 @@ bar.heat = Aquecimento
bar.power = Poder
bar.progress = Progresso da construção
bar.spawned = Unidades: {0}/{1}
+bar.input = Input
+bar.output = Output
+
bullet.damage = [stat]{0}[lightgray] dano
bullet.splashdamage = [stat]{0}[lightgray] Dano em área ~[stat] {1}[lightgray] Blocos
bullet.incendiary = [stat]Incendiário
@@ -555,6 +593,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
@@ -567,6 +606,8 @@ unit.persecond = por segundo
unit.timesspeed = x Velocidade
unit.percent = %
unit.items = itens
+unit.thousands = k
+unit.millions = mil
category.general = Geral
category.power = Poder
category.liquids = Líquidos
@@ -579,6 +620,7 @@ setting.shadows.name = Sombras
setting.blockreplace.name = Automatic Block Suggestions
setting.linear.name = Filtragem linear
setting.hints.name = Hints
+setting.buildautopause.name = Auto-Pause Building
setting.animatedwater.name = Água animada
setting.animatedshields.name = Escudos animados
setting.antialias.name = Filtro suavizante[LIGHT_GRAY] (reinicialização requerida)[]
@@ -601,12 +643,16 @@ setting.screenshake.name = Balanço do Ecrã
setting.effects.name = Efeitos
setting.destroyedblocks.name = Display Destroyed Blocks
setting.conveyorpathfinding.name = Conveyor Placement Pathfinding
+setting.coreselect.name = Allow Schematic Cores
setting.sensitivity.name = Sensibilidade do Controle
setting.saveinterval.name = Intervalo de autogravamento
setting.seconds = {0} Segundos
+setting.blockselecttimeout.name = Block Select Timeout
+setting.milliseconds = {0} milliseconds
setting.fullscreen.name = Ecrã inteiro
setting.borderlesswindow.name = Janela sem borda[LIGHT_GRAY] (Pode precisar reiniciar)
setting.fps.name = Mostrar FPS
+setting.blockselectkeys.name = Show Block Select Keys
setting.vsync.name = VSync
setting.pixelate.name = Pixelizado [LIGHT_GRAY](Pode diminuir a performace)
setting.minimap.name = Mostrar minimapa
@@ -620,10 +666,10 @@ setting.crashreport.name = Enviar denuncias de crash anonimas
setting.savecreate.name = Criar gravamentos automaticamente
setting.publichost.name = Visibilidade do jogo público
setting.chatopacity.name = Opacidade do chat
-setting.lasersopacity.name = Power Laser Opacity
+setting.lasersopacity.name = Opacidade do Power Laser
setting.playerchat.name = Mostrar chat em jogo
-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 = Queres que o teu jogo fique publico?\n[accent]Qualquer jogador vai conseguir juntar-se ao teu jogo.\n[lightgray]Isto pode ser alterado mais tarde in Settings->Game->Public Game Visibility.
+public.beta = Observe que as versões beta do jogo não podem criar lobbies públicos.
uiscale.reset = A escala da IU foi mudada.\nPressione "OK" para confirmar esta escala.\n[scarlet]Revertendo e saindo em[accent] {0}[] settings...
uiscale.cancel = Cancelar e sair
setting.bloom.name = Bloom
@@ -635,18 +681,38 @@ category.multiplayer.name = Multijogador
command.attack = Atacar
command.rally = Reunir
command.retreat = Recuar
+placement.blockselectkeys = \n[lightgray]Key: [{0},
keybind.clear_building.name = Limpar Edificio
keybind.press = Pressione uma tecla...
keybind.press.axis = Pressione uma Axis ou tecla...
keybind.screenshot.name = Captura do mapa
+keybind.toggle_power_lines.name = Toggle Power Lasers
keybind.move_x.name = mover_x
keybind.move_y.name = mover_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.mouse_move.name = Follow Mouse
+keybind.dash.name = Correr
+keybind.schematic_select.name = Selecionar região
+keybind.schematic_menu.name = Menu esquemático
+keybind.schematic_flip_x.name = Rodar esquema X
+keybind.schematic_flip_y.name = Rodar esquema Y
+keybind.category_prev.name = Previous Category
+keybind.category_next.name = Next Category
+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 = Alterar ecrã inteiro
-keybind.select.name = selecionar
+keybind.select.name = Selecionar
keybind.diagonal_placement.name = Colocação diagonal
keybind.pick.name = Pegar bloco
keybind.break_block.name = Quebrar bloco
@@ -655,21 +721,20 @@ keybind.shoot.name = Atirar
keybind.zoom.name = Zoom
keybind.menu.name = Menu
keybind.pause.name = Pausar
-keybind.pause_building.name = Pause/Resume Building
+keybind.pause_building.name = Pausar/Resumir 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
keybind.rotate.name = Girar
-keybind.rotateplaced.name = Rotate Existing (Hold)
+keybind.rotateplaced.name = Rodar existente (Hold)
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_prev.name = Histórico do chat anterior
+keybind.chat_history_next.name = Histórico do proximo chat
keybind.chat_scroll.name = Rolar chat
keybind.drop_unit.name = Soltar unidade
keybind.zoom_minimap.name = Zoom do minimapa
-mode.help.title = Descrição dos modos
+mode.help.title = Descrição dos mods
mode.survival.name = Sobrevivência
mode.survival.description = O modo normal. Recursos limitados e hordas automáticas.
mode.sandbox.name = Sandbox
@@ -680,7 +745,9 @@ 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 = Reactor Explosions
rules.wavetimer = Tempo de horda
rules.waves = Hordas
rules.attack = Modo de ataque
@@ -688,6 +755,7 @@ rules.enemyCheat = Recursos de IA Infinitos
rules.unitdrops = Unidade solta
rules.unitbuildspeedmultiplier = Multiplicador de velocidade de criação de unidade
rules.unithealthmultiplier = Multiplicador de vida de unidade
+rules.blockhealthmultiplier = Block Health Multiplier
rules.playerhealthmultiplier = Multiplicador da vida de jogador
rules.playerdamagemultiplier = Multiplicador do dano de jogador
rules.unitdamagemultiplier = Multiplicador de dano de Unidade
@@ -706,6 +774,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 = Lighting
+rules.ambientlight = Ambient Light
+
content.item.name = Itens
content.liquid.name = Liquidos
content.unit.name = Unidades
@@ -752,6 +824,7 @@ mech.trident-ship.name = Tridente
mech.trident-ship.weapon = Carga de bombas
mech.glaive-ship.name = Glaive
mech.glaive-ship.weapon = Repetidor de fogo
+item.corestorable = [lightgray]Storable in Core: {0}
item.explosiveness = [LIGHT_GRAY]Explosibilidade: {0}
item.flammability = [LIGHT_GRAY]Inflamabilidade: {0}
item.radioactivity = [LIGHT_GRAY]Radioatividade: {0}
@@ -767,6 +840,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
@@ -865,6 +939,8 @@ block.distributor.name = Distribuidor
block.sorter.name = Ordenador
block.inverted-sorter.name = Inverted Sorter
block.message.name = Mensagem
+block.illuminator.name = Illuminator
+block.illuminator.description = A small, compact, configurable light source. Requires power to function.
block.overflow-gate.name = Portão Sobrecarregado
block.silicon-smelter.name = Fundidora de silicio
block.phase-weaver.name = Palheta de fase
@@ -878,6 +954,7 @@ 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.surge-tower.name = Torre de surto
+block.diode.name = Battery Diode
block.battery.name = Bateria
block.battery-large.name = Bateria Grande
block.combustion-generator.name = Gerador a combustão
@@ -901,6 +978,7 @@ block.mechanical-pump.name = Bomba Mecânica
block.item-source.name = Criador de itens
block.item-void.name = Destruidor de itens
block.liquid-source.name = Criador de líquidos
+block.liquid-void.name = Liquid Void
block.power-void.name = Anulador de energia
block.power-source.name = Criador de energia
block.unloader.name = Descarregador
@@ -930,6 +1008,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 = Plated Conduit
block.phase-conduit.name = Cano de Fase
block.liquid-router.name = Roteador de Líquido
block.liquid-tank.name = Tanque de Líquido
@@ -981,8 +1060,8 @@ unit.eradicator.name = Erradicador
unit.lich.name = Lich
unit.reaper.name = Ceifador
tutorial.next = [lightgray]
-tutorial.intro = Você entrou no[scarlet] Tutorial do Mindustry.[]\nComeçe[accent] minerando cobre[]. Toque em um veio de minério de cobre para fazer isso.\n\n[accent]{0}/{1} copper
-tutorial.intro.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 = Entraste no[scarlet] Tutorial do Mindustry.[]\nComeçe[accent] minerando cobre[]. Toque em um veio de minério de cobre para fazer isso.\n\n[accent]{0}/{1} copper
+tutorial.intro.mobile = Entraste no[scarlet] Mindustry Tutorial.[]\nPasse o dedo na tela para mover.\n[accent]Use 2 dedos [] para manipular o zoom.\nComeça por by[accent] minerar cobre[].Aproxime-se dele e toque uma veia de minério de cobre perto do seu núcleo para fazer isso.\n\n[accent]{0}/{1} copper
tutorial.drill = Minerar manualmente é ineficiente.\n[accent]Brocas []podem minerar automaticamente.\nColoque uma num veio de cobre.
tutorial.drill.mobile = Minerar manualmente é ineficiente.\n[accent]Brocas []podem minerar automaticamente.\nToque na aba de brocas no canto inferior direito.\nSelecione a[accent] broca mecânica[].\nToque em um veio de cobre para colocá-la, então pressione a[accent] marca de verificação[] abaixo para confirmar sua seleção.\nPressione o[accent] botão "X"[] para cancelar o posicionamento.
tutorial.blockinfo = Cada bloco tem diferentes status. Cada broca pode extrair certos minérios.\nPara checar as informações e os status de um bloco,[accent] toque o botão "?" enquanto o seleciona no menu de construção.[]\n\n[accent]Acesse os status da broca mecânica agora.[]
@@ -1001,6 +1080,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.
@@ -1062,6 +1142,7 @@ block.power-source.description = Infinitivamente da energia. Apenas caixa de are
block.item-source.description = Infinivamente da itens. Apenas caixa de areia.
block.item-void.description = Destroi qualquer item que entre sem requerir energia. Apenas caixa de areia.
block.liquid-source.description = Infinitivamente da Liquidos. Apenas caixa de areia.
+block.liquid-void.description = Removes any liquids. Sandbox only.
block.copper-wall.description = Um bloco defensivo e barato.\nUtil para proteger o núcleo e torretas no começo.
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.
@@ -1097,6 +1178,7 @@ 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.plated-conduit.description = Moves liquids at the same rate as pulse conduits, but possesses more armor. Does not accept fluids from the sides by anything other than conduits.\nLeaks less.
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.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.
@@ -1105,6 +1187,7 @@ 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 = Battery power can flow through this block in only one direction, but only if the other side has less power stored.
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.
diff --git a/core/assets/bundles/bundle_ru.properties b/core/assets/bundles/bundle_ru.properties
index 90f7fe7eb8..35e6b5be56 100644
--- a/core/assets/bundles/bundle_ru.properties
+++ b/core/assets/bundles/bundle_ru.properties
@@ -29,6 +29,13 @@ load.system = Система
load.mod = Модификации
load.scripts = Скрипты
+be.update = Доступна новая сборка Bleeding Edge:
+be.update.confirm = Загрузить её и перезапустить игру сейчас?
+be.updating = Обновляется...
+be.ignore = Игнорировать
+be.noupdates = Обновления не найдены.
+be.check = Проверить обновления
+
schematic = Схема
schematic.add = Сохранить схему...
schematics = Схемы
@@ -115,7 +122,7 @@ mod.import.github = Импортировать мод с GitHub
mod.item.remove = Этот предмет является частью модификации [accent]«{0}»[]. Чтобы удалить его, удалите саму модификацию.
mod.remove.confirm = Эта модификация будет удалена.
mod.author = [LIGHT_GRAY]Автор:[] {0}
-mod.missing = Это сохранение содержит модификацию, которое Вы недавно обновили или оно больше не установлено. Может случиться повреждение сохранения. Вы уверены, что хотите загрузить его?\n[lightgray]Модификации:\n{0}
+mod.missing = Это сохранение содержит модификацию, которое Вы недавно обновили или она больше не установлена. Может случиться повреждение сохранения. Вы уверены, что хотите загрузить его?\n[lightgray]Модификации:\n{0}
mod.preview.missing = Перед публикацией этой модификации в Мастерской, Вы должны добавить изображение предпросмотра.\nРазместите изображение с именем[accent] preview.png[] в папке модификации и попробуйте снова.
mod.folder.missing = Модификации могут быть опубликованы в Мастерской только в виде папки.\nЧтобы конвертировать любой мод в папку, просто извлеките его из архива и удалите старый архив .zip, затем перезапустите игру или перезагрузите модификации.
mod.scripts.unsupported = Ваше устройство не поддерживает скрипты в модификациях. Некоторые модификации могут работать некорректно.
@@ -148,6 +155,7 @@ server.kicked.nameEmpty = Выбранное Вами имя недопусти
server.kicked.idInUse = Вы уже на этом сервере! Соединение с двумя учетными записями не разрешено.
server.kicked.customClient = Этот сервер не поддерживает пользовательские сборки. Загрузите официальную версию.
server.kicked.gameover = Игра окончена!
+server.kicked.serverRestarting = Сервер перезапускается.
server.versions = Ваша версия:[accent] {0}[]\nВерсия сервера:[accent] {1}[]
host.info = Кнопка [accent]Открыть сервер[] запускает сервер на порте [scarlet]6567[].\nЛюбой пользователь в той же [lightgray]локальной сети или WiFi[] должен увидеть ваш сервер в своём списке серверов.\n\nЕсли Вы хотите, чтобы люди могли подключаться откуда угодно по IP, то требуется [accent]переадресация (проброс) портов[] и наличие [red]ВНЕШНЕГО[] WAN адреса (WAN адрес [red]НЕ должен[] начинаться с [red]10[][lightgray].x.x.x[], [red]100.64[][lightgray].x.x[], [red]172.16[][lightgray].x.x[], [red]192.168[][lightgray].x.x[], [red]127[][lightgray].x.x.x[])!\nКлиентам мобильных операторов нужно уточнять информацию в личном кабинете на сайте вашего оператора!\n\n[lightgray]Примечание: Если у кого-то возникают проблемы с подключением к вашей игре по локальной сети, убедитесь, что Вы разрешили доступ Mindustry к вашей локальной сети в настройках брандмауэра. Обратите внимание, что публичные сети иногда не позволяют обнаружение сервера.
join.info = Здесь Вы можете ввести [accent]IP-адрес сервера[] для подключения или открыть [accent]локальную сеть[] для подключения к другим серверам.\nПоддерживаются оба многопользовательских режима: LAN и WAN.\n\n[lightgray]Примечание: это НЕ автоматический глобальный список серверов; если Вы хотите подключиться к кому-то по IP, вам нужно спросить у хоста его IP-адрес.
@@ -249,7 +257,7 @@ data.import.confirm = Импорт внешних данных сотрёт[scar
classic.export = Экспортировать данные классической версии
classic.export.text = [accent]Mindustry[] получил глобальное обновление.\nБыло обнаружено Классическое (версия 3.5 сборка 40) сохранение или карта. Вы хотите экспортировать эти сохранения в домашнюю папку вашего телефона, для использования в приложении Mindustry Classic?
quit.confirm = Вы уверены, что хотите выйти?
-quit.confirm.tutorial = Вы уверены, что знаете, что делаете?\nОбучение может быть повторно запущено через[accent] Настройки→Игра→Открыть обучение.[]
+quit.confirm.tutorial = Вы уверены, что знаете, что делаете?\nОбучение может быть повторно запущено через[accent] Настройки->Игра->Открыть обучение.[]
loading = [accent]Загрузка…
reloading = [accent]Перезагрузка модификаций...
saving = [accent]Сохранение…
@@ -263,7 +271,7 @@ wave.waveInProgress = [lightgray]Волна продолжается
waiting = [lightgray]Ожидание…
waiting.players = Ожидание игроков…
wave.enemies = Враги: [lightgray]{0}
-wave.enemy = Остался {0} [lightgray]враг[]
+wave.enemy = Остался [lightgray]{0}[] враг
loadimage = Загрузить изображение
saveimage = Сохранить изображение
unknown = Неизвестно
@@ -635,6 +643,7 @@ setting.screenshake.name = Тряска экрана
setting.effects.name = Эффекты
setting.destroyedblocks.name = Отображать уничтоженные блоки
setting.conveyorpathfinding.name = Поиск пути для установки конвейеров
+setting.coreselect.name = Разрешить выделение ядер в схемах
setting.sensitivity.name = Чувствительность контроллера
setting.saveinterval.name = Интервал сохранения
setting.seconds = {0} секунд
@@ -659,7 +668,7 @@ setting.publichost.name = Общедоступность игры
setting.chatopacity.name = Непрозрачность чата
setting.lasersopacity.name = Непрозрачность лазеров энергоснабжения
setting.playerchat.name = Отображать облака чата над игроками
-public.confirm = Вы хотите, чтобы Ваша игра стала публичной?\n[accent] Любой игрок сможет присоединиться к Вашем играм.\n[lightgray]Позже, это можно будет изменить в Настройки→Игра→Общедоступность игры.
+public.confirm = Вы хотите, чтобы Ваша игра стала публичной?\n[accent] Любой игрок сможет присоединиться к Вашем играм.\n[lightgray]Позже, это можно будет изменить в Настройки->Игра->Общедоступность игры.
public.beta = Имейте в виду, что бета-версия игры не может делать игры публичными.
uiscale.reset = Масштаб пользовательского интерфейса был изменён.\nНажмите «ОК» для подтверждения этого масштаба.\n[scarlet]Возврат настроек и выход через[accent] {0}[] секунд…
uiscale.cancel = Отменить & Выйти
@@ -746,6 +755,7 @@ rules.enemyCheat = Бесконечные ресурсы ИИ (красная к
rules.unitdrops = Ресурсы за уничтожение боев. ед.
rules.unitbuildspeedmultiplier = Множитель скорости производства боев. ед.
rules.unithealthmultiplier = Множитель здоровья боев. ед.
+rules.blockhealthmultiplier = Множитель здоровья блоков
rules.playerhealthmultiplier = Множитель здоровья игрока
rules.playerdamagemultiplier = Множитель урона игрока
rules.unitdamagemultiplier = Множитель урона боев. ед.
@@ -780,7 +790,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 = Споровый стручок
@@ -858,8 +868,6 @@ block.kiln.name = Печь
block.graphite-press.name = Графитный пресс
block.multi-press.name = Мульти-пресс
block.constructing = {0} [lightgray](Строится)
-block.signal = [lightgray]Сигнал: {0}
-block.editsignal = Сигнал
block.spawn.name = Точка появления врагов
block.core-shard.name = Ядро: «Осколок»
block.core-foundation.name = Ядро: «Штаб»
@@ -908,8 +916,8 @@ block.copper-wall.name = Медная стена
block.copper-wall-large.name = Большая медная стена
block.titanium-wall.name = Титановая стена
block.titanium-wall-large.name = Большая титановая стена
-block.plastanium-wall.name = Пластаниевая стена
-block.plastanium-wall-large.name = Большая пластаниевая стена
+block.plastanium-wall.name = Пластановая стена
+block.plastanium-wall-large.name = Большая пластановая стена
block.phase-wall.name = Фазовая стена
block.phase-wall-large.name = Большая фазовая стена
block.thorium-wall.name = Ториевая стена
@@ -970,6 +978,7 @@ block.mechanical-pump.name = Механическая помпа
block.item-source.name = Источник предметов
block.item-void.name = Предметный вакуум
block.liquid-source.name = Источник жидкостей
+block.liquid-void.name = Liquid Void
block.power-void.name = Энергетический вакуум
block.power-source.name = Источник энергии
block.unloader.name = Разгрузчик
@@ -980,7 +989,7 @@ block.salvo.name = Залп
block.ripple.name = Рябь
block.phase-conveyor.name = Фазовый конвейер
block.bridge-conveyor.name = Мостовой конвейер
-block.plastanium-compressor.name = Пластаниевый компрессор
+block.plastanium-compressor.name = Пластановый компрессор
block.pyratite-mixer.name = Мешалка пиротита
block.blast-mixer.name = Мешалка взрывчатой смеси
block.solar-panel.name = Солнечная панель
@@ -1080,17 +1089,17 @@ item.sand.description = Обычный материал, который широ
item.coal.description = Окаменелое растительное вещество, образовавшееся задолго до посева. Широко используется для производства топлива и ресурсов.
item.titanium.description = Редкий сверхлёгкий металл, широко используемый для транспортировки жидкостей, буров и авиации.
item.thorium.description = Плотный радиоактивный металл, используемый в качестве структурной опоры и ядерного топлива.
-item.scrap.description = Остатки старых сооружений и подразделений. Содержит небольшие количества многих различных металлов.
+item.scrap.description = Остатки старых сооружений и боевых единиц. Содержит небольшие количества многих различных металлов.
item.silicon.description = Чрезвычайно полезный полупроводник. Применяется в солнечных панелях, сложной электронике и самонаводящихся боеприпасах.
item.plastanium.description = Лёгкий, пластичный материал, используемый в продвинутой авиации и осколочных боеприпасах.
item.phase-fabric.description = Практически невесомое вещество, используемое в передовой электронике и технологиях самовосстановления.
item.surge-alloy.description = Современный сплав с уникальными электрическими свойствами.
-item.spore-pod.description = Стручок синтетических спор, синтезированных из атмосферных концентраций для промышленных целей. Используется для превращения в нефть, взрывчатые вещества и топливо.
-item.blast-compound.description = Нестабильный соединение, используемый в бомбах и взрывчатых веществах. Синтезируется из стручков спор и других летучих веществ. Использовать в качестве топлива не рекомендуется.
+item.spore-pod.description = Стручок спор, синтезированных из атмосферных концентраций для промышленных целей. Используется для переработки в нефть, взрывчатые вещества или топливо.
+item.blast-compound.description = Нестабильное соединение, используемое в бомбах и взрывчатых веществах. Синтезируется из стручков спор и других летучих веществ. Использовать в качестве топлива не рекомендуется.
item.pyratite.description = Чрезвычайно огнеопасное вещество, используемое в зажигательном оружии.
liquid.water.description = Самая полезная жидкость. Обычно используется для охлаждения машин и переработки отходов.
liquid.slag.description = Всевозможно различные типы расплавленного металла, смешанные вместе. Может быть разделен на составляющие его минералы или распылён на вражеских боевые единицы в качестве оружия.
-liquid.oil.description = Жидкость, используемая в производстве современных материалов. Может быть превращена в уголь в качестве топлива или распылена и подожжена как оружие.
+liquid.oil.description = Жидкость, используемая в производстве современных материалов. Может быть превращена в уголь для использования в качестве топлива или распылена и подожжена как оружие.
liquid.cryofluid.description = Инертная, неедкая жидкость, созданная из воды и титана. Обладает чрезвычайно высокой теплоёмкостью. Широко используется в качестве охлаждающей жидкости.
mech.alpha-mech.description = Стандартный управляемый мех. Основан на «Кинжале», с улучшенной броней и строительными возможностями. Имеет больший урон, чем «Дротик».
mech.delta-mech.description = Быстрый, легко бронированный мех, созданный для ударов «атакуй и беги». Наносит мало урона по строениям, но может очень быстро убить большие группы вражеских орудий с помощью дуговых молний.
@@ -1110,13 +1119,13 @@ unit.fortress.description = Тяжёлый артиллерийский мех.
unit.eruptor.description = Тяжёлый мех, предназначенный для разрушения строений. Выстреливает поток шлака по вражеским укреплениям, плавит их и поджигает летучие вещества.
unit.wraith.description = Быстрый перехватчик. Нацелен на генераторы энергии.
unit.ghoul.description = Тяжёлый ковровый бомбардировщик. Проникает через вражеские структуры, нацеливаясь на критическую инфраструктуру.
-unit.revenant.description = Тяжёлый, парящий массив, который вооружён ракетами.
+unit.revenant.description = Тяжёлая летающая система реактивного залпового огня.
block.message.description = Сохраняет сообщение. Используется для связи между союзниками.
block.graphite-press.description = Сжимает куски угля в чистые листы графита.
-block.multi-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 = Смешивает воду и мелкий титановый порошок титана в криогеннную жидкость. Неотъемлемая часть при использования ториевого реактора
@@ -1124,15 +1133,16 @@ block.blast-mixer.description = Раздавливает и смешивает
block.pyratite-mixer.description = Смешивает уголь, свинец и песок в легковоспламеняющийся пиротит.
block.melter.description = Плавит металлолом в шлак для дальнейшей обработки или использования в турелях «Волна».
block.separator.description = Разделяет шлак на его минеральные компоненты. Выводит охлажденный результат.
-block.spore-press.description = Сжимает капсулы спор под сильным давлением для синтеза масла.
+block.spore-press.description = Сжимает капсулы спор под сильным давлением для синтеза нефти.
block.pulverizer.description = Измельчает металлолом в мелкий песок.
block.coal-centrifuge.description = Отвердевает нефть в куски угля.
block.incinerator.description = Испаряет любой лишний предмет или жидкость, которую он получает.
block.power-void.description = Аннулирует всю энергию, введенную в него. Только песочница.
-block.power-source.description = Бесконечно вводит энергию. Только песочница.
+block.power-source.description = Бесконечно выводит энергию. Только песочница.
block.item-source.description = Бесконечно выводит элементы. Только песочница.
block.item-void.description = Уничтожает любые предметы. Только песочница.
block.liquid-source.description = Бесконечно выводит жидкости. Только песочница.
+block.liquid-void.description = Removes any liquids. Sandbox only.
block.copper-wall.description = Дешёвый защитный блок.\nПолезен для защиты ядра и турелей в первые несколько волн.
block.copper-wall-large.description = Дешёвый защитный блок.\nПолезен для защиты ядра и турелей в первые несколько волн.\nРазмещается на нескольких плитках.
block.titanium-wall.description = Умеренно сильный защитный блок.\nОбеспечивает умеренную защиту от врагов.
@@ -1150,9 +1160,9 @@ block.door-large.description = Большая дверь. Можно откры
block.mender.description = Периодически ремонтирует блоки в непосредственной близости. Сохраняет средства защиты в целостности между волнами.\nОпционально использует кремний для увеличения дальности и эффективности.
block.mend-projector.description = Обновлённая версия Регенератора. Ремонтирует блоки в непосредственной близости.\nОпционально использует фазовую ткань для увеличения дальности и эффективности.
block.overdrive-projector.description = Увеличивает скорость близлежащих зданий.\nОпционально использует фазовую ткань для увеличения дальности и эффективности.
-block.force-projector.description = Создает вокруг себя шестиугольное силовое поле, защищая здания и подразделения внутри от повреждений.\nПерегревается, если нанесено слишком большое количество повреждений. Опционально использует охлаждающую жидкость для предотвращения перегрева. Фазовая ткань может быть использована для увеличения размера щита.
+block.force-projector.description = Создает вокруг себя шестиугольное силовое поле, защищая здания и боевые единицы внутри от повреждений.\nПерегревается, если нанесено слишком большое количество повреждений. Опционально использует охлаждающую жидкость для предотвращения перегрева. Фазовая ткань может быть использована для увеличения размера щита.
block.shock-mine.description = Наносит урон врагам, наступающим на мину. Почти невидима для врага.
-block.conveyor.description = Базовый элемент транспортного блока. Перемещает предметы вперед и автоматически складывает их в блоки. Можно повернуть.
+block.conveyor.description = Базовый транспортный блок. Перемещает предметы вперед и автоматически складывает их в блоки. Можно повернуть.
block.titanium-conveyor.description = Улучшенный транспортный блок. Перемещает предметы быстрее, чем стандартные конвейеры.
block.junction.description = Действует как мост для двух пересекающихся конвейерных лент. Полезен в ситуациях, когда два разных конвейера перевозят разные материалы в разные места.
block.bridge-conveyor.description = Улучшенный транспортный блок. Позволяет транспортировать предметы над 3 плитками любой местности или здания.
@@ -1162,7 +1172,7 @@ block.inverted-sorter.description = Работает с предметами т
block.router.description = Принимает предмет в одном направлении и выводит их до 3 других направлений в равной степени. Полезен для разделения материалов из одного источника на несколько целей.\n\n[scarlet]Никогда не используйте рядом с заводами и т.п., так как маршрутизатор будет забит выходными предметами.[]
block.distributor.description = Расширенный маршрутизатор. Разделяет предметы до 7 других направлений в равной степени.
block.overflow-gate.description = Выводит предметы влево и вправо, только если передний путь заблокирован.
-block.mass-driver.description = Самый продвинутый транспортного блока. Собирает несколько предметов и затем стреляет ими в другую катапульту на большом расстоянии. Требуется энергия для работы.
+block.mass-driver.description = Самый продвинутый транспортный блок. Собирает несколько предметов и затем стреляет ими в другую катапульту на большом расстоянии. Требуется энергия для работы.
block.mechanical-pump.description = Дешёвый насос с низкой производительностью, но без энергопотребления.
block.rotary-pump.description = Продвинутый насос. Качает больше жидкости, но требуют энергию.
block.thermal-pump.description = Наилучший насос.
@@ -1171,9 +1181,9 @@ block.pulse-conduit.description = Улучшенный блок транспор
block.plated-conduit.description = Перемещает жидкости с той же скоростью, что и импульсные трубопроводы, но обладает большей прочностью. Не принимает жидкости со сторон, кроме как от других трубопроводов.\nПротекает меньше.
block.liquid-router.description = Принимает жидкости из одного направления и выводит их до 3 других направлений в равной степени. Также может хранить определенное количество жидкости. Полезен для разделения жидкостей из одного источника на несколько целей.
block.liquid-tank.description = Хранит большое количество жидкости. Используется для создания буферов в ситуациях с непостоянной потребностью в материалах или в качестве защиты для охлаждения жизненно важных блоков.
-block.liquid-junction.description = Действует как мост для двух пересекающихся каналов. Полезен в ситуациях, когда два разных трубопровода переносят разные жидкости в разные места.
+block.liquid-junction.description = Действует как мост для двух пересекающихся трубопроводов. Полезен в ситуациях, когда два разных трубопровода переносят разные жидкости в разные места.
block.bridge-conduit.description = Расширенный блок транспортировки жидкости. Позволяет транспортировать жидкости над 3 плитками любой местности или здания.
-block.phase-conduit.description = Расширенный блок транспортировки жидкости. Использует энергию для телепортации жидкостей в подключенный фазовый канал над несколькими плиткам.
+block.phase-conduit.description = Расширенный блок транспортировки жидкости. Использует энергию для телепортации жидкостей в подключенный фазовый трубопровод над несколькими плиткам.
block.power-node.description = Передает питание на подключенные узлы. Узел будет получать питание или поставлять питание на любые соседние блоки.
block.power-node-large.description = Усовершенствованный силовой узел с большей дальностью.
block.surge-tower.description = Силовой узел с очень большим радиусом действия, но меньшим количеством доступных соединений.
@@ -1187,12 +1197,12 @@ block.differential-generator.description = Генерирует большое
block.rtg-generator.description = Простой, надежный генератор. Использует тепло распадающихся радиоактивных соединений для производства энергии с низкой скоростью.
block.solar-panel.description = Обеспечивает небольшое количество энергии от солнца.
block.solar-panel-large.description = Значительно более эффективный вариант стандартной солнечной панели.
-block.thorium-reactor.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.blast-drill.description = Самый продвинутый бур. Требует большое количества энергии.
block.water-extractor.description = Выкачивает подземные воды. Используется в местах, где нет поверхностных вод.
block.cultivator.description = Выращивает крошечные концентрации спор в атмосфере в готовые к использованию споры.
block.oil-extractor.description = Использует большое количество энергии, песка и воды для бурения, добывая нефть.
@@ -1215,7 +1225,7 @@ block.swarmer.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Указывает подразделениям [accent]собираться[] вокруг командного центра, [accent]атаковать[] вражеское ядро или [accent]отступать[] к ядру/фабрике. Если вражеское ядро отсутствует, единицы будут патрулировать при команде [accent]атаки[].
diff --git a/core/assets/bundles/bundle_sv.properties b/core/assets/bundles/bundle_sv.properties
index 13ad6cdfae..429fe7df5d 100644
--- a/core/assets/bundles/bundle_sv.properties
+++ b/core/assets/bundles/bundle_sv.properties
@@ -10,7 +10,9 @@ link.dev-builds.description = Unstable development builds
link.trello.description = Officiell Trello tavla för plannerade funktioner
link.itch.io.description = itch.io sida med nedladdningar
link.google-play.description = Mindustry på Google Play
+link.f-droid.description = F-Droid catalogue listing
link.wiki.description = Officiell wiki-sida för Mindustry
+link.feathub.description = Suggest new features
linkfail = Kunde inte öppna länken!\nURL:en har kopierats till ditt urklipp.
screenshot = Skärmdump har sparats till {0}
screenshot.invalid = Karta för stor, potentiellt inte tillräckligt minne för .
@@ -18,12 +20,22 @@ gameover = Game Over
gameover.pvp = The[accent] {0}[] team is victorious!
highscore = [accent]Nytt rekord!
copied = Kopierad.
+
load.sound = Ljud
load.map = Kartor
load.image = Bilder
load.content = Innehåll
load.system = System
load.mod = Mods
+load.scripts = Scripts
+
+be.update = A new Bleeding Edge build is available:
+be.update.confirm = Download it and restart now?
+be.updating = Updating...
+be.ignore = Ignore
+be.noupdates = No updates found.
+be.check = Check for updates
+
schematic = Schematic
schematic.add = Save Schematic...
schematics = Schematics
@@ -40,6 +52,7 @@ schematic.saved = Schematic saved.
schematic.delete.confirm = This schematic will be utterly eradicated.
schematic.rename = Rename Schematic
schematic.info = {0}x{1}, {2} blocks
+
stat.wave = Besegrade vågor:[accent] {0}
stat.enemiesDestroyed = Besegrade fiender:[accent] {0}
stat.built = Buildings Built:[accent] {0}
@@ -47,6 +60,7 @@ stat.destroyed = Buildings Destroyed:[accent] {0}
stat.deconstructed = Buildings Deconstructed:[accent] {0}
stat.delivered = Resources Launched:
stat.rank = Final Rank: [accent]{0}
+
launcheditems = [accent]Launched Items
launchinfo = [unlaunched][[LAUNCH] your core to obtain the items indicated in blue.
map.delete = Are you sure you want to delete the map "[accent]{0}[]"?
@@ -74,6 +88,7 @@ maps.browse = Bläddra bland kartor
continue = Fortsätt
maps.none = [lightgray]Inga kartor hittade!
invalid = Ogiltig
+pickcolor = Pick Color
preparingconfig = Förbereder konfiguration
preparingcontent = Förbereder innehåll
uploadingcontent = Laddar upp innehåll
@@ -81,6 +96,7 @@ uploadingpreviewfile = Laddar upp förhandsgranskningsfil
committingchanges = Comitting Changes
done = Klar
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
@@ -92,18 +108,25 @@ 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 min game version: [accent]{0}
mod.missingdependencies = [scarlet]Missing dependencies: {0}
+mod.erroredcontent = [scarlet]Content Errors
+mod.errors = Errors have occurred loading content.
+mod.noerrorplay = [scarlet]You have mods with errors.[] Either disable the affected mods or fix the errors before playing.
mod.nowdisabled = [scarlet]Mod '{0}' is missing dependencies:[accent] {1}\n[lightgray]These mods need to be downloaded first.\nThis mod will be automatically disabled.
mod.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.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}
mod.preview.missing = Before publishing this mod in the workshop, you must add an image preview.\nPlace an image named[accent] preview.png[] into the mod's folder and try again.
mod.folder.missing = Only mods in folder form can be published on the workshop.\nTo convert any mod into a folder, simply unzip its file into a folder and delete the old zip, then restart your game or reload your mods.
+mod.scripts.unsupported = Your device does not support mod scripts. Some mods will not function correctly.
+
about.button = Om
name = Namn:
noname = Välj ett[accent] namn[] först.
@@ -132,6 +155,7 @@ server.kicked.nameEmpty = Ditt namn är ogiltigt.
server.kicked.idInUse = Du är redan på den här servern! Det är inte tillåtet att koppla med två konton.
server.kicked.customClient = This server does not support custom builds. Ladda ned en officiell verision.
server.kicked.gameover = Game over!
+server.kicked.serverRestarting = The server is restarting.
server.versions = Your version:[accent] {0}[]\nServer version:[accent] {1}[]
host.info = The [accent]host[] button hosts a server on port [scarlet]6567[]. \nAnybody on the same [lightgray]wifi or local network[] should be able to see your server in their server list.\n\nIf you want people to be able to connect from anywhere by IP, [accent]port forwarding[] is required.\n\n[lightgray]Note: If someone is experiencing trouble connecting to your LAN game, make sure you have allowed Mindustry access to your local network in your firewall settings. Note that public networks sometimes do not allow server discovery.
join.info = Here, you can enter a [accent]server IP[] to connect to, or discover [accent]local network[] servers to connect to.\nBoth LAN and WAN multiplayer is supported.\n\n[lightgray]Note: There is no automatic global server list; if you want to connect to someone by IP, you would need to ask the host for their IP.
@@ -271,6 +295,7 @@ 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}
+
editor.brush = Pensel
editor.openin = Open In Editor
editor.oregen = Ore Generation
@@ -347,6 +372,7 @@ editor.overwrite = [accent]Warning!\nThis overwrites an existing map.
editor.overwrite.confirm = [scarlet]Warning![] A map with this name already exists. Are you sure you want to overwrite it?
editor.exists = A map with this name already exists.
editor.selectmap = Select a map to load:
+
toolmode.replace = Byt ut
toolmode.replace.description = Draws only on solid blocks.
toolmode.replaceall = Byt ut alla
@@ -361,6 +387,7 @@ toolmode.fillteams = Fyll Lag
toolmode.fillteams.description = Fill teams instead of blocks.
toolmode.drawteams = Rita Lag
toolmode.drawteams.description = Draw teams instead of blocks.
+
filters.empty = [lightgray]No filters! Add one with the button below.
filter.distort = Distort
filter.noise = Brus
@@ -392,6 +419,7 @@ filter.option.floor2 = Secondary Floor
filter.option.threshold2 = Secondary Threshold
filter.option.radius = Radie
filter.option.percentile = Percentile
+
width = Bredd:
height = Höjd:
menu = Meny
@@ -407,6 +435,7 @@ tutorial = Tutorial
tutorial.retake = Ta Om Tutorial
editor = Editor
mapeditor = Map Editor
+
abandon = Ge upp
abandon.text = Zonen och alla dess resurser förloras till fienden.
locked = Låst
@@ -437,6 +466,7 @@ zone.objective.survival = Survive
zone.objective.attack = Destroy Enemy Core
add = Lägg till...
boss.health = Boss Health
+
connectfail = [crimson]Connection error:\n\n[accent]{0}
error.unreachable = Server unreachable.\nIs the address spelled correctly?
error.invalidaddress = Ogiltig adress.
@@ -447,6 +477,7 @@ error.mapnotfound = Map file not found!
error.io = Network I/O error.
error.any = Okänt nätverksfel.
error.bloom = Failed to initialize bloom.\nYour device may not support it.
+
zone.groundZero.name = Ground Zero
zone.desertWastes.name = Desert Wastes
zone.craters.name = Kratrar
@@ -461,6 +492,7 @@ zone.saltFlats.name = Salt Flats
zone.impact0078.name = Impact 0078
zone.crags.name = Crags
zone.fungalPass.name = Fungal Pass
+
zone.groundZero.description = The optimal location to begin once more. Low enemy threat. Few resources.\nGather as much lead and copper as possible.\nMove on.
zone.frozenForest.description = Even here, closer to mountains, the spores have spread. The fridgid temperatures cannot contain them forever.\n\nBegin the venture into power. Build combustion generators. Learn to use menders.
zone.desertWastes.description = These wastes are vast, unpredictable, and criss-crossed with derelict sector structures.\nCoal is present in the region. Burn it for power, or synthesize graphite.\n\n[lightgray]This landing location cannot be guaranteed.
@@ -475,10 +507,12 @@ zone.nuclearComplex.description = A former facility for the production and proce
zone.fungalPass.description = A transition area between high mountains and lower, spore-ridden lands. A small enemy reconnaissance base is located here.\nDestroy it.\nUse Dagger and Crawler units. Take out the two cores.
zone.impact0078.description =
zone.crags.description =
+
settings.language = Språk
settings.data = Game Data
settings.reset = Återställ till Standardvärden
settings.rebind = Byt
+settings.resetKey = Reset
settings.controls = Kontroller
settings.game = Spel
settings.sound = Ljud
@@ -529,6 +563,7 @@ blocks.inaccuracy = Inaccuracy
blocks.shots = Skott
blocks.reload = Shots/Second
blocks.ammo = Ammunition
+
bar.drilltierreq = Bättre Borr Krävs
bar.drillspeed = Drill Speed: {0}/s
bar.pumpspeed = Pump Speed: {0}/s
@@ -544,6 +579,9 @@ bar.heat = Hetta
bar.power = Power
bar.progress = Build Progress
bar.spawned = Units: {0}/{1}
+bar.input = Input
+bar.output = Output
+
bullet.damage = [stat]{0}[lightgray] skada
bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles
bullet.incendiary = [stat]incendiary
@@ -555,6 +593,7 @@ bullet.freezing = [stat]freezing
bullet.tarred = [stat]tarred
bullet.multiplier = [stat]{0}[lightgray]x ammo multiplier
bullet.reload = [stat]{0}[lightgray]x fire rate
+
unit.blocks = block
unit.powersecond = power units/second
unit.liquidsecond = liquid units/second
@@ -567,6 +606,8 @@ unit.persecond = /sek
unit.timesspeed = x hastighet
unit.percent = %
unit.items = föremål
+unit.thousands = k
+unit.millions = mil
category.general = Allmänt
category.power = Energi
category.liquids = Vätskor
@@ -579,6 +620,7 @@ setting.shadows.name = Skuggor
setting.blockreplace.name = Automatic Block Suggestions
setting.linear.name = Linear Filtering
setting.hints.name = Hints
+setting.buildautopause.name = Auto-Pause Building
setting.animatedwater.name = Animerat Vatten
setting.animatedshields.name = Animerade Sköldar
setting.antialias.name = Antialias[lightgray] (requires restart)[]
@@ -601,12 +643,16 @@ setting.screenshake.name = Skärmskak
setting.effects.name = Visa Effekter
setting.destroyedblocks.name = Display Destroyed Blocks
setting.conveyorpathfinding.name = Conveyor Placement Pathfinding
+setting.coreselect.name = Allow Schematic Cores
setting.sensitivity.name = Controller Sensitivity
setting.saveinterval.name = Save Interval
setting.seconds = {0} Sekunder
+setting.blockselecttimeout.name = Block Select Timeout
+setting.milliseconds = {0} milliseconds
setting.fullscreen.name = Fullskärm
setting.borderlesswindow.name = Borderless Window[lightgray] (may require restart)
setting.fps.name = Show FPS
+setting.blockselectkeys.name = Show Block Select Keys
setting.vsync.name = VSync
setting.pixelate.name = Pixellera[lightgray] (disables animations)
setting.minimap.name = Visa Minikarta
@@ -635,16 +681,36 @@ category.multiplayer.name = Multiplayer
command.attack = Attack
command.rally = Rally
command.retreat = Retreat
+placement.blockselectkeys = \n[lightgray]Key: [{0},
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 Lasers
keybind.move_x.name = Move x
keybind.move_y.name = Move y
+keybind.mouse_move.name = Follow Mouse
+keybind.dash.name = Dash
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.category_prev.name = Previous Category
+keybind.category_next.name = Next Category
+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 = Toggle Fullscreen
keybind.select.name = Select/Shoot
keybind.diagonal_placement.name = Diagonal Placement
@@ -657,7 +723,6 @@ keybind.menu.name = Menu
keybind.pause.name = Pause
keybind.pause_building.name = Pause/Resume Building
keybind.minimap.name = Minimap
-keybind.dash.name = Dash
keybind.chat.name = Chat
keybind.player_list.name = Player list
keybind.console.name = Console
@@ -680,7 +745,9 @@ mode.pvp.description = Fight against other players locally.\n[gray]Requires at l
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.custom = Custom Rules
+
rules.infiniteresources = Infinite Resources
+rules.reactorexplosions = Reactor Explosions
rules.wavetimer = Vågtimer
rules.waves = Vågor
rules.attack = Attack Mode
@@ -688,6 +755,7 @@ rules.enemyCheat = Infinite AI (Red Team) Resources
rules.unitdrops = Unit Drops
rules.unitbuildspeedmultiplier = Unit Production Speed Multiplier
rules.unithealthmultiplier = Unit Health Multiplier
+rules.blockhealthmultiplier = Block Health Multiplier
rules.playerhealthmultiplier = Player Health Multiplier
rules.playerdamagemultiplier = Player Damage Multiplier
rules.unitdamagemultiplier = Unit Damage Multiplier
@@ -706,6 +774,10 @@ rules.title.resourcesbuilding = Resources & Building
rules.title.player = Spelare
rules.title.enemy = Fiender
rules.title.unit = Units
+rules.title.experimental = Experimental
+rules.lighting = Lighting
+rules.ambientlight = Ambient Light
+
content.item.name = Föremål
content.liquid.name = Vätskor
content.unit.name = Units
@@ -752,6 +824,7 @@ mech.trident-ship.name = Treudd
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}%
@@ -767,6 +840,7 @@ mech.buildspeed = [lightgray]Building Speed: {0}%
liquid.heatcapacity = [lightgray]Heat Capacity: {0}
liquid.viscosity = [lightgray]Viskositet: {0}
liquid.temperature = [lightgray]Temperatur: {0}
+
block.sand-boulder.name = Sandbumling
block.grass.name = Gräs
block.salt.name = Salt
@@ -865,6 +939,8 @@ block.distributor.name = Distributor
block.sorter.name = Sorterare
block.inverted-sorter.name = Inverted Sorter
block.message.name = Meddelande
+block.illuminator.name = Illuminator
+block.illuminator.description = A small, compact, configurable light source. Requires power to function.
block.overflow-gate.name = Överflödesgrind
block.silicon-smelter.name = Kiselsmältare
block.phase-weaver.name = Phase Weaver
@@ -878,6 +954,7 @@ block.coal-centrifuge.name = Kolcentrifug
block.power-node.name = Energinod
block.power-node-large.name = Stor Energinod
block.surge-tower.name = Surge Tower
+block.diode.name = Battery Diode
block.battery.name = Batteri
block.battery-large.name = Stort Batteri
block.combustion-generator.name = Combustion Generator
@@ -901,6 +978,7 @@ block.mechanical-pump.name = Mechanical Pump
block.item-source.name = Föremålskälla
block.item-void.name = Föremålsförstörare
block.liquid-source.name = Vätskekälla
+block.liquid-void.name = Liquid Void
block.power-void.name = Energiätare
block.power-source.name = Energikälla
block.unloader.name = Urladdare
@@ -930,6 +1008,7 @@ block.fortress-factory.name = Fortress Mech Factory
block.revenant-factory.name = Revenant Fighter Factory
block.repair-point.name = Repairationspunkt
block.pulse-conduit.name = Pulse Conduit
+block.plated-conduit.name = Plated Conduit
block.phase-conduit.name = Phase Conduit
block.liquid-router.name = Liquid Router
block.liquid-tank.name = Vätsketank
@@ -1001,6 +1080,7 @@ tutorial.deposit = Deposit items into blocks by dragging from your ship to the d
tutorial.waves = The[lightgray] enemy[] approaches.\n\nDefend the core for 2 waves.[accent] Click[] to shoot.\nBuild more turrets and drills. Mine more copper.
tutorial.waves.mobile = The[lightgray] enemy[] approaches.\n\nDefend the core for 2 waves. Your ship will automatically fire at enemies.\nBuild more turrets and drills. Mine more copper.
tutorial.launch = Once you reach a specific wave, you are able to[accent] launch the core[], leaving your defenses behind and[accent] obtaining all the resources in your core.[]\nThese resources can then be used to research new technology.\n\n[accent]Press the launch button.
+
item.copper.description = The most basic structural material. Used extensively in all types of blocks.
item.lead.description = A basic starter material. Used extensively in electronics and liquid transportation blocks.
item.metaglass.description = A super-tough glass compound. Extensively used for liquid distribution and storage.
@@ -1062,6 +1142,7 @@ block.power-source.description = Infinitely outputs power. Sandbox only.
block.item-source.description = Infinitely outputs items. Sandbox only.
block.item-void.description = Destroys any items. Sandbox only.
block.liquid-source.description = Infinitely outputs liquids. Sandbox only.
+block.liquid-void.description = Removes any liquids. Sandbox only.
block.copper-wall.description = A cheap defensive block.\nUseful for protecting the core and turrets in the first few waves.
block.copper-wall-large.description = A cheap defensive block.\nUseful for protecting the core and turrets in the first few waves.\nSpans multiple tiles.
block.titanium-wall.description = A moderately strong defensive block.\nProvides moderate protection from enemies.
@@ -1097,6 +1178,7 @@ block.rotary-pump.description = An advanced pump. Pumps more liquid, but require
block.thermal-pump.description = The ultimate pump.
block.conduit.description = Basic liquid transport block. Moves liquids forward. Used in conjunction with pumps and other conduits.
block.pulse-conduit.description = An advanced liquid transport block. Transports liquids faster and stores more than standard conduits.
+block.plated-conduit.description = Moves liquids at the same rate as pulse conduits, but possesses more armor. Does not accept fluids from the sides by anything other than conduits.\nLeaks less.
block.liquid-router.description = Accepts liquids from one direction and outputs them to up to 3 other directions equally. Can also store a certain amount of liquid. Useful for splitting the liquids from one source to multiple targets.
block.liquid-tank.description = Stores a large amount of liquids. Use for creating buffers in situations with non-constant demand of materials or as a safeguard for cooling vital blocks.
block.liquid-junction.description = Acts as a bridge for two crossing conduits. Useful in situations with two different conduits carrying different liquids to different locations.
@@ -1105,6 +1187,7 @@ block.phase-conduit.description = Advanced liquid transport block. Uses power to
block.power-node.description = Transmits power to connected nodes. The node will receive power from or supply power to any adjacent blocks.
block.power-node-large.description = An advanced power node with greater range and more connections.
block.surge-tower.description = An extremely long-range power node with fewer available connections.
+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 = Stores power as a buffer in times of surplus energy. Outputs power in times of deficit.
block.battery-large.description = Stores much more power than a regular battery.
block.combustion-generator.description = Generates power by burning flammable materials, such as coal.
diff --git a/core/assets/bundles/bundle_th.properties b/core/assets/bundles/bundle_th.properties
index 90b72d7312..9a8e9ac61c 100644
--- a/core/assets/bundles/bundle_th.properties
+++ b/core/assets/bundles/bundle_th.properties
@@ -10,7 +10,9 @@ link.dev-builds.description = เวอร์ชั่นระหว่าง
link.trello.description = Official Trello board for planned features
link.itch.io.description = itch.io page with PC downloads
link.google-play.description = Google Play store listing
+link.f-droid.description = F-Droid catalogue listing
link.wiki.description = Official Mindustry wiki
+link.feathub.description = Suggest new features
linkfail = ไม่สามารถเปิดลิ้งค์ได้\nคัดลอก URL ลงในคลิปบอร์ดแล้ว
screenshot = Screenshot บันทึกที่ {0}
screenshot.invalid = แมพใหญ่เกินไป, หน่วยความจำอาจจะไม่พอสำหรับ screenshot.
@@ -25,11 +27,19 @@ load.image = รูป
load.content = Content
load.system = ระบบ
load.mod = มอด
+load.scripts = Scripts
+
+be.update = A new Bleeding Edge build is available:
+be.update.confirm = Download it and restart now?
+be.updating = Updating...
+be.ignore = Ignore
+be.noupdates = No updates found.
+be.check = Check for updates
schematic = Schematic
schematic.add = กำลังบันทึก Schematic...
schematics = Schematics
-schematic.replace = มี schematic ที่ใช้ชื่อนี้แล้ว. แทนที่มัน?
+schematic.replace = มี schematic ที่ใช้ชื่อนี้แล้ว. แทนที่เลยไม?
schematic.import = นำเข้า Schematic...
schematic.exportfile = ส่งออก File
schematic.importfile = นำเข้า File
@@ -60,7 +70,7 @@ level.mode = เกมโหมด:
showagain = ไม่แสดงอีกในครั้งต่อไป
coreattack = < Core กำลังถูกโจมตี! >
nearpoint = [[ [scarlet]ออกจากดรอปพอยท์ด่วน IMMEDIATELY[] ]\nการทำลายล้างกำลังใกล้เข้ามา
-database = Core Database
+database = ฐานข้อมูหลัง
savegame = เซฟเกม
loadgame = โหลดเกม
joingame = เข้าร่วมเกม
@@ -78,6 +88,7 @@ maps.browse = ค้นหาแมพ
continue = ต่อ
maps.none = [lightgray]ไม่มีแมพ!
invalid = ไม่ถูกต้อง
+pickcolor = Pick Color
preparingconfig = กำลังเตรียม Config
preparingcontent = กำลังเตรียม Content
uploadingcontent = กำลังอัปโหลด Content
@@ -97,18 +108,24 @@ mod.enabled = [lightgray]เปิดใช้งาน
mod.disabled = [scarlet]ปิดใช้งาน
mod.disable = ปิดใช้งาน
mod.delete.error = ไม่สามารถลบมอดได้. ไฟล์อาจอยู่ในระหว่างการใช้งาน.
+mod.requiresversion = [scarlet]Requires min game version: [accent]{0}
mod.missingdependencies = [scarlet]dependencies หาย: {0}
+mod.erroredcontent = [scarlet]Content Errors
+mod.errors = Errors have occurred loading content.
+mod.noerrorplay = [scarlet]You have mods with errors.[] Either disable the affected mods or fix the errors before playing.
mod.nowdisabled = [scarlet]มอด '{0}' ไม่มี dependencies:[accent] {1}\n[lightgray]จำเป็นต้องโหลดมอดพวกนี้ก่อน\nมอดนี้จะถูกปิดใช้งานโดยอัตโนมัติ
mod.enable = เปิดใช้งาน
mod.requiresrestart = เกมจะปิดลงเพื่อใส่มอด
mod.reloadrequired = [scarlet]จำเป็นต้องรีโหลด
mod.import = นำเข้ามอด
mod.import.github = นำเข้ามอดจาก Github
+mod.item.remove = This item is part of the[accent] '{0}'[] mod. To remove it, uninstall that mod.
mod.remove.confirm = มอดนี้จะถูกลบ
mod.author = [LIGHT_GRAY]ผู้สร้าง:[] {0}
mod.missing = เซฟนี้มีมอดที่คุณอัปเดตหรือไม่ได้ติดตั้งแล้ว. อาจทำให้เซฟเสีย. คุณแน่จะหรือว่าจะโหลดเซฟนี้?\n[lightgray]Mods:\n{0}
mod.preview.missing = ก่อนที่จะนำมอดไปลงใน workshop, คุณต้องใส่รูปพรีวิวก่อน\nใส่รูปชื่อ[accent] preview.png[] ลงในโฟลเดอร์ของมอดแล้วลองอีกครั้ง
mod.folder.missing = มอดที่อยู่ในรูปแบบโฟลเดอร์เท่านั้นที่สามารถลงใน workshop ได้\nunzip ไฟล์แล้วลบไฟล์ zip เก่า แล้วรีสตาร์ทเกมหรือรีโหลดมอด
+mod.scripts.unsupported = Your device does not support mod scripts. Some mods will not function correctly.
about.button = เกี่ยวกับ
name = ชื่อ:
@@ -116,7 +133,7 @@ noname = ใส่ชื่อ[accent] ผู้เล่น[] ก่อน.
filename = ชื่อไฟล์:
unlocked = content ใหม่ปลดล็อค!
completed = [accent]สำเร็จ
-techtree = สายวิจัย
+techtree = ความคืบหน้าในการวิจัย
research.list = [lightgray]วิจัย:
research = วิจัย
researched = [lightgray]{0} วิจัยแล้ว.
@@ -126,9 +143,9 @@ server.closing = [accent]กำลังปิดเซิฟเวอร์...
server.kicked.kick = คุณถูกเตะออกจากเซิฟเวอร์!
server.kicked.whitelist = คุณไม่ได้อยู่ใน whitelisted
server.kicked.serverClose = เซิฟเวอร์ถูกปิด.
-server.kicked.vote = คุณถูกโหวตเตะออก. บายบาย.
-server.kicked.clientOutdated = client ล่าสมัย! กรุณาอัปเดตเกมของคุณ!
-server.kicked.serverOutdated = server ล่าสมัย! โปรดถามเจ้าของเซิฟเพื่ออัปเดต!
+server.kicked.vote = คุณถูกโหวตเตะออก. บัยบาย.
+server.kicked.clientOutdated = client เก่า! กรุณาอัปเดตเกมของคุณ!
+server.kicked.serverOutdated = server เก่า! โปรดถามเจ้าของเซิฟเพื่ออัปเดต!
server.kicked.banned = คุณถูกแบนในเซิฟเวอร์นี้
server.kicked.typeMismatch = เซิฟเวอร์นี้ไม่เข้ากับ build type ของคุณ.
server.kicked.playerLimit = เซิฟเวอร์เต็ม. กรุณารอให้เซิฟเวอร์ว่างก่อน.
@@ -138,6 +155,7 @@ server.kicked.nameEmpty = ชื่อของคุณไม่สามาร
server.kicked.idInUse = คุณเชื่อมต่อกับเซิฟเวอร์นี้อยู่แล้ว เราไม่อนุญาตให้เชื่อมต่อ 2 บัญชีในเซฟเวอร์เดียวกัน
server.kicked.customClient = เซิฟเวอร์นี้ไม่รองรับ builds ปรับแต่ง. กรุณาโหลดของ official.
server.kicked.gameover = Game over!
+server.kicked.serverRestarting = The server is restarting.
server.versions = เวอร์ชั่นของคุณ:[accent] {0}[]\nเวอร์ชั่นของเซิฟเวอร์:[accent] {1}[]
host.info = ปุ่ม [accent]โฮสต์[] นั้นโฮสต์เซฟเวอร์ที่พอร์ท [scarlet]6567[]. \nทุกคนที่อยู่ใน [lightgray]wifi หรือ local network[] เดียวกันจะสามารถเห็นเซิฟเวอร์ของคุณในลิสของเซิฟเวอร์ได้\n\nถ้าคุณต้องการให้ผู้เล่นอื่นๆสามารถเชื่อมต่อได้จากทุกที่โดยใช้ IP, จำเป็นจะต้องใช้การ [accent]port forwarding[] \n\n[lightgray]Note: ถ้าผู้เล่นคนใดมีปัญหาในการเชื่อมต่อ LAN ของคุณ เช็คให้แน่ใจว่าคุณได้อนุญาตให้ Mindustry เข้าถึง local network ของคุณในการตั้งค่า firewall. จำให้ว่า network สาธารณะบางครั้งไม่อนุญาตการค้นหาเซิฟเวอร์
join.info = คุณสามารถใส่ [accent]IP ของเซิฟเวอร์[] เพื่อที่จะเชื่อมต่อหรือค้นหา เซิฟเวอร์ที่ใช้[accent]local network[] จะสามารถเชื่อมโดยใช้\n LAN หรือ WAN ก็ได้\n\n[lightgray]โน้ต: เกมนี้ไม่มีระบบค้นหาเซิฟเวอร์ global ให้อัตโนมัติserver list; ถ้าคุณต้องการเชื่อมต่อกับเซิฟเวอร์โดยใช้ IP, คุณจำเป็นต้องถาม IP ผู้เล่นที่โฮสต์เซิฟเวอร์นั้นๆ.
@@ -170,7 +188,6 @@ server.outdated = [crimson]Server ล้าสมัย![]
server.outdated.client = [crimson]Client ล้าสมัย![]
server.version = [gray]เวอร์ชั่น{0} {1}
server.custombuild = [accent]Build
-ที่กำหนดเอง
confirmban = คุณแน่ใจหรือว่าจะแบนผู้เล่นนี้?
confirmkick = คุณแน่ใจหรือว่าจะเตะผู้เล่นนี้ออก?
confirmvotekick = คุณแน่ใจหรือว่าจะโหวตเตะผู้เล่นนี้ออก?
@@ -202,9 +219,7 @@ save.delete = ลบ
save.export = ส่งออกเซฟ
save.import.invalid = [accent]เซฟนี้ไม่ถูกต้อง!
save.import.fail = [crimson]ไม่สามารถนำเข้าเซฟ: [accent]{0}
-ได้
save.export.fail = [crimson]ไม่สามารถส่งออกเซฟ: [accent]{0}
-ได้
save.import = นำเข้าเซฟ
save.newslot = ชื่อเซฟ:
save.rename = เปลี่ยนชื่อ
@@ -497,6 +512,7 @@ settings.language = ภาษา
settings.data = ข้อมูลเกม
settings.reset = รีเซ็ตเป็นค่าเริ่มต้น
settings.rebind = Rebind
+settings.resetKey = Reset
settings.controls = การควบคุม
settings.game = เกม
settings.sound = เสียง
@@ -563,7 +579,6 @@ bar.heat = ความร้อน
bar.power = พลังงาน
bar.progress = ความคืบหน้าในการสร้าง
bar.spawned = จำนวนยูนิตทั้งหมด: {0}/{1}
- ยูนิต
bar.input = นำเข้า
bar.output = ส่งออก
@@ -591,6 +606,8 @@ unit.persecond = /วินาที
unit.timesspeed = เท่าเร็วขึ้น
unit.percent = %
unit.items = ไอเท็ม
+unit.thousands = k
+unit.millions = mil
category.general = ทั่วไป
category.power = พลังงาน
category.liquids = ของเหลว
@@ -598,7 +615,7 @@ category.items = ไอเท็ม
category.crafting = นำเข้า/ส่งออก
category.shooting = การยิง
category.optional = การเพิ่มประสิทธิภาพทางเลือก
-setting.landscape.name = ล็อค Landscape
+setting.landscape.name = ล็อค Landscape แนวนอน
setting.shadows.name = เงา
setting.blockreplace.name = แนะนำบล็อคโดยอัตโนมัติ
setting.linear.name = การกรองเชิงเส้น
@@ -612,7 +629,6 @@ setting.autotarget.name = เล็งเป้าอัตโนมัติ
setting.keyboard.name = การควบคุมแบบ เม้าส์+คีย์บอร์ด
setting.touchscreen.name = การควบคุมแบบหน้าจอสัมผัส
setting.fpscap.name = FPS
-สูงสุด
setting.fpscap.none = ไม่มี
setting.fpscap.text = {0} FPS
setting.uiscale.name = ขนาด UI[lightgray] (จำเป็นต้องรีสตาร์ท)[]
@@ -627,13 +643,16 @@ setting.screenshake.name = การสั่นของจอ
setting.effects.name = แสดงเอฟเฟ็ค
setting.destroyedblocks.name = แสดงบล็อคที่ถูกทำลาย
setting.conveyorpathfinding.name = Pathfinding
-ของการวางสายพาน
+setting.coreselect.name = Allow Schematic Cores
setting.sensitivity.name = ความไวของตัวควบคุม
setting.saveinterval.name = ระยะห่าวระหว่างเซฟ
setting.seconds = {0} วินาที
+setting.blockselecttimeout.name = Block Select Timeout
+setting.milliseconds = {0} milliseconds
setting.fullscreen.name = เต็มจอ
setting.borderlesswindow.name = วินโดว์แบบไร้ขอบ[lightgray] (อาจจะต้องรีตาร์ท)
setting.fps.name = แสดง FPS และ Ping
+setting.blockselectkeys.name = Show Block Select Keys
setting.vsync.name = VSync
setting.pixelate.name = Pixelate[lightgray] (ปิดใช้งานแอนิเมชั่น)
setting.minimap.name = แสดงมินิแมพ
@@ -662,17 +681,36 @@ category.multiplayer.name = ผู้เล่นหลายคน
command.attack = โจมตี
command.rally = ชุมนุม
command.retreat = ถอยกลับ
+placement.blockselectkeys = \n[lightgray]Key: [{0},
keybind.clear_building.name = เคลียร์สิ่งก็สร้าง
keybind.press = กดปุ่มใดก็ได้...
keybind.press.axis = กดแกนหรือปุ่มใดก็ได้...
keybind.screenshot.name = แมพ Screenshot
+keybind.toggle_power_lines.name = Toggle Power Lasers
keybind.move_x.name = เคลื่อนที่ในแกน x
keybind.move_y.name = เคลี่อนที่ในแกน y
keybind.mouse_move.name = ตามเม้าส์
+keybind.dash.name = พุ่ง
keybind.schematic_select.name = เลือกภูมิภาค
keybind.schematic_menu.name = เมนู Schematic
keybind.schematic_flip_x.name = กลับ Schematic ในแกน X
keybind.schematic_flip_y.name = กลับ Schematic ในแกน Y
+keybind.category_prev.name = Previous Category
+keybind.category_next.name = Next Category
+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 = เปิด/ปิด Fullscreen
keybind.select.name = เลือก/ยิง
keybind.diagonal_placement.name = วางเป็นแนวทแยง
@@ -680,13 +718,11 @@ keybind.pick.name = เลือกบล็อค
keybind.break_block.name = ทุบบล็อค
keybind.deselect.name = ยกเลิกการเบือก
keybind.shoot.name = ยิง
-keybind.zoom_hold.name = ซูม กดค้าง
keybind.zoom.name = ซูม
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 = คอนโซล์
@@ -711,6 +747,7 @@ mode.attack.description = ทำลายฐานของศัตรู ไ
mode.custom = กฎแบบกำหนดเอง
rules.infiniteresources = ทรัพยากรไม่จำกัด
+rules.reactorexplosions = Reactor Explosions
rules.wavetimer = ตัวตั้งเวลา Wave
rules.waves = Waves
rules.attack = โหมดการโจมตี
@@ -718,6 +755,7 @@ rules.enemyCheat = AI (ทีมสีแดง) มีทรัพยากร
rules.unitdrops = ยูนิตดรอป
rules.unitbuildspeedmultiplier = ตัวคูณความเร็วในการสร้างยูนิต
rules.unithealthmultiplier = ตัวคูณเลือดของยูนิต
+rules.blockhealthmultiplier = Block Health Multiplier
rules.playerhealthmultiplier = ตัวคูณเลือดผู้เล่น
rules.playerdamagemultiplier = ตัวคูณดาเมจผู้เล่น
rules.unitdamagemultiplier = ตัวคูณดาเมจยูนิต
@@ -736,6 +774,9 @@ rules.title.resourcesbuilding = ทรัพยากรและสิ่งก
rules.title.player = ผู้เล่น
rules.title.enemy = ศัตรู
rules.title.unit = ยูนิต
+rules.title.experimental = Experimental
+rules.lighting = Lighting
+rules.ambientlight = Ambient Light
content.item.name = ไอเท็ม
content.liquid.name = ของเหลว
@@ -761,28 +802,29 @@ item.scrap.name = เศษเหล็ก
liquid.water.name = น้ำ
liquid.slag.name = กากแร่
liquid.oil.name = น้ำมัน
-liquid.cryofluid.name = ไครโยฟลูอิด
+liquid.cryofluid.name = โครโรฟิวล์
mech.alpha-mech.name = อัลฟ้า
mech.alpha-mech.weapon = เฮฟวี้รีพีทเตอร์
mech.alpha-mech.ability = รีเจเนเรชั่น
mech.delta-mech.name = เดลต้า
mech.delta-mech.weapon = เครื่องกำเนิดประกายไฟฟ้า
-mech.delta-mech.ability = ปล่อย
+mech.delta-mech.ability = ปล่อยสายฟ้า
mech.tau-mech.name = เทา
mech.tau-mech.weapon = รีสตัคเลเซอร์
mech.tau-mech.ability = เบิสต์ซ่อมแซม
mech.omega-mech.name = โอเมก้า
-mech.omega-mech.weapon = ฝูงขีปนาวุธ
+mech.omega-mech.weapon = ขีปนาวุธมหาปลัย
mech.omega-mech.ability = ตัวเสริมเกราะ
mech.dart-ship.name = ลูกดอก (Dart)
mech.dart-ship.weapon = รีพีตเตอร์
-mech.javelin-ship.name = หอก (Javelin)
+mech.javelin-ship.name = จาวาลีน (Javelin)
mech.javelin-ship.weapon = ขีปนาวุธเบิสต์
mech.javelin-ship.ability = ดิสชาร์จบูสเตอร์
mech.trident-ship.name = ตรีศูล (Trident)
-mech.trident-ship.weapon = ห้องเก็บระเบิด
+mech.trident-ship.weapon = ตัวปล่อยระเบิด
mech.glaive-ship.name = เกลฟว์
mech.glaive-ship.weapon = รีพีตเตอร์ไฟ
+item.corestorable = [lightgray]Storable in Core: {0}
item.explosiveness = [lightgray]ค่าการระเบิด: {0}%
item.flammability = [lightgray]ไวไฟ: {0}%
item.radioactivity = [lightgray]ค่ากัมมันตภาพรังสี: {0}%
@@ -809,8 +851,8 @@ block.sandrocks.name = หินทราย
block.spore-pine.name = ต้นสนสปอร์
block.sporerocks.name = หินสปอร์
block.rock.name = หิน
-block.snowrock.name = หินหิมะ
-block.snow-pine.name = ต้นสนหิมะ
+block.snowrock.name = ก้อนหิมะ
+block.snow-pine.name = ต้นสนที่คลุมหิมะ
block.shale.name = หินดินดาน
block.shale-boulder.name = ก้อนหินดินดาน
block.moss.name = ตะไคร่น้ำ
@@ -897,6 +939,8 @@ block.distributor.name = เร้าเตอร์ขนาดใหญ่
block.sorter.name = เครื่องแยก
block.inverted-sorter.name = เครื่องแยกกลับด้าน
block.message.name = ตัวเก็บข้อความ
+block.illuminator.name = Illuminator
+block.illuminator.description = A small, compact, configurable light source. Requires power to function.
block.overflow-gate.name = ประตูล้น
block.silicon-smelter.name = เตาเผาซิลิก้อน
block.phase-weaver.name = เครื่องทอเฟสต์
@@ -905,9 +949,8 @@ block.cryofluidmixer.name = เครื่องผสมไครโยฟล
block.melter.name = เตาหลอม
block.incinerator.name = เตาเผาขยะ
block.spore-press.name = เครื่องอัดสปอร์
-block.separator.name =
-เครื่องแยก
-block.coal-centrifuge.name = เครื่องปั่นเหวี่งถ่านหิน
+block.separator.name = เครื่องแยก
+block.coal-centrifuge.name = เครื่องผลิตถ่านหิน
block.power-node.name = โหนดพลังงาน
block.power-node-large.name = โหนดพลังงานขนาดใหญ่
block.surge-tower.name = เสาเสิร์จ
@@ -916,7 +959,7 @@ block.battery.name = แบตเตอรี่
block.battery-large.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 = เครื่องขุดนิวมาติก
@@ -930,11 +973,12 @@ block.trident-ship-pad.name = ฐานปล่อยยานตรีศู
block.glaive-ship-pad.name = ฐานปล่อยยานเกลฟว์
block.omega-mech-pad.name = ฐานปล่อยเม็คโอเมก้า
block.tau-mech-pad.name = ฐานปล่อยเม็คเทา (Tau)
-block.conduit.name = รางน้ำ
+block.conduit.name = ท่อน้ำ
block.mechanical-pump.name = ปั๊มเชิงกล
block.item-source.name = จุดกำเนิดไอเท็ม
block.item-void.name = จุดลบไอเท็ม
block.liquid-source.name = จุดกำเนิดของเหลว
+block.liquid-void.name = Liquid Void
block.power-void.name = จุดลบพลังงาน
block.power-source.name = พลังงานไม่จำกัด
block.unloader.name = ตัวถ่ายของ
@@ -943,8 +987,8 @@ block.wave.name = เวฟ
block.swarmer.name = สวอร์มเมอร์
block.salvo.name = ซาวโว
block.ripple.name = ริปเปิ้ล
-block.phase-conveyor.name = สายพานเฟส
-block.bridge-conveyor.name = สะพานสายพาน
+block.phase-conveyor.name = สายพานความเร็วแสง
+block.bridge-conveyor.name = สะพาน
block.plastanium-compressor.name = เครื่องอัดพลาสตาเนียม
block.pyratite-mixer.name = เครื่องผสมไพราไทต์
block.blast-mixer.name = เครื่องผสมสารประกอบระเบิด
@@ -964,11 +1008,12 @@ block.fortress-factory.name = โรงงานผลิตฟอร์เท
block.revenant-factory.name = โรงงานผลิตยานไฟต์เตอร์เรเวแนนท์
block.repair-point.name = จุดซ่อมแซม
block.pulse-conduit.name = รางน้ำโพวส์
-block.phase-conduit.name = รางน้ำเฟส
+block.plated-conduit.name = Plated Conduit
+block.phase-conduit.name = ท่อน้ำความเร็วแสง
block.liquid-router.name = เร้าเตอร์ของเหลว
-block.liquid-tank.name = แทงค์เก็บของเหลว
+block.liquid-tank.name = แทงค์น้ำ
block.liquid-junction.name = ทางแยกของเหลว
-block.bridge-conduit.name = สะพานรางน้ำ
+block.bridge-conduit.name = ท่อน้ำยกระดับ
block.rotary-pump.name = ปั๊มโรตารี้
block.thorium-reactor.name = เตาปฏิกรณ์ทอเรี่ยม
block.mass-driver.name = แมสไดรฟ์เวอร์
@@ -982,8 +1027,8 @@ block.surge-wall.name = กำแพงเสิร์จ
block.surge-wall-large.name = กำแพงเสิร์จขนาดใหญ่
block.cyclone.name = ไซโคลน
block.fuse.name = ฟิวส์
-block.shock-mine.name = กับระเบิดไฟฟ้าซ็อต
-block.overdrive-projector.name = โอเวอร์ไดรฟ์โปรเจ็คเตอร์
+block.shock-mine.name = กับระเบิดไฟฟ้า
+block.overdrive-projector.name = เครื่องเร่งประสิทธิภาพ
block.force-projector.name = ฟอร์สโปรเจ็คเตอร์
block.arc.name = อาร์ค
block.rtg-generator.name = เครื่องกำเนิดไฟฟ้า อาร์ทีจี
@@ -1013,7 +1058,7 @@ unit.eruptor.name = อีรัฟเตอร์
unit.chaos-array.name = เคออสอาเรย์
unit.eradicator.name = อีเรดิเคเตอร์
unit.lich.name = ลิช
-unit.reaper.name = รีฟเฟอร์
+unit.reaper.name = รีฟเปอร์
tutorial.next = [lightgray]<กดเพื่อดำเนินการต่อ>
tutorial.intro = คุณได้เข้าสู่[scarlet] การสอนเล่นของ Mindustry.[]\nใช้ [[WASD] เพื่อเคลื่อนที่.\n[accent]กด [[Ctrl] ค้างระหว่างกลิ้งลูกกลิ้งเม้าส์[] เพื่อซูมเข้าและออก.\nเริ่มด้วยการ[accent] ขุดทองแดง[]. เคลื่อนที่ไปใกล้มัน, แล้วกดที่สายแร่ทองแดงใกล้ๆกับ core ของคุณ\n\n[accent]ทองแดง {0}/{1} ชิ้น
tutorial.intro.mobile = คุณได้เข้าสู่[scarlet] การสอนเล่นของ Mindustry.[]\nเลื่อนหน้าจอเพื่อเคลื่อนที่.\n[accent]ใส่สองนิ้ว []เพื่อซูมเข้าและออก.\nเริ่มด้วยการ[accent] ขุดทองแดง[]. เคลื่อนที่ไปใกล้มัน, แล้วกดที่สายแร่ทองแดงใกล้ๆกับ core ของคุณ\n\n[accent]ทองแดง {0}/{1} ชิ้น
@@ -1097,6 +1142,7 @@ block.power-source.description = ส่งออกพลังงานไม
block.item-source.description = ส่งออกไอเท็มไม่จำกัด. เฉพาะ Sandbox เท่านั้น.
block.item-void.description = ทำลายทุกไอเท็ม . เฉพาะ Sandbox เท่านั้น.
block.liquid-source.description = ส่งออกของเหลวไม่จำกัด. เฉพาะ Sandbox เท่านั้น.
+block.liquid-void.description = Removes any liquids. Sandbox only.
block.copper-wall.description = บล็อคป้องกันราคาถูก.\nมีประโยชน์สำหรับป้องกัน core และป้อมปืนใน wave แรกๆ.
block.copper-wall-large.description = บล็อคป้องกันราคาถูก.\nมีประโยชน์สำหรับป้องกัน core และป้อมปืนใน wave แรกๆ.\nคลอบคลุมหลายข่อง.
block.titanium-wall.description = บล็อคป้องกันแข็งแกร่งปานกลาง.\nป้องกันศัตรูได้ในระดับหนึ่ง.
@@ -1110,7 +1156,7 @@ block.phase-wall-large.description = A wall coated with special phase-based refl
block.surge-wall.description = บล็อคป้องกันที่มีทนทานสูง.\nสะสมพลังงานจากกระสุน, แล้วปล่อยออกมาแบบสุ่ม.
block.surge-wall-large.description = บล็อคป้องกันที่มีทนทานสูง.\nสะสมพลังงานจากกระสุน, แล้วปล่อยออกมาแบบสุ่ม.\nคลอบคลุมหลายช่อง.
block.door.description = ประตูขนาดเล็ก. สามารถเปิดได้โดยการกด.
-block.door-large.description = ประตูขนาดใหญ่. สามารถเปิดได้โดยการกด.\nคลอบคลุมหลายช่อง.
+block.door-large.description = ประตูขนาดใหญ่. สามารถเปิดและปิดได้โดยการกด.\nคลอบคลุมหลายช่อง.
block.mender.description = ซ่อมแซมบล็อคในวงของมันเป็นระยะๆ. ช่วยซ่อมแซมแนวป้องกันระหว่าง wave.\nสามารถใช้ซิลิก้อนเพื่อเพิ่มรัศมีและประสิทธิภาพได้
block.mend-projector.description = เมนเดอร์ที่ได้รับการอัปเกรด. ซ่อมแซมบล็อคในระยะของมัน.\nสามารถใช้ใยเฟสเพื่อเพิ่มระยะและประสิทธิภาพได้.
block.overdrive-projector.description = เพิ่มความเร็วของสิ่งก่อสร้างรอบๆ.\nสามารถใช้ใยเฟสเพื่อเพิ่มระยะและประสิทธิภาพ.
@@ -1123,7 +1169,7 @@ block.bridge-conveyor.description = บล็อคขนส่งไอเท
block.phase-conveyor.description = บล็อคขนส่งไอเท็มขั้นสูง. ใช้พลังงานเพื่อส่งไอเท็มไปยังสายพานเฟสอีกอัน ข้ามได้หลายช่อง.
block.sorter.description = แยกไอเท็ม. ถ้าไอเท็มตรงกับที่เลือกไว้, จะผ่านได้. แต่ถ้าไม่ตรง, ไอเท็มจะออกทางซ้ายหรือขวา (ใช้ทางที่ไอเท็มเข้าเป็นหลัก)
block.inverted-sorter.description = แยกไอเท็มคล้ายเครื่องแยกธรรมดา, แต่ไอเท็มที่เลือกจะออกข้างแทน.
-block.router.description = รับไอเท็มแล้วส่งออก 3 ทางเท่ากัน. มีประโยชน์สำหรับแยกไอเท็มจากแหล่งเดียวไปหลายที่.\n\n[scarlet]อย่าวางไว้ติดกับทางส่งไอเท็มเข้าเพราะของออกจะไปอุดตันได้.[]
+block.router.description = รับไอเท็มแล้วส่งออก 3 ทางเท่าๆกัน. มีประโยชน์สำหรับแยกไอเท็มจากแหล่งเดียวไปหลายที่.\n\n[scarlet]อย่าวางไว้ติดกับทางส่งไอเท็มเข้าเพราะของออกจะไปอุดตันได้.[]
block.distributor.description = เร้าเตอร์ขั้นสูง. แยกไอเท็มออก 7 ทางอย่างเท่าๆกัน.
block.overflow-gate.description = ของจะออกจากข้างๆเมื่อทางข้างหน้ถูกบล็อคเท่านั้น.
block.mass-driver.description = บล็อคขนส่งไอเท็มขั้นสุดยอด. รวบรวมไอเท็มจำนวนหนึ่งแล้วยิงไปหาแมสไดรเวอร์อีกอันที่อยู่ไกลออกไป. ต้องใช้พลังงานในการใช้งาน.
@@ -1132,6 +1178,7 @@ block.rotary-pump.description = ปั๊มขั้นสูง. ปั๊ม
block.thermal-pump.description = ปั๊มขั้นสุดยอด.
block.conduit.description = บล็อคขนส่งของเหลวพื้นฐาน. เคลื่อนของเหลวไปข้างหน้า. ใช้ร่วมกับปั๊มและรางน้ำอื่นๆ.
block.pulse-conduit.description = บล็อคขนส่งของเหลวขั้นสูง. เคลื่อนย้ายของเหลวเร็วขึ้นและเก็บเยอะกว่ารางน้ำธรรมดา.
+block.plated-conduit.description = Moves liquids at the same rate as pulse conduits, but possesses more armor. Does not accept fluids from the sides by anything other than conduits.\nLeaks less.
block.liquid-router.description = รับของเหลวจากทางเดียวแล้วส่งออก 3 ทางเท่าๆกัน. สามารถเก็บของ้หลวได้จำนวนหนึ่ง. มีประโยชน์สำหรับการแยกของเหลวจากแหล่งเดียวไปหลายที่.
block.liquid-tank.description = เก็บของเหลวจำนวนมาก. ใช่สำหรับสร้างบัฟเฟอร์ในเวลาที่ความต้องการของทรัพยากรไม่คงที่หรือเป็นตัวเซฟสำหรับบล็อคที่จำเป็นต้องใช้การหล่อเย็น.
block.liquid-junction.description = ทำหน้าที่เป็นสะพานสำหรับรางน้ำ 2 รางที่ข้ามกันที่มีของเหลว 2 ชนิด ซึ่งต้องการจะไปคนละที่.
@@ -1150,7 +1197,7 @@ block.differential-generator.description = ผลิตไฟฟ้าจำน
block.rtg-generator.description = เครื่องกำเนิดไฟฟ้าที่ใช้ง่ายและไว้ใจได้. ใช้ความร้อนจากการสลายของสารกัมมัตภาพรังสีเพื่อใช้ผลิตพลังงานอย่างช้าๆ.
block.solar-panel.description = ให้พลังงานจากแสงอาทิตย์จำนวนน้อย.
block.solar-panel-large.description = เวอร์ชั่นของแผงโซล่าเซลล์ที่มีประสิทธิภาพมากขึ้นกว่าแผงโซล่าเซลล์ธรรมดา.
-block.thorium-reactor.description = ผลิตพลังงานจำนวนมากจากทอเรี่ยม. ตำเป็นต้องใช้สารหล่อเย็นตลอดเวลา. จะระเบิดอย่างรุนแรงหากไม่ได้รับสารหล่อเย็นในจำนวนที่ต้องการ. จำนวนพลังงานที่ผลิตขึ้นอยู่กับความเต็ม และผลิตพลังงานเริ่มต้นที่ความสามารถสูงสุด.
+block.thorium-reactor.description = ผลิตพลังงานจำนวนมากจากทอเรี่ยม. จำเป็นต้องใช้สารหล่อเย็นตลอดเวลา. จะระเบิดอย่างรุนแรงหากไม่ได้รับสารหล่อเย็นในจำนวนที่ต้องการ. จำนวนพลังงานที่ผลิตขึ้นอยู่กับความเต็ม และผลิตพลังงานเริ่มต้นที่ความสามารถสูงสุด.
block.impact-reactor.description = เครื่องกำเนิดไฟฟ้าขั้นสูง, สามารถผลิตไฟฟ้าได้จำนวนมหาศาลที่ประสิทธิภาพสูงสุด. จำเป็นต้องใช้พลังงานจำนวนมากในการสตาร์ทเครื่อง.
block.mechanical-drill.description = เครื่องขุดราคาถูก. เมื่อวางบนบล็อคที่ถูกต้อง, จะส่งไอเท็มของมันออกมาเรื่อยๆแบบไม่มีที่สิ้นสุด. ขุดได้แค่ทรัพยากรพื้นฐาน.
block.pneumatic-drill.description = เครื่องขุดได้รับการปรับปรุง, สามารถขุดไทเทเนี่ยมได้. ขุดไวกว่าเครื่องขุดเชิงกล.
@@ -1186,16 +1233,16 @@ block.draug-factory.description = ผลิตโดรนขุดเจาะ
block.spirit-factory.description = ผลิตโดรนซ่อมแซมสปิริต.
block.phantom-factory.description = ผลิตโดรนก่อสร้างขั้นสูง.
block.wraith-factory.description = ผลิตยูนิตเร็ว โจมตีแบบ hit-and-run (จู่โจมแล้วหนี)
-block.ghoul-factory.description = ผลิตยานทิ้งระเบิดปูพรมหนัก (heavy carpet bomber)
+block.ghoul-factory.description = ผลิตยานทิ้งระเบิดแบบโหดๆ (heavy carpet bomber)
block.revenant-factory.description = ผลิตยูนิตที่ใช้ขีปนาวุธเป็นหลัก.
block.dagger-factory.description = ผลิตยูนิตภาคพื้นดินพื้นฐาน.
-block.crawler-factory.description = ผลิตยูนิตพลีชีพเร็ว.
+block.crawler-factory.description = ผลิตยูนิตที่ระเบิดตัวเอง.
block.titan-factory.description = ผลิตยูนิตภาคพื้นดินเสริมเกราะขั้นสูง.
-block.fortress-factory.description = ผลิตยูนิตหนักติดปืนใหญ่.
+block.fortress-factory.description = ผลิตยูนิตที่ถึกและติดปืนใหญ่.
block.repair-point.description = ซ่อมแซมยูนิตที่อยู่ในรัศมีอย่างต่อเนื่อง.
block.dart-mech-pad.description = ใช้เปลี่ยนร่างเป็นเป็นเม็คโจมตีพื้นฐาน.\nใช้โดยการกดเมื่อยืนทับมัน.
-block.delta-mech-pad.description = ใช้เปลี่ยนร่างเป็นเป็นเม็คเกราะบางโจมตีแบบ hit-and-run (จู่โจมแล้วหนี).\nใช้โดยการกดเมื่อยืนทับมัน.
-block.tau-mech-pad.description = ใช้เปลี่ยนร่างเป็นเป็นเม็คสนับสนุนขั้นสูง.\nใช้โดยการกดเมื่อยืนทับมัน.
+block.delta-mech-pad.description = ใช้เปลี่ยนร่างเป็นเป็นเม็คเกราะบางโจมตีแบบ hit-and-run (จูค).\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ใช้โดยการกดเมื่อยืนทับมัน.
diff --git a/core/assets/bundles/bundle_tk.properties b/core/assets/bundles/bundle_tk.properties
index ef01140591..0f368815c4 100644
--- a/core/assets/bundles/bundle_tk.properties
+++ b/core/assets/bundles/bundle_tk.properties
@@ -10,7 +10,9 @@ link.dev-builds.description = Bitirilmemis Yapim Surumu
link.trello.description = Planlanmis Hersey icin Tablo
link.itch.io.description = Bilgisayar ve Site versiyonunun bulundugu Site
link.google-play.description = Google Play magaza sayfasi
+link.f-droid.description = F-Droid catalogue listing
link.wiki.description = Orjinal Mindustry Bilgilendirme Sayfasi
+link.feathub.description = Suggest new features
linkfail = Link Acilamadi!\nLink sizin icin kopyalandi.
screenshot = Screenshot saved to {0}
screenshot.invalid = Map too large, potentially not enough memory for screenshot.
@@ -18,12 +20,22 @@ gameover = Cekirdegin yok edildi.
gameover.pvp = The[accent] {0}[] team is victorious!
highscore = [accent]Yeni Yuksek skor!
copied = Copied.
+
load.sound = Sounds
load.map = Maps
load.image = Images
load.content = Content
load.system = System
load.mod = Mods
+load.scripts = Scripts
+
+be.update = A new Bleeding Edge build is available:
+be.update.confirm = Download it and restart now?
+be.updating = Updating...
+be.ignore = Ignore
+be.noupdates = No updates found.
+be.check = Check for updates
+
schematic = Schematic
schematic.add = Save Schematic...
schematics = Schematics
@@ -40,6 +52,7 @@ schematic.saved = Schematic saved.
schematic.delete.confirm = This schematic will be utterly eradicated.
schematic.rename = Rename Schematic
schematic.info = {0}x{1}, {2} blocks
+
stat.wave = Waves Defeated:[accent] {0}
stat.enemiesDestroyed = Enemies Destroyed:[accent] {0}
stat.built = Buildings Built:[accent] {0}
@@ -47,6 +60,7 @@ stat.destroyed = Buildings Destroyed:[accent] {0}
stat.deconstructed = Buildings Deconstructed:[accent] {0}
stat.delivered = Resources Launched:
stat.rank = Final Rank: [accent]{0}
+
launcheditems = [accent]Launched Items
launchinfo = [unlaunched][[LAUNCH] your core to obtain the items indicated in blue.
map.delete = Su haritayi silmek istediginden emin misin? "[accent]{0}[]"?
@@ -74,6 +88,7 @@ maps.browse = Browse Maps
continue = Devam et
maps.none = [LIGHT_GRAY]Harita bulunamadi!
invalid = Invalid
+pickcolor = Pick Color
preparingconfig = Preparing Config
preparingcontent = Preparing Content
uploadingcontent = Uploading Content
@@ -81,6 +96,7 @@ uploadingpreviewfile = Uploading Preview File
committingchanges = Comitting Changes
done = Done
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
@@ -92,18 +108,25 @@ 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 min game version: [accent]{0}
mod.missingdependencies = [scarlet]Missing dependencies: {0}
+mod.erroredcontent = [scarlet]Content Errors
+mod.errors = Errors have occurred loading content.
+mod.noerrorplay = [scarlet]You have mods with errors.[] Either disable the affected mods or fix the errors before playing.
mod.nowdisabled = [scarlet]Mod '{0}' is missing dependencies:[accent] {1}\n[lightgray]These mods need to be downloaded first.\nThis mod will be automatically disabled.
mod.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.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}
mod.preview.missing = Before publishing this mod in the workshop, you must add an image preview.\nPlace an image named[accent] preview.png[] into the mod's folder and try again.
mod.folder.missing = Only mods in folder form can be published on the workshop.\nTo convert any mod into a folder, simply unzip its file into a folder and delete the old zip, then restart your game or reload your mods.
+mod.scripts.unsupported = Your device does not support mod scripts. Some mods will not function correctly.
+
about.button = Hakkinda
name = isim:
noname = Pick a[accent] player name[] first.
@@ -132,6 +155,7 @@ server.kicked.nameEmpty = ismin gecerli degil.
server.kicked.idInUse = Zaten oyundasin! iki ayri hesapla oyuna katilamazsin!
server.kicked.customClient = Bu oyun ayarlanmis vesiyonlara izin vermiyor. Orijinal bir versiyon dene!
server.kicked.gameover = Game over!
+server.kicked.serverRestarting = The server is restarting.
server.versions = Your version:[accent] {0}[]\nServer version:[accent] {1}[]
host.info = [accent]host[] su linkte bir oyun acti! [scarlet]6567[]. \nSeninle [LIGHT_GRAY]ayni internete[] sahip olan kisiler oyunu gorebilir.\n\neger baska yerlerden kisilerind de gelmesini istiyorsan, [accent]oyun acmak[]zorunludur.\n\n[LIGHT_GRAY]Not: eger baglanmakta gucluk cekiliyorsa, antivirusunun internetine baglanmasini izin vermesini sagla.
join.info = Buradan,[accent]Oyunun linkini[] kullanarak katilabilir, yada, [accent]internetinle[] baglanacak oyun bulabilirsin\ninternetli ve Linkli oyunlar desteklenir.\n\n[LIGHT_GRAY]Not: Otomatik bir oyun listesi goruntulenemez. Yapimcidan linkini iste.
@@ -271,6 +295,7 @@ 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}
+
editor.brush = Firca
editor.openin = Editorde ac
editor.oregen = Maden Yaratilma hizi
@@ -347,6 +372,7 @@ editor.overwrite = [accent]Dikkat et!\nBu bir haritanin uzerinden cececek.
editor.overwrite.confirm = [scarlet]uyari![] bu isimde bir harita zaten var. Uzerinden gececek misin?
editor.exists = A map with this name already exists.
editor.selectmap = Yukleyecek bir harita sec:
+
toolmode.replace = Replace
toolmode.replace.description = Draws only on solid blocks.
toolmode.replaceall = Replace All
@@ -361,6 +387,7 @@ toolmode.fillteams = Fill Teams
toolmode.fillteams.description = Fill teams instead of blocks.
toolmode.drawteams = Draw Teams
toolmode.drawteams.description = Draw teams instead of blocks.
+
filters.empty = [LIGHT_GRAY]No filters! Add one with the button below.
filter.distort = Distort
filter.noise = Noise
@@ -392,6 +419,7 @@ filter.option.floor2 = Secondary Floor
filter.option.threshold2 = Secondary Threshold
filter.option.radius = Radius
filter.option.percentile = Percentile
+
width = Genislik:
height = Yukseklik:
menu = Menu
@@ -407,6 +435,7 @@ tutorial = Tutorial
tutorial.retake = Re-Take Tutorial
editor = Editor
mapeditor = Harita yaraticisi
+
abandon = Abandon
abandon.text = This zone and all its resources will be lost to the enemy.
locked = Locked
@@ -437,6 +466,7 @@ zone.objective.survival = Survive
zone.objective.attack = Destroy Enemy Core
add = Add...
boss.health = Boss Health
+
connectfail = [crimson]Su Oyuna baglanilamadi: [accent]{0}
error.unreachable = Server unreachable.
error.invalidaddress = Invalid address.
@@ -447,6 +477,7 @@ error.mapnotfound = Map file not found!
error.io = Network I/O error.
error.any = Unkown network error.
error.bloom = Failed to initialize bloom.\nYour device may not support it.
+
zone.groundZero.name = Ground Zero
zone.desertWastes.name = Desert Wastes
zone.craters.name = The Craters
@@ -461,6 +492,7 @@ zone.saltFlats.name = Salt Flats
zone.impact0078.name = Impact 0078
zone.crags.name = Crags
zone.fungalPass.name = Fungal Pass
+
zone.groundZero.description = The optimal location to begin once more. Low enemy threat. Few resources.\nGather as much lead and copper as possible.\nMove on.
zone.frozenForest.description = Even here, closer to mountains, the spores have spread. The fridgid temperatures cannot contain them forever.\n\nBegin the venture into power. Build combustion generators. Learn to use menders.
zone.desertWastes.description = These wastes are vast, unpredictable, and criss-crossed with derelict sector structures.\nCoal is present in the region. Burn it for power, or synthesize graphite.\n\n[lightgray]This landing location cannot be guaranteed.
@@ -475,10 +507,12 @@ zone.nuclearComplex.description = A former facility for the production and proce
zone.fungalPass.description = A transition area between high mountains and lower, spore-ridden lands. A small enemy reconnaissance base is located here.\nDestroy it.\nUse Dagger and Crawler units. Take out the two cores.
zone.impact0078.description =
zone.crags.description =
+
settings.language = Dil
settings.data = Game Data
settings.reset = ilk ayarlara geri al
settings.rebind = Geri al
+settings.resetKey = Reset
settings.controls = Kontroller
settings.game = Oyun
settings.sound = Ses
@@ -529,6 +563,7 @@ blocks.inaccuracy = sekme
blocks.shots = vuruslar
blocks.reload = Yeniden doldurma
blocks.ammo = Ammo
+
bar.drilltierreq = Better Drill Required
bar.drillspeed = Drill Speed: {0}/s
bar.pumpspeed = Pump Speed: {0}/s
@@ -544,6 +579,9 @@ bar.heat = Heat
bar.power = Power
bar.progress = Build Progress
bar.spawned = Units: {0}/{1}
+bar.input = Input
+bar.output = Output
+
bullet.damage = [stat]{0}[lightgray] dmg
bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles
bullet.incendiary = [stat]incendiary
@@ -555,6 +593,7 @@ bullet.freezing = [stat]freezing
bullet.tarred = [stat]tarred
bullet.multiplier = [stat]{0}[lightgray]x ammo multiplier
bullet.reload = [stat]{0}[lightgray]x reload
+
unit.blocks = Yapilar
unit.powersecond = saniyede bir
unit.liquidsecond = Saniyede bir
@@ -567,6 +606,8 @@ unit.persecond = /sec
unit.timesspeed = x speed
unit.percent = %
unit.items = esya
+unit.thousands = k
+unit.millions = mil
category.general = General
category.power = Guc
category.liquids = sivilar
@@ -579,6 +620,7 @@ setting.shadows.name = Shadows
setting.blockreplace.name = Automatic Block Suggestions
setting.linear.name = Linear Filtering
setting.hints.name = Hints
+setting.buildautopause.name = Auto-Pause Building
setting.animatedwater.name = Animated Water
setting.animatedshields.name = Animated Shields
setting.antialias.name = Antialias[LIGHT_GRAY] (requires restart)[]
@@ -601,12 +643,16 @@ setting.screenshake.name = Ekran sallanmasi
setting.effects.name = Efekleri goster
setting.destroyedblocks.name = Display Destroyed Blocks
setting.conveyorpathfinding.name = Conveyor Placement Pathfinding
+setting.coreselect.name = Allow Schematic Cores
setting.sensitivity.name = Kumanda hassasligi
setting.saveinterval.name = Otomatik kaydetme suresi
setting.seconds = {0} Saniye
+setting.blockselecttimeout.name = Block Select Timeout
+setting.milliseconds = {0} milliseconds
setting.fullscreen.name = Tam ekran
setting.borderlesswindow.name = Borderless Window[LIGHT_GRAY] (may require restart)
setting.fps.name = FPS'i goster
+setting.blockselectkeys.name = Show Block Select Keys
setting.vsync.name = VSync
setting.pixelate.name = Pixelate [LIGHT_GRAY](may decrease performance)
setting.minimap.name = Haritayi goster
@@ -635,16 +681,36 @@ category.multiplayer.name = Cok oyunculu
command.attack = Attack
command.rally = Rally
command.retreat = Retreat
+placement.blockselectkeys = \n[lightgray]Key: [{0},
keybind.clear_building.name = Clear Building
keybind.press = Bir tusa bas...
keybind.press.axis = Bir yone cevir yada tusa bas...
keybind.screenshot.name = Map Screenshot
+keybind.toggle_power_lines.name = Toggle Power Lasers
keybind.move_x.name = Sol/Sag hareket
keybind.move_y.name = Yukari/asagi hareket
+keybind.mouse_move.name = Follow Mouse
+keybind.dash.name = Kos
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.category_prev.name = Previous Category
+keybind.category_next.name = Next Category
+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 = Toggle Fullscreen
keybind.select.name = Sec/silahi sik
keybind.diagonal_placement.name = Diagonal Placement
@@ -657,7 +723,6 @@ keybind.menu.name = Menu
keybind.pause.name = Durdur
keybind.pause_building.name = Pause/Resume Building
keybind.minimap.name = Minimap
-keybind.dash.name = Kos
keybind.chat.name = konus
keybind.player_list.name = Oyuncu listesi
keybind.console.name = Konsol
@@ -680,7 +745,9 @@ mode.pvp.description = fight against other players locally.
mode.attack.name = Attack
mode.attack.description = No waves, with the goal to destroy the enemy base.
mode.custom = Custom Rules
+
rules.infiniteresources = Infinite Resources
+rules.reactorexplosions = Reactor Explosions
rules.wavetimer = Wave Timer
rules.waves = Waves
rules.attack = Attack Mode
@@ -688,6 +755,7 @@ rules.enemyCheat = Infinite AI Resources
rules.unitdrops = Unit Drops
rules.unitbuildspeedmultiplier = Unit Creation Speed Multiplier
rules.unithealthmultiplier = Unit Health Multiplier
+rules.blockhealthmultiplier = Block Health Multiplier
rules.playerhealthmultiplier = Player Health Multiplier
rules.playerdamagemultiplier = Player Damage Multiplier
rules.unitdamagemultiplier = Unit Damage Multiplier
@@ -706,6 +774,10 @@ rules.title.resourcesbuilding = Resources & Building
rules.title.player = Players
rules.title.enemy = Enemies
rules.title.unit = Units
+rules.title.experimental = Experimental
+rules.lighting = Lighting
+rules.ambientlight = Ambient Light
+
content.item.name = Esyalar
content.liquid.name = Sivilar
content.unit.name = Units
@@ -752,6 +824,7 @@ mech.trident-ship.name = Trident
mech.trident-ship.weapon = mini atomlar
mech.glaive-ship.name = Glaive
mech.glaive-ship.weapon = Orman yakici
+item.corestorable = [lightgray]Storable in Core: {0}
item.explosiveness = [LIGHT_GRAY]Patlayicilik: {0}
item.flammability = [LIGHT_GRAY]Yanbilirlik: {0}
item.radioactivity = [LIGHT_GRAY]Radyoaktivite: {0}
@@ -767,6 +840,7 @@ mech.buildspeed = [LIGHT_GRAY]Building Speed: {0}%
liquid.heatcapacity = [LIGHT_GRAY]isinma kapasitesi: {0}
liquid.viscosity = [LIGHT_GRAY]Yari sivilik: {0}
liquid.temperature = [LIGHT_GRAY]isi: {0}
+
block.sand-boulder.name = Sand Boulder
block.grass.name = Grass
block.salt.name = Salt
@@ -865,6 +939,8 @@ block.distributor.name = yayici
block.sorter.name = secici
block.inverted-sorter.name = Inverted Sorter
block.message.name = Message
+block.illuminator.name = Illuminator
+block.illuminator.description = A small, compact, configurable light source. Requires power to function.
block.overflow-gate.name = Kapali dagatici
block.silicon-smelter.name = Silikon eritici
block.phase-weaver.name = Dokumaci
@@ -878,6 +954,7 @@ block.coal-centrifuge.name = Coal Centrifuge
block.power-node.name = Guc Dugumu
block.power-node-large.name = buyuk Guc Dugumu
block.surge-tower.name = Surge Tower
+block.diode.name = Battery Diode
block.battery.name = batarya
block.battery-large.name = buyuk batarya
block.combustion-generator.name = sicaklik jenaratoru
@@ -901,6 +978,7 @@ block.mechanical-pump.name = Mekanikal pompa
block.item-source.name = esya kaynagi
block.item-void.name = esya deligi
block.liquid-source.name = sivi kaynagi
+block.liquid-void.name = Liquid Void
block.power-void.name = guc deligi
block.power-source.name = sonsuz guc
block.unloader.name = bekletici
@@ -930,6 +1008,7 @@ block.fortress-factory.name = Fortress Mech Factory
block.revenant-factory.name = Revenant Fighter Factory
block.repair-point.name = tamirci
block.pulse-conduit.name = Pulse borusu
+block.plated-conduit.name = Plated Conduit
block.phase-conduit.name = Phase borusu
block.liquid-router.name = sivi ayirici
block.liquid-tank.name = sivi tanki
@@ -1001,6 +1080,7 @@ tutorial.deposit = Deposit items into blocks by dragging from your ship to the d
tutorial.waves = The[LIGHT_GRAY] enemy[] approaches.\n\nDefend your core for 2 waves. Build more turrets.
tutorial.waves.mobile = The[lightgray] enemy[] approaches.\n\nDefend the core for 2 waves. Your ship will automatically fire at enemies.\nBuild more turrets and drills. Mine more copper.
tutorial.launch = Once you reach a specific wave, you are able to[accent] launch the core[], leaving your defenses behind and[accent] obtaining all the resources in your core.[]\nThese resources can then be used to research new technology.\n\n[accent]Press the launch button.
+
item.copper.description = ise yayar bir materyal. Kazma makineleriyle yada tasimayla alinabilir.
item.lead.description = Basit bir baslangic materyali. sivi tasimada kullanilabilir.
item.metaglass.description = A super-tough glass compound. Extensively used for liquid distribution and storage.
@@ -1062,6 +1142,7 @@ block.power-source.description = Infinitely outputs power. Sandbox only.
block.item-source.description = Infinitely outputs items. Sandbox only.
block.item-void.description = Destroys any items which go into it without using power. Sandbox only.
block.liquid-source.description = Infinitely outputs liquids. Sandbox only.
+block.liquid-void.description = Removes any liquids. Sandbox only.
block.copper-wall.description = A cheap defensive block.\nUseful for protecting the core and turrets in the first few waves.
block.copper-wall-large.description = A cheap defensive block.\nUseful for protecting the core and turrets in the first few waves.\nSpans multiple tiles.
block.titanium-wall.description = A moderately strong defensive block.\nProvides moderate protection from enemies.
@@ -1097,6 +1178,7 @@ block.rotary-pump.description = An advanced pump which doubles up speed by using
block.thermal-pump.description = The ultimate pump. Three times as fast as a mechanical pump and the only pump which is able to retrieve lava.
block.conduit.description = Basic liquid transport block. Works like a conveyor, but with liquids. Best used with extractors, pumps or other conduits.
block.pulse-conduit.description = Advanced liquid transport block. Transports liquids faster and stores more than standard conduits.
+block.plated-conduit.description = Moves liquids at the same rate as pulse conduits, but possesses more armor. Does not accept fluids from the sides by anything other than conduits.\nLeaks less.
block.liquid-router.description = Accepts liquids from one direction and outputs them to up to 3 other directions equally. Can also store a certain amount of liquid. Useful for splitting the liquids from one source to multiple targets.
block.liquid-tank.description = Stores a large amount of liquids. Use it for creating buffers when there is a non-constant demand of materials or as a safeguard for cooling vital blocks.
block.liquid-junction.description = Acts as a bridge for two crossing conduits. Useful in situations with two different conduits carrying different liquids to different locations.
@@ -1105,6 +1187,7 @@ block.phase-conduit.description = Advanced liquid transport block. Uses power to
block.power-node.description = Transmits power to connected nodes. Up to four power sources, sinks or nodes can be connected. The node will receive power from or supply power to any adjacent blocks.
block.power-node-large.description = Has a larger radius than the power node and connects to up to six power sources, sinks or nodes.
block.surge-tower.description = An extremely long-range power node with fewer available connections.
+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 = Stores power whenever there is an abundance and provides power whenever there is a shortage, as long as there is capacity left.
block.battery-large.description = Stores much more power than a regular battery.
block.combustion-generator.description = Generates power by burning oil or flammable materials.
diff --git a/core/assets/bundles/bundle_tr.properties b/core/assets/bundles/bundle_tr.properties
index 13550abe69..f388a78ece 100644
--- a/core/assets/bundles/bundle_tr.properties
+++ b/core/assets/bundles/bundle_tr.properties
@@ -10,7 +10,9 @@ link.dev-builds.description = Dengesiz oyun sürümleri
link.trello.description = Planlanan özellikler için resmi Trello Sayfası
link.itch.io.description = Bilgisayar sürümleri için itch.io sayfası
link.google-play.description = Google Play mağaza sayfası
+link.f-droid.description = F-Droid catalogue listing
link.wiki.description = Resmi Mindustry wikisi
+link.feathub.description = Suggest new features
linkfail = Link açılamadı!\nURL kopyalandı.
screenshot = Ekran görüntüsü {0} 'na kaydedildi
screenshot.invalid = Harita çok büyük, muhtemelen ekran görüntüsü için yeterli bellek yok.
@@ -18,12 +20,22 @@ gameover = Kaybettin
gameover.pvp = [accent] {0}[] Takımı kazandı!
highscore = [accent]Yeni rekor!
copied = Panoya Kopyalandı.
+
load.sound = Sesler
load.map = Haritalar
load.image = Resimler
load.content = İçerik
load.system = Sistem
load.mod = Modlar
+load.scripts = Scripts
+
+be.update = A new Bleeding Edge build is available:
+be.update.confirm = Download it and restart now?
+be.updating = Updating...
+be.ignore = Ignore
+be.noupdates = No updates found.
+be.check = Check for updates
+
schematic = Şema
schematic.add = Şemayı Kaydet...
schematics = Şemalar
@@ -40,6 +52,7 @@ schematic.saved = Şema Kaydedildi.
schematic.delete.confirm = Bu şema tamamen yokedilecek.
schematic.rename = Şemayı yeniden Adlandır
schematic.info = {0}x{1}, {2} blok
+
stat.wave = Yenilen Dalgalar:[accent] {0}
stat.enemiesDestroyed = Yok Edilen Düşmanlar:[accent] {0}
stat.built = İnşa Edilen Yapılar:[accent] {0}
@@ -47,6 +60,7 @@ stat.destroyed = Yok Edilen Yapılar:[accent] {0}
stat.deconstructed = Yıkılan Yapılar:[accent] {0}
stat.delivered = Gönderilen Kaynaklar:
stat.rank = Rütbe: [accent]{0}
+
launcheditems = [accent]Gönderilen Kaynaklar
launchinfo = Mavi ile belirtilen materyallerden edinmek için [unlaunched][[KALKIŞ] yapın.
map.delete = "[accent]{0}[]" haritasını silmek istediğine emin misin?
@@ -74,6 +88,7 @@ maps.browse = Haritaları gör
continue = Devam et
maps.none = [lightgray]Harita Bulunamadı!
invalid = Geçersiz
+pickcolor = Pick Color
preparingconfig = Yapılandırma Hazırlanıyor
preparingcontent = İçerik Hazırlanıyor
uploadingcontent = İçerik Yükleniyor
@@ -81,6 +96,7 @@ uploadingpreviewfile = Önizleme Dosyası Yükleniyor
committingchanges = Değişiklikler Uygulanıyor
done = Bitti
feature.unsupported = Your device does not support this feature.
+
mods.alphainfo = Modların alfa aşamasında olduğunu ve [scarlet]oldukça hatalı olabileceklerini[] unutmayın.\nBulduğunuz sorunları Mindustry GitHub'ı veya Discord'una bildirin.
mods.alpha = [accent](Alpha)
mods = Modlar
@@ -92,18 +108,25 @@ mod.enabled = [lightgray]Etkin
mod.disabled = [scarlet]Devre Dışı
mod.disable = Devre Dışı Bırak
mod.delete.error = Unable to delete mod. File may be in use.
+mod.requiresversion = [scarlet]Requires min game version: [accent]{0}
mod.missingdependencies = [scarlet]Missing dependencies: {0}
+mod.erroredcontent = [scarlet]Content Errors
+mod.errors = Errors have occurred loading content.
+mod.noerrorplay = [scarlet]You have mods with errors.[] Either disable the affected mods or fix the errors before playing.
mod.nowdisabled = [scarlet]Mod '{0}' is missing dependencies:[accent] {1}\n[lightgray]These mods need to be downloaded first.\nThis mod will be automatically disabled.
mod.enable = Etkinleştir
mod.requiresrestart = Oyun mod değişikliklerini uygulamak için kapatılacak.
mod.reloadrequired = [scarlet]Yeniden Yükleme Gerekli
mod.import = Mod İçeri Aktar
mod.import.github = GitHub Modu İçeri Aktar
+mod.item.remove = This item is part of the[accent] '{0}'[] mod. To remove it, uninstall that mod.
mod.remove.confirm = Bu mod silinecek.
mod.author = [LIGHT_GRAY]Yayıncı:[] {0}
mod.missing = Bu kayıt yakın zamanda güncellediğiniz ya da artık yüklü olmayan modlar içermekte. Kayıt bozulmaları yaşanabilir. Kaydı yüklemek istediğinizden emin misiniz?\n[lightgray]Modlar:\n{0}
mod.preview.missing = Bu modu atölyede yayınlamadan önce bir resim önizlemesi eklemelisiniz.\nMod dosyasına [accent]preview.png[] adlı bir resim yerleştirin ve tekrar deneyin.
mod.folder.missing = Atölyede sadece klasör halindeki modlar yayınlanabilir.Bir modu klasöre çevirmek için, sadece mod dosyalarını bir klasöre çıkarın ve eski sıkıştırılmış dosyayı silin, sonra da oyunu tekrar başlatın ya da modlarınızı tekrar yükleyin.
+mod.scripts.unsupported = Your device does not support mod scripts. Some mods will not function correctly.
+
about.button = Hakkında
name = İsim:
noname = Bir[accent] kullanıcı adı[] seçmelisin.
@@ -132,6 +155,7 @@ server.kicked.nameEmpty = Seçtiğin isim geçersiz.
server.kicked.idInUse = Zaten bu sunucudasın! İki hesapla bir sunucuya bağlanamazsın.
server.kicked.customClient = Bu sunucu özel sürümleri kabul etmiyor. Resmi bir sürüm indir.
server.kicked.gameover = Oyun bitti!
+server.kicked.serverRestarting = The server is restarting.
server.versions = Kullandığın surum:[accent] {0}[]\nSunucunun sürümü:[accent] {1}[]
host.info = [accent]host[], [scarlet]6567[] portunda bir sunucuya ev sahipliği yapıyor. \nAynı [lightgray]wifi veya yerel ağdaki[] herkes sunucu listelerinde senin sunucunu görebiliyor olmalı.\n\nEğer diğerlerinin herhangi bir yerden IP ile bağlanabilmesini istiyorsan [accent]port yönlendirmesi[] gerekli.\n\n[lightgray]Not: Eğer birisi senin yerel ağ oyununa katılmakta sorun yaşıyorsa güvenlik duvarı ayarlarında Mindustry'ye yerel ağ bağlantısı izni verdiğinden emin olun. Halka açık ağların zaman zaman sunucu aramaya engel olduğunu unutmayın.
join.info = Burada, bağlanmak istediğin sunucunun [accent]IP[] adresini girebilir veya [accent]yerel ağ[] sunucularını görebilirsin..\nHem yerel ağ hem de geniş alan ağı çoklu oyuncu için destekleniyor.\n\n[lightgray]Not: Otomatik bir global sunucu listesi yok; eğer birisine IP adresi kullanarak bağlanmak istiyorsan IP adresini istemelisin.
@@ -271,6 +295,7 @@ publishing = [accent]Yayınlanıyor...
publish.confirm = Bunu yayınlamak istediğinize emin misiniz?\n[lightgray]önce Atölye EULA'sına uyduğunuza emin olun, yoksa yapıtlarınız gözükmeyecektir!
publish.error = Nesneyi yayınlarken hata oluştu: {0}
steam.error = Failed to initialize Steam services.\nError: {0}
+
editor.brush = Fırça
editor.openin = Düzenleyici'de Aç
editor.oregen = Maden Oluşumu
@@ -347,6 +372,7 @@ editor.overwrite = [accent]Uyarı!\nBu işlem var olan bir haritanın üstüne y
editor.overwrite.confirm = [scarlet]Uyarı![] Bu ada sahip bir harita zaten var. Onun üstüne yazmak ister misiniz?
editor.exists = Bu ada sahip bir harita zaten var.
editor.selectmap = Yüklemek için bir harita seçin:
+
toolmode.replace = Değiştir
toolmode.replace.description = Sadece katı blokların üzerinde çizer.
toolmode.replaceall = Hepsini Değiştir
@@ -361,6 +387,7 @@ toolmode.fillteams = Takımları Doldur
toolmode.fillteams.description = Bloklar yerine takımları doldurur.
toolmode.drawteams = Takım Çiz
toolmode.drawteams.description = Bloklar yerine takımşarı çizer..
+
filters.empty = [lightgray]Hiç filtre yok! Aşağıdaki butonla bir adet ekleyin.
filter.distort = Çarpıt
filter.noise = Gürültü
@@ -392,6 +419,7 @@ filter.option.floor2 = İkincil Duvar
filter.option.threshold2 = İkincil Eşik
filter.option.radius = Yarıçap
filter.option.percentile = Yüzdelik
+
width = Eni:
height = Boyu:
menu = Menü
@@ -407,6 +435,7 @@ tutorial = Öğretici
tutorial.retake = Öğreticiyi Yeniden Al
editor = Düzenleyici
mapeditor = Harita Düzenleyicisi
+
abandon = Terk Et
abandon.text = Burası ve bütün kaynaklar düşmana kaybedilecek.
locked = Kilitli
@@ -415,7 +444,7 @@ requirement.wave = Bölge {1}'de Dalga {0}
requirement.core = {0}`da Düşman Çekirdeği Yok Et
requirement.unlock = {0}'I Aç
resume = Bölgeye Devam Et:\n[lightgray]{0}
-bestwave = [lightgrayEn İyi Dalga: {0}
+bestwave = [lightgray]En İyi Dalga: {0}
launch = < KALKIŞ >
launch.title = Kalkış Başarılı
launch.next = [lightgray]Bir sonraki imkan {0}. dalgada olacak.
@@ -437,6 +466,7 @@ zone.objective.survival = Hayatta Kal
zone.objective.attack = Düşman Merkezini Yok Et
add = Ekle...
boss.health = Boss Canı
+
connectfail = [crimson]Bağlantı hatası:\n\n[accent]{0}
error.unreachable = Sunucuya ulaşılamıyor.\nAdrwsin doğru yazıldığına emin misiniz?
error.invalidaddress = Geçersiz adres.
@@ -447,6 +477,7 @@ error.mapnotfound = Harita dosyası bulunamadı!
error.io = Ağ I/O hatası.
error.any = Bilinöeyen ağ hatası.
error.bloom = Kamaşma başlatılamadı.\nCihazınız bu özelliği desteklemiyor olabilir.
+
zone.groundZero.name = Sıfır Noktası
zone.desertWastes.name = Çöl Harabeleri
zone.craters.name = Kraterler
@@ -461,6 +492,7 @@ zone.saltFlats.name = Tuz Düzlükleri
zone.impact0078.name = Çarpışma 0078
zone.crags.name = Kayalıklar
zone.fungalPass.name = Mantar Geçidi
+
zone.groundZero.description = Yeniden başlamak için ideal bölge. Düşük düşman tehlikesi ve az miktarda kaynak mevcut.\nMümkün oldukça çok bakır ve kurşun topla.\nİlerle.
zone.frozenForest.description = Burada, dağlara yakın bölgelerde bile, sporlar etrafa yayıldı. Dondurucu soğuk onları sonsuza dek durduramaz.\n\nEnerji kullanmaya başla. Termik jeneratörler inşa et. Tamircileri kullanmayı öğren.
zone.desertWastes.description = Bu harabeler gemiş, öngörülemez, ve sektör yapılarının kalıntılarıyla kesişmekte.\nBölgede kömür mevcut, onu enerji için yak veya ondan grafit üret.\n\n[lightgray]Burada iniş bölgesi garanti edilemez.
@@ -475,10 +507,12 @@ zone.nuclearComplex.description = Önceleri toryum üretme ve işleme ile görev
zone.fungalPass.description = Dağlar ve sporlarla dolu aşağı bölgeler arasında bir geçiş bölgesi. Burada küçük düşman keşif üssü bulundu.\nBu üssü yok et.\nDagger ve Crawler birimleei kullan ve bölgedeki iki çekirdeği yık.
zone.impact0078.description =
zone.crags.description =
+
settings.language = Dil
settings.data = Oyun Verisi
settings.reset = Varsayılana Sıfırla
settings.rebind = Tuşları Yeniden Ata
+settings.resetKey = Reset
settings.controls = Kontroller
settings.game = Oyun
settings.sound = Ses
@@ -529,6 +563,7 @@ blocks.inaccuracy = İskalama Oranı
blocks.shots = Atışlar
blocks.reload = Atışlar/Sn
blocks.ammo = Mermi
+
bar.drilltierreq = Daha İyi Matkap Gerekli
bar.drillspeed = Matkap Hızı: {0}/s
bar.pumpspeed = Pump Speed: {0}/s
@@ -544,6 +579,9 @@ bar.heat = Isı
bar.power = Enerji
bar.progress = Build Progress
bar.spawned = Birimler: {0}/{1}
+bar.input = Input
+bar.output = Output
+
bullet.damage = [stat]{0}[lightgray] hasar
bullet.splashdamage = [stat]{0}[lightgray] alan hasarı ~[stat] {1}[lightgray] kare
bullet.incendiary = [stat]yakıcı
@@ -555,6 +593,7 @@ bullet.freezing = [stat]dondurucu
bullet.tarred = [stat]katranlı
bullet.multiplier = [stat]{0}[lightgray]x mermi çarpanı
bullet.reload = [stat]{0}[lightgray]x atış hızı
+
unit.blocks = bloklar
unit.powersecond = enerji birimi/saniye
unit.liquidsecond = sıvı birimi/saniye
@@ -567,6 +606,8 @@ unit.persecond = /sn
unit.timesspeed = x hız
unit.percent = %
unit.items = eşya
+unit.thousands = k
+unit.millions = mil
category.general = Genel
category.power = Enerji
category.liquids = Sıvılar
@@ -579,6 +620,7 @@ setting.shadows.name = Gölgeler
setting.blockreplace.name = Automatic Block Suggestions
setting.linear.name = Lineer Filtreleme
setting.hints.name = İpuçları
+setting.buildautopause.name = Auto-Pause Building
setting.animatedwater.name = Animasyonlu Su
setting.animatedshields.name = Animasyonlu Kalkanlar
setting.antialias.name = Antialias[lightgray] (requires restart)[]
@@ -601,12 +643,16 @@ setting.screenshake.name = Ekranı Salla
setting.effects.name = Efektleri Görüntüle
setting.destroyedblocks.name = Display Destroyed Blocks
setting.conveyorpathfinding.name = Conveyor Placement Pathfinding
+setting.coreselect.name = Allow Schematic Cores
setting.sensitivity.name = Kontrolcü Hassasiyeti
setting.saveinterval.name = Kayıt Aralığı
setting.seconds = {0} Saniye
+setting.blockselecttimeout.name = Block Select Timeout
+setting.milliseconds = {0} milliseconds
setting.fullscreen.name = Tam Ekran
setting.borderlesswindow.name = Kenarsız Pencere[lightgray] (yeniden açmak gerekebilir)
setting.fps.name = FPS Göster
+setting.blockselectkeys.name = Show Block Select Keys
setting.vsync.name = VSync
setting.pixelate.name = Pixelleştir[lightgray] (animasyonları kapatır)
setting.minimap.name = Haritayı Göster
@@ -635,16 +681,36 @@ category.multiplayer.name = Çok Oyunculu
command.attack = Saldır
command.rally = Toplan
command.retreat = Geri Çekil
+placement.blockselectkeys = \n[lightgray]Key: [{0},
keybind.clear_building.name = Binayı Temizle
keybind.press = Bir tuşa basın...
keybind.press.axis = Bir tuşa ya da yöne basın...
keybind.screenshot.name = Harita Ekran Görüntüsü
+keybind.toggle_power_lines.name = Toggle Power Lasers
keybind.move_x.name = x Ekseninde Hareket
keybind.move_y.name = y Ekseninde Hareket
+keybind.mouse_move.name = Follow Mouse
+keybind.dash.name = Sıçrama
keybind.schematic_select.name = Bölge Seç
keybind.schematic_menu.name = Şema Menüsü
keybind.schematic_flip_x.name = Şemayı X ekseninde Döndür
keybind.schematic_flip_y.name = Şemayı Y Ekseninde Döndür
+keybind.category_prev.name = Previous Category
+keybind.category_next.name = Next Category
+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 = Tam Ekran
keybind.select.name = Seç/Ateş Et
keybind.diagonal_placement.name = Çapraz Yerleştirme
@@ -657,7 +723,6 @@ keybind.menu.name = Menü
keybind.pause.name = Durdur
keybind.pause_building.name = İnşaatı Duraklat/İnşaata Devam Et
keybind.minimap.name = Mini Harita
-keybind.dash.name = Sıçrama
keybind.chat.name = Konuş
keybind.player_list.name = Oyuncu Listesi
keybind.console.name = Konsol
@@ -680,7 +745,9 @@ mode.pvp.description = Yerel olarak başkaları ile savaş.\n[gray]Oynamak için
mode.attack.name = Saldırı
mode.attack.description = Düşman üssünü yok et. Dalga yok.\n[gray]Oynamak için haritada kırmızı çekirdek olması gerekir.
mode.custom = Özel Kurallar
+
rules.infiniteresources = Sınırsız Kaynaklar
+rules.reactorexplosions = Reactor Explosions
rules.wavetimer = Dalga Zamanlayıcısı
rules.waves = Dalgalar
rules.attack = Saldırı Modu
@@ -688,6 +755,7 @@ rules.enemyCheat = Sonsuz AI (Kırmızı Takım) Kaynakları
rules.unitdrops = Unit Drops
rules.unitbuildspeedmultiplier = Birim Üretim Hızı Çarpanı
rules.unithealthmultiplier = Birim Canı Çarpanı
+rules.blockhealthmultiplier = Block Health Multiplier
rules.playerhealthmultiplier = Oyuncu Canı Çarpanı
rules.playerdamagemultiplier = Oyuncu Hasarı Çarpanı
rules.unitdamagemultiplier = Birim Hasarı Çapanı
@@ -706,6 +774,10 @@ rules.title.resourcesbuilding = Kaynaklar & İnşa
rules.title.player = Oyuncular
rules.title.enemy = Düşmanlar
rules.title.unit = Unitler
+rules.title.experimental = Experimental
+rules.lighting = Lighting
+rules.ambientlight = Ambient Light
+
content.item.name = Eşyalar
content.liquid.name = Sıvılar
content.unit.name = Birimler
@@ -752,6 +824,7 @@ mech.trident-ship.name = Trident
mech.trident-ship.weapon = Bomba Bölmesi
mech.glaive-ship.name = Glaive
mech.glaive-ship.weapon = Alevli Makineli Tüfek
+item.corestorable = [lightgray]Storable in Core: {0}
item.explosiveness = [lightgray]Patlama: {0}%
item.flammability = [lightgray]Yanıcılık: {0}%
item.radioactivity = [lightgray]Radyoaktivite: {0}%
@@ -767,6 +840,7 @@ mech.buildspeed = [lightgray]İnşaat Hızı: {0}%
liquid.heatcapacity = [lightgray]Isı Kapasitesi: {0}
liquid.viscosity = [lightgray]Vizkosite: {0}
liquid.temperature = [lightgray]Sıcaklık: {0}
+
block.sand-boulder.name = Kum Kaya Parçaları
block.grass.name = Çimen
block.salt.name = Tuz
@@ -865,6 +939,8 @@ block.distributor.name = Dağıtıcı
block.sorter.name = Ayıklayıcı
block.inverted-sorter.name = Ters Ayıklayıcı
block.message.name = Mesaj
+block.illuminator.name = Illuminator
+block.illuminator.description = A small, compact, configurable light source. Requires power to function.
block.overflow-gate.name = Taşma Geçiti
block.silicon-smelter.name = Silikon Fırını
block.phase-weaver.name = Faz Örücü
@@ -878,6 +954,7 @@ block.coal-centrifuge.name = Kömür Santrifüjü
block.power-node.name = Enerji Noktası
block.power-node-large.name = Büyük Enerji Noktası
block.surge-tower.name = Akı Kulesi
+block.diode.name = Battery Diode
block.battery.name = Batarya
block.battery-large.name = Büyük Batarya
block.combustion-generator.name = Termik Jeneratör
@@ -901,6 +978,7 @@ block.mechanical-pump.name = Mekanik Pompa
block.item-source.name = Sonsuz Eşya Kaynağı
block.item-void.name = Eşya Yokedici
block.liquid-source.name = Sonsuz Sıvı Kaynağı
+block.liquid-void.name = Liquid Void
block.power-void.name = Enerji Yokedici
block.power-source.name = Sonsuz Enerji Kaynağı
block.unloader.name = Boşaltıcı
@@ -930,6 +1008,7 @@ block.fortress-factory.name = Fortress Robot Fabrikası
block.revenant-factory.name = Revenant Savaşçı Fabrikası
block.repair-point.name = Tamir Noktası
block.pulse-conduit.name = Dalga Borusu
+block.plated-conduit.name = Plated Conduit
block.phase-conduit.name = Faz Borusu
block.liquid-router.name = Sıvı Yönlendiricisi
block.liquid-tank.name = Sıvı Tankı
@@ -1001,6 +1080,7 @@ tutorial.deposit = Malzemeleri geminizden hedef bloğa sürükleyerek malzemeler
tutorial.waves = [lightgray]Düşman[] yaklaşıyor.\n\nÇekirdeği 2 dalga boyunca koruyun. Ateş etmek için [accent]tıklayın[].\nDaha fazla taret ve matkap inşa edin ve daha fazla bakır toplayın.
tutorial.waves.mobile = [lightgray]Düşman[] yaklaşıyor.\n\nÇekirdeği 2 dalga boyunca koruyun. Geminiz düşmanlara otomatik olarak ateş edecektir.\nDaha fazla taret ve matkap inşa edin ve daha fazla bakır toplayın.
tutorial.launch = Belirli bir dalgaya ulaşınca, çekirdeği bulunduğu bölgeden [accent]kaldırabilir[], bütün binalarınızı arkada bırakıp [accent]çekirdeğinizdeki bütün materyallere sahip olabilirsiniz.[]Bu materyaller daha sonra yeni teknolojiler geliştirmek için kullanılabilir.\n\n[accent]Kalkış butonuna basın.
+
item.copper.description = En basit materyal. Her türlü blokda kullanılır.
item.lead.description = Basit bir materyal. Elektronikte ve sıvı taşımada kullanılır.
item.metaglass.description = Süper sert camdan bir bileşim. Sıvı dağıtımı ve depolamak için yaygın olarak kullanılır.
@@ -1062,6 +1142,7 @@ block.power-source.description = Sonsuz enerji verir. Sadece Yaratıcı Modda.
block.item-source.description = Seçilen eşyadan sonsuz verir. Sadece Yaratıcı Modda.
block.item-void.description = Verilen eşyaları yok eder. Sadece Yaratıcı Modda.
block.liquid-source.description = Seçilen sıvıyı sonsuz verir. Sadece Yaratıcı Modda.
+block.liquid-void.description = Removes any liquids. Sandbox only.
block.copper-wall.description = Ucuz bir savunma bloğu.\nİlk birkaç dalgada merkezi ve silahları korumak için kullanışlıdır.
block.copper-wall-large.description = Ucuz bir savunma bloğu.\nİlk birkaç dalgada merkezi ve taretleri korumak için kullanışlıdır.\nBirçok blok alan kaplar.
block.titanium-wall.description = Orta derecede güçlü savunma bloğu.\nDüşmanlardan orta derecede koruma sağlar.
@@ -1097,6 +1178,7 @@ block.rotary-pump.description = Daha gelişmiş bir pompa. Daha fazla sıvı dep
block.thermal-pump.description = En iyi pompa.
block.conduit.description = Temel sıvı taşıma bloğu. Sıvıları ileri taşır. Pompalar ve diğer borularla birlikte kullanılır.
block.pulse-conduit.description = Gelişmiş bir sıvı taşıma bloğu. Sıvıları normal borulardan daha hızlı taşır ve onlardan daha fazla sıvı alır.
+block.plated-conduit.description = Moves liquids at the same rate as pulse conduits, but possesses more armor. Does not accept fluids from the sides by anything other than conduits.\nLeaks less.
block.liquid-router.description = Sıvıları bir yönden alıp diğer üç yöne eşit olarak dağıtır. Ayrıca kendisi de bir miktar sıvı depolayabilir. Sıvıları bir kaynaktan birden fazla hedefe iletmek için kullanılır.
block.liquid-tank.description = Çok miktarda sıvıyı depolar. İhtiyaçları devamlı olmayan sıvıları yedek olarak saklamakta ya da önemli blokların devamlı olarak soğutulmasında kullanılabilir.
block.liquid-junction.description = Çakışan iki boru hattı arasında bir köprü görevi görür. İki farklı borunun farklı hedeflere farklı sıvıları taşıdığı durumlarda kullanışlıdır.
@@ -1105,6 +1187,7 @@ block.phase-conduit.description = Gelişmiş sıvı taşıma bloğu. Sıvıları
block.power-node.description = Bağlı düğümlere enerji sağlar. Ayrıca dibindeki bloklardan da enerji alıp onlara enerji verebilir.
block.power-node-large.description = Daha fazla menzil ve bağlantıya sahip daha gelişmiş bir güç düğümü
block.surge-tower.description = Daha az bağlantı sayısına sahip oldukça uzun menzilli bir güç düğümü.
+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 = Enerji fazlasını yedek olarak saklar. Enerji açığında sakladığı enerjiyi salar.
block.battery-large.description = Sıradan bataryadan çok daha fazla enerji depolar.
block.combustion-generator.description = Kömür gibi yanıcı materyalleri yakarak enerji üretir.
diff --git a/core/assets/bundles/bundle_uk_UA.properties b/core/assets/bundles/bundle_uk_UA.properties
index a0c1edf720..b78e537eff 100644
--- a/core/assets/bundles/bundle_uk_UA.properties
+++ b/core/assets/bundles/bundle_uk_UA.properties
@@ -10,8 +10,9 @@ link.dev-builds.description = Нестабільні версії
link.trello.description = Офіційна дошка Trello для запланованих функцій
link.itch.io.description = Itch.io сторінка, на якій можна завантажити гру
link.google-play.description = Завантажити для Android з Google Play
-link.f-droid.description = Перелік каталогу F-Droid
+link.f-droid.description = Завантажити для Android з F-Droid
link.wiki.description = Офіційна Mindustry wiki
+link.feathub.description = Запропонувати нові функції
linkfail = Не вдалося відкрити посилання!\nURL-адреса скопійована в буфер обміну.
screenshot = Зняток мапи збережено в {0}
screenshot.invalid = Мапа занадто велика, тому, мабуть, не вистачає пам’яті для знятку мапи.
@@ -19,6 +20,7 @@ gameover = Гра завершена
gameover.pvp = [accent] {0}[] команда перемогла!
highscore = [YELLOW]Новий рекорд!
copied = Скопійовано.
+
load.sound = Звуки
load.map = Мапи
load.image = Зображення
@@ -27,6 +29,13 @@ load.system = Система
load.mod = Модифікації
load.scripts = Скрипти
+be.update = Доступна нова збірка Bleeding Edge:
+be.update.confirm = Завантажити і перезавантажити зараз?
+be.updating = Оновлення…
+be.ignore = Ігнорувати
+be.noupdates = Оновлень не знайдено.
+be.check = Перевірити на наявність оновлень
+
schematic = Схема
schematic.add = Зберегти схему…
schematics = Схеми
@@ -37,12 +46,13 @@ schematic.importfile = Імпортувати файл
schematic.browseworkshop = Переглянути в Майстерні
schematic.copy = Копіювати в буфер обміну
schematic.copy.import = Імпортувати з клавіатури
-schematic.shareworkshop = Поширити в Майстерні
+schematic.shareworkshop = Поширити в Майстерню
schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Відобразити схему
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}
@@ -50,6 +60,7 @@ stat.destroyed = Будівель знищено:[accent] {0}
stat.deconstructed = Будівель декоструйовано[accent] {0}
stat.delivered = Ресурсів запущено:
stat.rank = Фінальний рахунок: [accent]{0}
+
launcheditems = [accent]Запущені предмети
launchinfo = [unlaunched]Натисніть на кнопку «[[ЗАПУСК]», щоб ваше ядро отримало предмети, які виділені синім кольором.
map.delete = Ви впевнені, що хочете видалити мапу «[accent]{0}[]»?
@@ -67,7 +78,7 @@ customgame = Користувацька гра
newgame = Нова гра
none = <нічого>
minimap = Мінімапа
-position = Позиція
+position = Місцерозташування
close = Закрити
website = Веб-сайт
quit = Вихід
@@ -84,41 +95,38 @@ uploadingcontent = Вивантаження вмісту
uploadingpreviewfile = Вивантаження файлу передперегляду
committingchanges = Здійснення змін
done = Зроблено
-mods = Модифікації
+feature.unsupported = Your device does not support this feature.
+
mods.alphainfo = Майте на увазі, що модифікації знаходяться в альфі, і [scarlet]може бути дуже глючними[].\nПовідомте про будь-які проблеми, які ви знайдете до Mindustry Github або Discord.
mods.alpha = [scarlet](Альфа)
-mods.none = [LIGHT_GRAY]Модифікацій не знайдено!
-mod.enabled = [lightgray]Увімкнено
-mod.disabled = [scarlet]Вимкнено
-mod.requiresrestart = А тепер гра закриється, щоб застосувати зміни модифікацій.
-mod.import = Імпортувати модифікацію
-mod.remove.confirm = Цю модифікацію буде видалено.
-mod.author = [LIGHT_GRAY]Автор:[] {0}
-mods.alpha = [scarlet](Альфа)
mods = Модифікації
mods.none = [LIGHT_GRAY]Модифікацій не знайдено!
-mods.guide = Посібник зі створення модифицій
+mods.guide = Посібник з модифицій
mods.report = Повідомити про ваду
mods.openfolder = Відкрити теку модифікацій
mod.enabled = [lightgray]Увімкнено
mod.disabled = [scarlet]Вимкнено
-mod.disable = Вимкнути
+mod.disable = Вимкн.
mod.delete.error = Неможливо видалити модифікацію. Файл, можливо, використовується.
-mod.requiresversion = [scarlet]Необхідна версія гри: [accent]{0}
+mod.requiresversion = [scarlet]Необхідна мінімальна версія гри: [accent]{0}
mod.missingdependencies = [scarlet]Відсутні залежності: {0}
+mod.erroredcontent = [scarlet]Помилки при завантаженнні
+mod.errors = Сталася помилка при завантаження змісту.
+mod.noerrorplay = [scarlet]Ви маєте модифікації з помилками.[] Або вимкніть проблемні модифікації, або виправте їх.
mod.nowdisabled = [scarlet]Модифікації «{0}» не вистачає залежних модифікацій:[accent] {1}\n[lightgray]Ці модифікації потрібно завантажити спочатку.\nЦя модифікація буде автоматично вимкнена.
-mod.enable = Увімкнути
+mod.enable = Увімк.
mod.requiresrestart = А тепер гра закриється, щоб застосувати зміни модифікацій.
mod.reloadrequired = [scarlet]Потрібно перезавантаження
mod.import = Імпортувати модифікацію
-mod.import.github = Імпортувати модификацію з GitHub
-mod.item.remove =Цей предмет є частиною модифікації [accent] '«{0}»[]. Щоб видалити його, видаліть цю модифікацію.
+mod.import.github = Завантажити мод з GitHub
+mod.item.remove = Цей предмет є частиною модифікації [accent] «{0}»[]. Щоб видалити його, видаліть цю модифікацію.
mod.remove.confirm = Цю модифікацію буде видалено.
mod.author = [LIGHT_GRAY]Автор:[] {0}
mod.missing = Це збереження містить модифікації, які ви нещодавно оновили або більше не встановлювали. Збереження може зіпсуватися. Ви впевнені, що хочете завантажити його?\n[lightgray]Модифікації:\n{0}
mod.preview.missing = До публікації цієї модифікації в Майстерні, ви повинні додати зображення попереднього перегляду.\nПомістіть зображення з назвою [accent] preview.png[] у теку з модификаціями і спробуйте знову.
mod.folder.missing = Тільки модификації у формі теці можуть бути опубліковані в Майстерні.\nЩоб перетворити будь-яку модификацію у теку, просто розархівуйте цей файлу теку та видаліть старий архів, і потім перезапустіть гру або перезавантажте ваші модификації.
mod.scripts.unsupported = Ваш пристрій не підтримує скрипти модифікацій. Деякі модифифікаціх не будуть працювати правильно.
+
about.button = Про гру
name = Ім’я:
noname = Спочатку придумайте[accent] собі ім’я[].
@@ -133,7 +141,7 @@ players = Гравців: {0}
players.single = {0} гравець на сервері
server.closing = [accent]Закриття сервера…
server.kicked.kick = Ви були вигнані з сервера!
-server.kicked.whitelist = Ви не в білому спискі сервері.
+server.kicked.whitelist = Ви не в білому спискі сервера!
server.kicked.serverClose = Сервер закрито.
server.kicked.vote = Вас було вигнано із сервера за допомогою голосування. Прощавайте.
server.kicked.clientOutdated = Застарілий клієнт! Оновіть свою гру!
@@ -147,6 +155,7 @@ server.kicked.nameEmpty = Ваше ім’я має містити принай
server.kicked.idInUse = Ви вже на цьому сервері! Підключення двох облікових записів не дозволяється.
server.kicked.customClient = Цей сервер не підтримує користувацькі збірки. Завантажте офіційну версію.
server.kicked.gameover = Гра завершена!
+server.kicked.serverRestarting = Сервер перезавантажується
server.versions = Ваша версія:[accent] {0}[]\nВерсія на сервері:[accent] {1}[]
host.info = Кнопка [accent]Сервер[] розміщує сервер на порті [scarlet]6567[]. \nКористувачі, які знаходяться у тій же [lightgray]WiFi або локальній мережі[], повинні бачити ваш сервер у своєму списку серверів.\n\nЯкщо ви хочете, щоб люди могли приєднуватися з будь-якої точки через IP, то[accent] переадресація порту []обов’язкова.\n\n[lightgray]Примітка. Якщо у вас виникли проблеми з підключенням до вашої локальної гри, переконайтеся, що ви дозволили Mindustry доступ до вашої локальної мережі в налаштуваннях брандмауера. Зауважте, що публічні мережі іноді не дозволяють виявити сервер.
join.info = Тут ви можете ввести [accent]IP сервера[] для підключення або знайти сервери у [accent]локальній мережі[] для підключення до них.\nПідтримується локальна мережа(LAN) і широкосмугова мережа(WAN).\n\n[lightgray] Примітка. Тут немає автоматичного глобального списку серверів; якщо ви хочете підключитися до когось через IP, вам доведеться попросити створювача сервера дати свій ip.
@@ -209,8 +218,8 @@ save.delete.confirm = Ви дійсно хочете видалити це зб
save.delete = Видалити
save.export = Експортувати збереження
save.import.invalid = [accent]Це збереження недійсне!
-save.import.fail = [crimson]Не вдалося імпортувати збереження: [accent]{0}
-save.export.fail = [crimson]Не вдалося експортувати збереження: [accent]{0}
+save.import.fail = [crimson]Не вдалося завантажити збереження: [accent]{0}
+save.export.fail = [crimson]Не вдалося вивантажити збереження: [accent]{0}
save.import = Імпортувати збереження
save.newslot = Ім’я збереження:
save.rename = Перейменувати
@@ -240,12 +249,12 @@ cancel = Скасувати
openlink = Відкрити посилання
copylink = Скопіювати посилання
back = Назад
-data.export = Експортувати дані
-data.import = Импортувати дані
-data.exported = Дані імпортовано.
+data.export = Вивантажити дані
+data.import = Завантажити дані
+data.exported = Дані вивантажено.
data.invalid = Це не дійсні ігрові дані.
-data.import.confirm = Імпорт зовнішніх даних перезапише[scarlet] ВСІ[] ваші поточні ігрові дані.\n[accent]Це неможливо скасувати![]\n\nЩойно дані імпортуються, гра негайно закриється.
-classic.export = Експортувати класичні дані
+data.import.confirm = Вивантаження зовнішніх даних перезапише[scarlet] ВСІ[] ваші поточні ігрові дані.\n[accent]Це неможливо скасувати![]\n\nЩойно дані імпортуються, гра негайно закриється.
+classic.export = Вивантажити класичні дані
classic.export.text = Класичне (версія 3.5 збірка 40) збереження або мапа були знайдені. Ви хочете експортувати ці дані в домашню теку телефону, для використання у застосунку Mindustry Classic?
quit.confirm = Ви впевнені, що хочете вийти?
quit.confirm.tutorial = Ви впевнені, що хочете вийти з навчання?
@@ -286,6 +295,7 @@ publishing = [accent]Публікація…
publish.confirm = Ви дійсно хочете опублікувати це?\n\n[lightgray]Переконайтеся, що ви спочатку погоджуєтеся з EULA Майстерні, або ваші предмети не з’являться!
publish.error = Сталася помилка при публікації предмета: {0}
steam.error = Не вдалося ініціалізувати сервіси Steam.\nПомилка: {0}
+
editor.brush = Пензлик
editor.openin = Відкрити в редакторі
editor.oregen = Генерація руд
@@ -317,7 +327,7 @@ waves.invalid = Недійсні хвилі у буфері обміну.
waves.copied = Хвилі скопійовані.
waves.none = Вороги не були встановлені.\nЗазначимо, що пусті хвилі будуть автоматично замінені звичайною хвилею.
editor.default = [lightgray]<За замовчуванням>
-details = Деталі…
+details = Подробиці…
edit = Редагувати…
editor.name = Назва:
editor.spawn = Створити бойову одиницю
@@ -325,7 +335,7 @@ editor.removeunit = Видалити бойову одиницю
editor.teams = Команди
editor.errorload = Помилка завантаження зображення:\n[accent] {0}
editor.errorsave = Помилка збереження зображення:\n[accent]{0}
-editor.errorimage = Це зображення, а не мапа. Не змінюйте розширення, очікуючи, що це запрацює.\n\nЯкщо Ви хочете імпортувати застарілку мапу, то використовуйте кнопку «Імпортувати застаріле зображення» у редакторі.
+editor.errorimage = Це зображення, а не мапа. Не змінюйте розширення, очікуючи, що це запрацює.\n\nЯкщо ви хочете імпортувати застарілку мапу, то використовуйте кнопку «Імпортувати застаріле зображення» у редакторі.
editor.errorlegacy = Ця мапа занадто стара і використовує попередній формат мапи, який більше не підтримується.
editor.errornot = Це не мапа.
editor.errorheader = Цей файл мапи недійсний або пошкоджений.
@@ -362,6 +372,7 @@ editor.overwrite = [accent]Попередження!\nЦе перезапису
editor.overwrite.confirm = [scarlet]Попередження![] Мапа з такою назвою вже існує. Ви впевнені, що хочете переписати її?
editor.exists = Мапа за такою назвою вже існує.
editor.selectmap = Виберіть мапу для завантаження:
+
toolmode.replace = Замінити
toolmode.replace.description = Малює тільки\nна суцільних блоках.
toolmode.replaceall = Замінити все
@@ -376,6 +387,7 @@ toolmode.fillteams = Змінити блок в команді
toolmode.fillteams.description = Змінює належність\nблоків до команди.
toolmode.drawteams = Змінити команду блока
toolmode.drawteams.description = Змінює належність\nблока до команди.
+
filters.empty = [lightgray]Немає фільтрів! Додайте хоча б один за допомогою кнопки нижче.
filter.distort = Спотворення
filter.noise = Шум
@@ -407,6 +419,7 @@ filter.option.floor2 = Друга поверхня
filter.option.threshold2 = Вторинний граничний порог
filter.option.radius = Радіус
filter.option.percentile = Спад
+
width = Ширина:
height = Висота:
menu = Меню
@@ -422,12 +435,13 @@ tutorial = Навчання
tutorial.retake = Відкрити навчання
editor = Редактор
mapeditor = Редактор мап
+
abandon = Покинути
abandon.text = Ця зона і всі її ресурси будуть втрачені.
locked = Заблоковано
complete = [lightgray]Досягнута:
-requirement.wave = Досягніть хвилі {0} у {1}
-requirement.core = Знишьте вороже ядро у {0}
+requirement.wave = Досягніть хвилі {0} у зоні «{1}»
+requirement.core = Знищьте вороже ядро у {0}
requirement.unlock = Розблокуйте {0}
resume = Відновити зону:\n[lightgray]{0}
bestwave = [lightgray]Найкраща хвиля: {0}
@@ -436,22 +450,23 @@ launch.title = Запуск вдалий
launch.next = [lightgray]наступна можливість на {0}-тій хвилі
launch.unable2 = [scarlet]ЗАПУСК неможливий.[]
launch.confirm = Це видалить всі ресурси у Вашому ядрі.\nВи не зможете повернутися до цієї бази.
-launch.skip.confirm = Якщо Ви пропустите зараз, Ви не зможете не запускати до більш пізніх хвиль.
+launch.skip.confirm = Якщо ви пропустите зараз, Ви не зможете не запускати до більш пізніх хвиль.
uncover = Розкрити
configure = Вивантажити конфігурацію
bannedblocks = Заборонені блоки
addall = Додати все
-configure.locked = [lightgray]Можливість розблокувати вивантаження ресурсів буде доступна на {0}-тій хвилі.
+configure.locked = {0}[lightgray]Тільки після цього можливість розблокувати вивантаження ресурсів буде доступна.
configure.invalid = Кількість повинна бути числом між 0 та {0}.
zone.unlocked = Зона «[lightgray]{0}» тепер розблокована.
-zone.requirement.complete = Ви досягли {0}-тої хвилі,\nВимоги до зони «{1}» виконані.
-zone.config.unlocked = Loadout unlocked:[lightgray]\n{0}
+zone.requirement.complete = Ви досягли {0}-тої хвилі. \nВимоги до зони «{1}» виконані.
+zone.config.unlocked = Вивантаження розблоковано:[lightgray]\n{0}
zone.resources = Виявлені ресурси:
zone.objective = [lightgray]Мета: [accent]{0}
zone.objective.survival = Вижити
zone.objective.attack = Знищити вороже ядро
add = Додати…
boss.health = Здоров’я босу
+
connectfail = [crimson]Помилка підключення: [accent]{0}
error.unreachable = Сервер не доступний.
error.invalidaddress = Некоректна адреса.
@@ -462,7 +477,8 @@ error.mapnotfound = Файл мапи не знайдено
error.io = Мережева помилка введення-виведення
error.any = Невідома мережева помилка
error.bloom = Не вдалося ініціалізувати цвітіння.\nВаш пристрій, мабуть, не підтримує це.
-zone.groundZero.name = Нульова земля
+
+zone.groundZero.name = Відправний пункт
zone.desertWastes.name = Пустельні відходи
zone.craters.name = Кратери
zone.frozenForest.name = Крижаний ліс
@@ -476,6 +492,7 @@ zone.saltFlats.name = Соляні рівнини
zone.impact0078.name = Імпульс 0078
zone.crags.name = Скелі
zone.fungalPass.name = Грибний перевал
+
zone.groundZero.description = Оптимальне місце для повторних ігор. Низька ворожа загроза. Мало ресурсів. \nЗбирайте якомога більше свинцю та міді. \nЙдіть далі.
zone.frozenForest.description = Навіть тут, ближче до гір, спори поширилися. Холодна температура не може їх утримувати тут завжди.\nЗважтесь створити енергію. Побудуйте генератори внутрішнього згорання. Навчіться користуватися регенераторами.
zone.desertWastes.description = Ці відходи є величезними, непередбачуваними і перетинаються з занедбаними секторальними структурами.\nВугілля присутнє в регіоні. Спаліть його для енергії або синтезуйте у графіт.\n\n[lightgray]Це місце посадки не можна гарантувати.
@@ -490,10 +507,11 @@ zone.nuclearComplex.description = Колишній об’єкт для виро
zone.fungalPass.description = Перехідна зона між високими і низькими горами, земля яких покрита спорами. Тут знаходиться невелика розвідувальна база ворога.\nЗнижте її.\nВикористовуйте одиниці Кинджал і Камікадзе.
zone.impact0078.description = <вставити опис тут>
zone.crags.description = <вставити опис тут>
+
settings.language = Мова
settings.data = Ігрові дані
settings.reset = Скинути за замовчуванням
-settings.rebind = Зміна
+settings.rebind = Змінити
settings.resetKey = Скинути
settings.controls = Керування
settings.game = Гра
@@ -515,7 +533,7 @@ blocks.output = Вихід
blocks.booster = Прискорювач
block.unknown = [lightgray]???
blocks.powercapacity = Місткість енергії
-blocks.powershot = Енергія/постріл
+blocks.powershot = Енергія за постріл
blocks.damage = Шкода
blocks.targetsair = Повітряні мішені
blocks.targetsground = Наземні мішені
@@ -527,7 +545,7 @@ blocks.liquidcapacity = Місткість рідини
blocks.powerrange = Діапазон передачі енергії
blocks.powerconnections = Максимальна кількість з’єднань
blocks.poweruse = Енергії використовує
-blocks.powerdamage = Енергія/урон
+blocks.powerdamage = Енергія/шкода
blocks.itemcapacity = Місткість предметів
blocks.basepowergeneration = Базова генерація енергії
blocks.productiontime = Час виробництва
@@ -545,6 +563,7 @@ blocks.inaccuracy = Розкид
blocks.shots = Постріли
blocks.reload = Постріли/секунду
blocks.ammo = Боєприпаси
+
bar.drilltierreq = Потребується кращий бур
bar.drillspeed = Швидкість буріння: {0} за с.
bar.pumpspeed = Швидкість викачування: {0} за с.
@@ -562,6 +581,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]запальний
@@ -573,12 +593,11 @@ 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.itemssecond = предметів за секунду
-unit.thousands = тис
-unit.millions = млн
unit.liquidunits = одиниць рідини
unit.powerunits = одиниць енергії
unit.degrees = град.
@@ -587,6 +606,8 @@ unit.persecond = за секунду
unit.timesspeed = x швидкість
unit.percent = %
unit.items = предм.
+unit.thousands = тис
+unit.millions = млн
category.general = Загальне
category.power = Енергія
category.liquids = Рідини
@@ -622,6 +643,7 @@ setting.screenshake.name = Тряска екрану
setting.effects.name = Ефекти
setting.destroyedblocks.name = Показувати зруйновані блоки
setting.conveyorpathfinding.name = Пошук шляху для встановлення конвейерів
+setting.coreselect.name = Дозволити схематичні ядра
setting.sensitivity.name = Чутливість контролера
setting.saveinterval.name = Інтервал збереження
setting.seconds = {0} с
@@ -723,6 +745,7 @@ mode.pvp.description = боріться проти інших гравців.\n[
mode.attack.name = Атака
mode.attack.description = Зруйнуйте ворожу базу.\n[gray]Потрібно червоне ядро на мапі для гри.
mode.custom = Користувацькі правила
+
rules.infiniteresources = Нескінченні ресурси
rules.reactorexplosions = Вибухи реактора
rules.wavetimer = Таймер хвиль
@@ -732,6 +755,7 @@ rules.enemyCheat = Нескінченні ресурси для ШІ
rules.unitdrops = Ресурс бойових одиниць
rules.unitbuildspeedmultiplier = Множник швидкості виробництва бойових одиниць
rules.unithealthmultiplier = Множник здоров’я бойових одиниць
+rules.blockhealthmultiplier = Множник здоров’я блоків
rules.playerhealthmultiplier = Множник здоров’я гравця
rules.playerdamagemultiplier = Множник шкоди гравця
rules.unitdamagemultiplier = Множник шкоди бойових одиниць
@@ -753,6 +777,7 @@ rules.title.unit = Бойов. од.
rules.title.experimental = Есперементальне!
rules.lighting = Світлотінь
rules.ambientlight = Навколишнє світло
+
content.item.name = Предмети
content.liquid.name = Рідини
content.unit.name = Бойові одиниці
@@ -815,6 +840,7 @@ mech.buildspeed = [lightgray]Швидкість будування: {0}%
liquid.heatcapacity = [lightgray]Теплоємність: {0}
liquid.viscosity = [lightgray]В’язкість: {0}
liquid.temperature = [lightgray]Температура: {0}
+
block.sand-boulder.name = Пісочний валун
block.grass.name = Трава
block.salt.name = Сіль
@@ -849,7 +875,7 @@ block.core-nucleus.name = Ядро «Атом»
block.deepwater.name = Глибоководдя
block.water.name = Вода
block.tainted-water.name = Забруднена вода
-block.darksand-tainted-water.name = Темний пісок з забрудненою водою
+block.darksand-tainted-water.name = Темний пісок із забрудненою водою
block.tar.name = Дьоготь
block.stone.name = Камінь
block.sand.name = Пісок
@@ -952,6 +978,7 @@ block.mechanical-pump.name = Механічна помпа
block.item-source.name = Нескінченне джерело предметів
block.item-void.name = Предметний вакуум
block.liquid-source.name = Нескінченне джерело рідин
+block.liquid-void.name = Liquid Void
block.power-void.name = Енергетичний вакуум
block.power-source.name = Нескінченне джерело енергії
block.unloader.name = Розвантажувач
@@ -1033,30 +1060,31 @@ unit.eradicator.name = Випалювач
unit.lich.name = Лич
unit.reaper.name = Жнець
tutorial.next = [lightgray]<Натисніть для продовження>
-tutorial.intro = Ви розпочали[scarlet] навчання по Mindustry.[]\nРозпочніть з[accent] видобування міді[]. Використовуйте [[WASD] для руху.\n[accent] Утримуйте [[Ctrl] під час прокрутки миші[] для приближення і віддалення. Наблизьтесь, а потім натисність на мідну жилу біля вашого ядра, щоб зробити це.\n\n[accent]{0}/{1} міді
+tutorial.intro = Ви розпочали[scarlet] навчання по Mindustry.[]\nРозпочніть з [accent]видобутку міді[]. Використовуйте [[WASD] для руху.\n[accent]Прокручуйте миш[] для приближення і віддалення. Наблизьтесь до мідної жили біля вашого ядра, а потім натисніть на неї, щоб розпочати видобуток.\n\n[accent]{0}/{1} міді
tutorial.intro.mobile = Ви розпочали[scarlet] навчання по Mindustry.[]\nПроведіть екраном, щоб рухатися.\n[accent] Зведіть або розведіть 2 пальця [] для приближення і віддалення відповідно.\nз[accent] видобування міді.[] Наблизьтесь, а потім натисність на мідну жилу біля вашого ядра, щоб зробити це.\n\n[accent]{0}/{1} міді
-tutorial.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 предмет доставлено
-tutorial.turret = Оборонні споруди повинні бути побудовані для відбиття[lightgray] ворогів[].\nПобудуйте[accent] башточку «Подвійна»[] біля вашої бази.
-tutorial.drillturret = «Подвійна» потребує [accent] мідні боєприпаси []для стрільби.\nРозмістіть бур біля башточки\nПроведіть конвеєри до башточки, щоб заповнити її боєприпасами.\n\n[accent]Доставлено боєприпасів: 0/1
-tutorial.pause = Під час бою ви можете[accent] поставити на павзу гру.[]\nВи можете зробити чергу на будування під час паузи.\n\n[accent]Натисність пробіл для павзи.tutorial.launch
-tutorial.pause.mobile = Під час бою ви можете[accent] поставити на павзу гру.[]\nВи можете зробити чергу на будування під час паузи.\n\n[accent]атисніть кнопку зліва вгорі для павзи.
+tutorial.drill = Добування вручну не є ефективним.\n[accent]Бури []можуть добувати автоматично.\nНатисніть на вкладку із зображенням свердла знизу праворуч.\nВиберіть[accent] механічний бур[]. Розмістіть його на мідній жилі натисканням.\nВи також можете вибрати бур, натиснувши [accent][[2][], а потім швидко натиснути [accent][[1][], незалежно від того, яка вкладка відкрита.\n[accent]Натисніть ПКМ[], щоб зупинити будування.
+tutorial.drill.mobile = Добування вручну неефективне.\n[accent]Бури []можуть добувати автоматично.\nНатисність на вкладку із зображенням сведла знизу зправа.\nВиберіть[accent] механічний бур[]. Розмістіть його на мідній жилі натисканням, потім натисність на [accent]галочку[] нижче, щоб підтвердити розміщення .\nНатисніть [accent]кнопку X[], щоб скасувати розміщення.
+tutorial.blockinfo = Кожен блок має різні характеристики. Кожний бур може видобувати тільки певні руди.\nЩоб переглянути інформацію та характеристики блока,[accent] натисність на кнопку «?», коли ви вибрали блок у меню будування.[]\n\n[accent]Перегляньте характеристику Механічного бура прямо зараз.[]
+tutorial.conveyor = [accent]Конвеєри[] використовуються для транспортування предметів до ядра.\nЗробіть лінію конвеєрів від бура до ядра.\n[accent]Утримуйте миш, щоб розмістити у лінію.[]\nУтримуйте[accent] CTRL[] під час вибору лінії для розміщення по діагоналі.\\nПрокручуйте, щоб обертати блоки до їх установлення.\n[accent]Розмістіть 2 конвеєри у лінію, а потім доставте предмет в ядро.tutorial.conveyor.mobile = [accent]Конвеєри[] використовується для транспортування предметів до ядра.\nЗробіть лінію конвеєрів від бура до ядра.\n[accent] Розмістить у лінію, утримуючи палець кілька секунд[] і тягніть у напрямку, який Ви вибрали.\nВикористовуйте колесо прокрутки, щоб обертати блоки перед їх розміщенням\n[accent]{0}/{1} конвеєрів, які розміщені в лінію\n[accent]0/1 предмет доставлено
+tutorial.conveyor.mobile = [accent]Conveyors[] are used to transport items to the core.\nMake a line of conveyors from the drill to the core.\n[accent] Place in a line by holding down your finger for a few seconds[] and dragging in a direction.\n\n[accent]Place 2 conveyors with the line tool, then deliver an item into the core.
+tutorial.turret = Оборонні споруди повинні бути побудовані для відбиття[lightgray] ворогів[].\nПобудуйте[accent] башту «Подвійна»[] біля вашої бази.
+tutorial.drillturret = «Подвійна» потребує [accent]мідні боєприпаси[] для стрільби.\nРозмістіть бур біля башточки\nПроведіть конвеєри до башточки, щоб заповнити її боєприпасами.\n\n[accent]Доставлено боєприпасів: 0/1
+tutorial.pause = Під час бою ви можете[accent] поставити на павзу гру.[]\nВи можете зробити чергу на будування під час паузи.\n\n[accent]Натисність пробіл для павзи.
+tutorial.pause.mobile = Під час бою ви можете[accent] поставити на павзу гру.[]\nВи можете зробити чергу на будування під час паузи.\n\n[accent]Натисніть кнопку вгорі ліворуч для павзи.
tutorial.unpause = Тепер натисність пробіл, щоб зняти павзу.
tutorial.unpause.mobile = Тепер натисність туди ще раз, щоб зняти павзу.
-tutorial.breaking = Блоки часто повинні бути знищені.\n[accent]Утримуючи ПКМ[] Ви знищите всі виділені блоки.[]\n\n[accent]Необхідно знищити всі стіни з металобрухту ліворуч від вашого ядра використовуючи видалення у зоні.
+tutorial.breaking = Блоки часто повинні бути знищені.\n[accent]Утримуючи ПКМ[] ви знищите всі виділені блоки.[]\n\n[accent]Необхідно знищити всі стіни з металобрухту ліворуч від вашого ядра використовуючи видалення у зоні.
tutorial.breaking.mobile = Блоки часто повинні бути знищені.\n[accent]Виберіть режим руйнування[], потім натисніть на блок, щоб зламати його.\nЗнищіть область, утримуючи палець протягом декількох секунд [] і потягнувши в потрібному напрямку.\nНатисніть кнопку галочки, щоб підтвердити руйнування.\n\n[accent]Необхідно знищити всі стіни з металобрухту ліворуч від вашого ядра використовуючи видалення у зоні.
-tutorial.withdraw = У деяких ситуаціях потрібно брати предмети безпосередньо з блоків.\nЩоб зробити це, [accent]натисність на блок[] з предметами на ньому, і потім [accent]натисніть на предмет[] в інвентарі.\nМожна вилучити кілька предметів [accent]натискаючи та утримуючи[].\n\n[accent]Вилучіть трохи міді з ядра.[]
+tutorial.withdraw = У деяких ситуаціях потрібно брати предмети безпосередньо з блоків.\nЩоб зробити це, [accent]натисність на блок[] з предметами, і потім [accent]натисніть на предмет[] в інвентарі.\nМожна вилучити кілька предметів [accent]натискаючи та утримуючи[].\n\n[accent]Вилучіть трохи міді з ядра.[]
tutorial.deposit = Покладіть предмети в блоки, перетягнувши з вашого корабля в потрібний блок.\n\n[accent]Покладіть мідь назад у ядро.[]
-tutorial.waves = [lightgray] Ворог[] з’явився.\n\nЗахистіть ядро від двух хвиль.[accent] Натисніть[], щоб стріляти.\nСтворіть більше башточок і бурів. Добудьте більше міді.
-tutorial.waves.mobile = [lightgray] Ворог[] з’явився.\n\nЗахистіть ядро від двух хвиль. Ваш корабель буде автоматично атакувати ворогів.\nСтворіть більше башточок і бурів. Добудьте більше міді.
-tutorial.launch = Як тільки ви досягнете певної хвилі, Ви зможете[accent] запустити ядро[], залишивши захисні сили позаду та [accent]отримати всі ресурси у вашому ядрі.[]\nЦі отримані ресурси можуть бути використані для дослідження нових технологій.\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]Натисніть кнопку запуску.
+
item.copper.description = Найбільш базовий будівельний матеріал. Широко використовується у всіх типах блоків.
item.lead.description = Основний стартовий матеріал. Широко застосовується в електроніці та транспортуванні рідин.
item.metaglass.description = Супер жорсткий склад скла. Широко застосовується для розподілу та зберігання рідини.
-item.graphite.description = Мінералізований вуглець, що використовується для боєприпасів та електроізоляції.
+item.graphite.description = Мінералізований вуглець, що використовується для боєприпасів та як компонент.
item.sand.description = Поширений матеріал, який широко використовується при виплавці, як при сплавленні, так і в якості відходів.
item.coal.description = Окам’янілі рослинні речовини, що утворюються задовго до посіву. Широко використовується для виробництва пального та ресурсів.
item.titanium.description = Рідкісний надлегкий метал, який широко використовується для транспортування рідини, бурів і літаків.
@@ -1074,11 +1102,11 @@ liquid.slag.description = Різні види розплавленого мет
liquid.oil.description = Рідина, яка використовується у виробництві сучасних матеріалів. Може бути перетворена в вугілля в якості палива або використана як куля.
liquid.cryofluid.description = Інертна, не роз’їдаюча рідина, створена з води та титану. Володіє надзвичайно високою пропускною спроможністю. Широко використовується в якості охолоджуючої рідини.
mech.alpha-mech.description = Стандартний керований мех. Заснований на бойовій одиниці «Кинджал», з оновленими бронею та можливостями будування. Наносить більше шкоди, ніж «Дротик».
-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.javelin-ship.description = Корабель, який використовується для стратегії «атакуй та втікай». Хоча спочатку він повільний, потім вже може розганятися до великих швидкостей і літати над ворожими форпостами, завдаючи великої кількості шкоди своїми блискавками та ракетами.
mech.trident-ship.description = Важкий бомбардувальник, побудований для будування та знищення ворожих укріплень. Дуже добре броньований.
mech.glaive-ship.description = Великий, добре броньований бойовий корабель. Оснащений запальним ретранслятором. Високо маневрений.
unit.draug.description = Примітивний дрон, який добуває ресурси. Дешевий для виробництва. Автоматично видобуває мідь і свинець поблизу. Доставляє видобуті ресурси до найближчого ядра.
@@ -1089,7 +1117,7 @@ unit.crawler.description = Наземна одиниця, що складаєт
unit.titan.description = Вдосконалений броньований наземний блок. Нападає як на наземні, так і повітряні цілі. Оснащений двома мініатюрними вогнеметами класу Випалювач.
unit.fortress.description = Артилерійний мех. Оснащений двома модифікованими гарматами типу «Град» для дальнього нападу на ворожі структури та підрозділи.
unit.eruptor.description = Важкий мех, призначеней для знесення конструкцій. Вистрілює потік шлаків у ворожі укріплення, розплавляючи їх і підпалюючи летючі речовини.
-unit.wraith.description = Швидкий перехоплювач, який використовується для тактики «атакуй і біжи». Пріоритет — енергетичні генератори.
+unit.wraith.description = Швидкий перехоплювач, який використовується для тактики «атакуй і втікай». Пріоритет — генератори енергії.
unit.ghoul.description = Важкий килимовий бомбардувальник. Пробиває ворожі структури, орієнтуючись на віжливу інфраструктуру.
unit.revenant.description = Важкий ракетний масив.
block.message.description = Зберігає повідомлення. Використовується для комунікаціх між союзниками.
@@ -1103,19 +1131,20 @@ block.alloy-smelter.description = Поєднує титан, свинець, к
block.cryofluidmixer.description = Змішує воду і дрібний порошок титану титану в кріогенну рідину. Основне використання у торієвому реактору.
block.blast-mixer.description = Подрібнює і змішує скупчення спор з піратитом для отримання вибухової суміші.
block.pyratite-mixer.description = Змішує вугілля, свинець та пісок у легкозаймистий піратит.
-block.melter.description = Розплавляє брухт у шлак для подальшої переробки або використання у башточках «Хвиля».
+block.melter.description = Розплавляє брухт у шлак для подальшої переробки або використання у баштах «Хвиля».
block.separator.description = Відокремлює шлак на його мінеральні компоненти. Виводить охолоджений результат.
-block.spore-press.description = Стискає спорові стручки під сильним тиском для синтезу нафти
+block.spore-press.description = Стискає спорові стручки під сильним тиском для синтезу нафти.
block.pulverizer.description = Подрібнює брухт дрібного піску.
block.coal-centrifuge.description = Нафта перетворюється у шматки вугілля.
block.incinerator.description = Випаровує будь-який зайвий предмет або рідину, які він отримує.
block.power-void.description = Знищує будь-яку енергію, до якої він під’єднаний. Тільки пісочниця
-block.power-source.description = Нескінченно виводить енергію. Тільки пісочниця
-block.item-source.description = Нескінченно виводить предмети. Тільки пісочниця
-block.item-void.description = Знищує будь-які предмети. Тільки пісочниця
-block.liquid-source.description = Нескінченно виводить рідини. Тільки пісочниця
-block.copper-wall.description = Дешевий захисний блок.\nКорисна для захисту ядра та башточок у перші кілька хвиль.
-block.copper-wall-large.description = Дешевий захисний блок.\nКорисна для захисту ядра та башточок у перші кілька хвиль.\nОхоплює кілька плиток.
+block.power-source.description = Нескінченно виводить енергію.
+block.item-source.description = Нескінченно виводить предмети.
+block.item-void.description = Знищує будь-які предмети.
+block.liquid-source.description = Нескінченно виводить рідини.
+block.liquid-void.description = Removes any liquids. Sandbox only.
+block.copper-wall.description = Дешевий захисний блок.\nКорисна для захисту ядра та башто у перші кілька хвиль.
+block.copper-wall-large.description = Дешевий захисний блок.\nКорисна для захисту ядра та башт у перші кілька хвиль.\nОхоплює кілька плиток.
block.titanium-wall.description = Відносно сильний захисний блок.\nЗабезпечує помірний захист від ворогів.
block.titanium-wall-large.description = Відносно сильний захисний блок.\nЗабезпечує помірний захист від ворогів.\nОхоплює кілька плиток.
block.plastanium-wall.description = Особливий тип стіни, який поглинає електричні дуги і блокує автоматичні з'єднання енергетичних вузлів.
@@ -1149,7 +1178,7 @@ block.rotary-pump.description = Удосконалений насос. Насо
block.thermal-pump.description = Найкращий насос.
block.conduit.description = Основний блок транспортування рідини. Пересуває рідини вперед. Застосовується спільно з насосами та іншими трубопроводами.
block.pulse-conduit.description = Вдосконалений блок транспортування рідини. Транспортує рідини швидше і зберігає більше, ніж стандартні трубопроводи.
-block.plated-conduit.description =Переміщує рідини з тією ж швидкістю, як і імпульсні трубопроводи, але має більше міцності. Не приймає рідин з боків окрім інших трубопроводів.\nПротікає менше.
+block.plated-conduit.description = Переміщує рідини з тією ж швидкістю, як і імпульсні трубопроводи, але має більше міцності. Не приймає рідин з боків окрім інших трубопроводів.\nПротікає менше.
block.liquid-router.description = Приймає рідини з одного напрямку та виводить їх до трьох інших напрямків порівну. Також можна зберігати певну кількість рідини. Корисно для розщеплення рідин від одного джерела до кількох мішеней.
block.liquid-tank.description = Зберігає велику кількість рідини. Використовуйте для створення буферів у ситуаціях з непостійним попитом на матеріали або як гарантію охолодження життєво важливих блоків.
block.liquid-junction.description = Діє як міст для двох каналів перетину. Корисно в ситуаціях, коли два різні трубопроводи перевозять різні рідини в різні місця.
diff --git a/core/assets/bundles/bundle_zh_CN.properties b/core/assets/bundles/bundle_zh_CN.properties
index edb60b0a77..884ac22dd0 100644
--- a/core/assets/bundles/bundle_zh_CN.properties
+++ b/core/assets/bundles/bundle_zh_CN.properties
@@ -12,6 +12,7 @@ link.itch.io.description = itch.io 上的 PC 版下载
link.google-play.description = Google Play 页面
link.f-droid.description = F-Droid 页面
link.wiki.description = Mindustry 官方 Wiki
+link.feathub.description = Suggest new features
linkfail = 打开链接失败!\n网址已复制到您的剪贴板。
screenshot = 屏幕截图已保存到 {0}
screenshot.invalid = 地图太大,可能没有足够的内存用于截图。
@@ -26,6 +27,14 @@ load.image = 图片加载中
load.content = 内容加载中
load.system = 系统加载中
load.mod = 模组加载中
+load.scripts = Scripts
+
+be.update = A new Bleeding Edge build is available:
+be.update.confirm = Download it and restart now?
+be.updating = Updating...
+be.ignore = Ignore
+be.noupdates = No updates found.
+be.check = Check for updates
schematic = 蓝图
schematic.add = 保存蓝图…
@@ -101,17 +110,22 @@ mod.disable = 禁用
mod.delete.error = 无法删除模组。可能文件被占用。
mod.requiresversion = [scarlet]所需的游戏版本:[accent]{0}
mod.missingdependencies = [scarlet]缺少依赖条件:{0}
+mod.erroredcontent = [scarlet]Content Errors
+mod.errors = Errors have occurred loading content.
+mod.noerrorplay = [scarlet]You have mods with errors.[] Either disable the affected mods or fix the errors before playing.
mod.nowdisabled = [scarlet]“{0}”模组缺少依赖条件:[accent] {1}\n[lightgray]需要先下载上述模组。\n此模组现在将自动禁用。
mod.enable = 启用
mod.requiresrestart = 需要重启使模组生效。
mod.reloadrequired = [scarlet]需要重启
mod.import = 导入模组
mod.import.github = 导入 GitHub 模组
+mod.item.remove = This item is part of the[accent] '{0}'[] mod. To remove it, uninstall that mod.
mod.remove.confirm = 此模组将被删除。
mod.author = [LIGHT_GRAY]作者:[] {0}
mod.missing = 此存档包含您最近已更新或者现在未安装的模组。存档可能会损坏。确定要加载它吗?\n[lightgray]模组:\n{0}
mod.preview.missing = 在创意工坊中发布此模组前,您必须添加一则预览图像。\n请将名为[accent] preview.png[] 的图像放入模组文件夹,然后重试。
mod.folder.missing = 只有文件夹形式的模组能在创意工坊上发布。\n若要将任何模组转换为文件夹,只需将其文件解压缩到文件夹中并删除旧压缩包,然后重新启动游戏或重新加载模组。
+mod.scripts.unsupported = Your device does not support mod scripts. Some mods will not function correctly.
about.button = 关于
name = 名字:
@@ -141,6 +155,7 @@ server.kicked.nameEmpty = 无效的名字!
server.kicked.idInUse = 你已在这个服务器上!不允许用两个账号连接。
server.kicked.customClient = 这个服务器不支持自定义版本。请下载官方版本。
server.kicked.gameover = 游戏结束!
+server.kicked.serverRestarting = The server is restarting.
server.versions = 客户端版本:[accent] {0}[]\n服务器版本:[accent] {1}[]
host.info = [accent]创建局域网游戏[]按钮会在[scarlet] 6567 []端口运行一个服务器。[]\n任何在同一个[lightgray] Wi-Fi 或本地网络[]下的人应该都可以在服务器列表中看到你的服务器。\n\n如果你想让别人在任何地方都能通过 IP 地址连接,你需要设定[accent]端口转发[]。\n\n[lightgray]注意:如果某人无法连接到你的局域网游戏,请确保你在防火墙设置里允许了 Mindustry 访问本地网络。
join.info = 您可以输入[accent]服务器的 IP 地址[]来连接,或寻找[accent]本地网络[]中的服务器来连接。\n支持局域网或广域网的多人游戏。\n\n[lightgray]注意:没有全球服务器列表;如果你想通过 IP 地址连接某个服务器,你需要向房主询问 IP 地址。
@@ -497,6 +512,7 @@ settings.language = 语言
settings.data = 游戏数据
settings.reset = 恢复默认设置
settings.rebind = 重新绑定
+settings.resetKey = Reset
settings.controls = 控制
settings.game = 游戏
settings.sound = 声音
@@ -590,6 +606,8 @@ unit.persecond = /秒
unit.timesspeed = 倍 速度
unit.percent = %
unit.items = 物品
+unit.thousands = k
+unit.millions = mil
category.general = 普通
category.power = 能量
category.liquids = 液体
@@ -625,6 +643,7 @@ setting.screenshake.name = 屏幕抖动
setting.effects.name = 显示效果
setting.destroyedblocks.name = 显示摧毁的块
setting.conveyorpathfinding.name = 传送带放置寻路
+setting.coreselect.name = Allow Schematic Cores
setting.sensitivity.name = 控制器灵敏度
setting.saveinterval.name = 自动保存间隔
setting.seconds = {0} 秒
@@ -736,6 +755,7 @@ rules.enemyCheat = 敌人(红队)无限资源
rules.unitdrops = 敌人出生点
rules.unitbuildspeedmultiplier = 单位生产速度倍数
rules.unithealthmultiplier = 单位生命倍数
+rules.blockhealthmultiplier = Block Health Multiplier
rules.playerhealthmultiplier = 玩家生命倍数
rules.playerdamagemultiplier = 玩家伤害倍数
rules.unitdamagemultiplier = 单位伤害倍数
@@ -804,6 +824,7 @@ mech.trident-ship.name = Trident
mech.trident-ship.weapon = 炸弹
mech.glaive-ship.name = Glaive
mech.glaive-ship.weapon = 火焰机枪
+item.corestorable = [lightgray]Storable in Core: {0}
item.explosiveness = [lightgray]爆炸性:{0}%
item.flammability = [lightgray]易燃性:{0}%
item.radioactivity = [lightgray]放射性:{0}%
@@ -957,6 +978,7 @@ block.mechanical-pump.name = 机械泵
block.item-source.name = 无限物品
block.item-void.name = 物品黑洞
block.liquid-source.name = 无限液体
+block.liquid-void.name = Liquid Void
block.power-void.name = 能源黑洞
block.power-source.name = 无限能源
block.unloader.name = 装卸器
@@ -1120,6 +1142,7 @@ block.power-source.description = 无限输出能量。仅限沙盒。
block.item-source.description = 无限输出物品。仅限沙盒。
block.item-void.description = 销毁输入的所有物品。仅限沙盒。
block.liquid-source.description = 无限输出液体。仅限沙盒。
+block.liquid-void.description = Removes any liquids. Sandbox only.
block.copper-wall.description = 廉价的防御方块。\n适合在前几个波次中保护核心和炮塔。
block.copper-wall-large.description = 廉价的防御方块。\n适合在前几个波次中保护核心和炮塔。\n占多个方格。
block.titanium-wall.description = 中等强度的防御方块。\n提供中等强度的防御以抵御敌人。
diff --git a/core/assets/bundles/bundle_zh_TW.properties b/core/assets/bundles/bundle_zh_TW.properties
index 1a50de946d..aad624d1e2 100644
--- a/core/assets/bundles/bundle_zh_TW.properties
+++ b/core/assets/bundles/bundle_zh_TW.properties
@@ -29,6 +29,13 @@ load.system = 系統載入中
load.mod = 模組載入中
load.scripts = 指令檔載入中
+be.update = 有新的尖端版本可用:
+be.update.confirm = 下載並重啟遊戲?
+be.updating = 更新中
+be.ignore = 忽略
+be.noupdates = 沒有新的更新。
+be.check = 檢查是否有新的更新
+
schematic = 藍圖
schematic.add = 儲存藍圖...
schematics = 藍圖
@@ -89,6 +96,7 @@ uploadingpreviewfile = 上傳預覽文件
committingchanges = 提交變更
done = 完成
feature.unsupported = 您的設備不支持此功能。
+
mods.alphainfo = 請記住,模組仍處於Alpha狀態,[scarlet]可能會有很多BUG[].\n向Mindustry GitHub或Discord報告發現的任何問題。
mods.alpha = [accent](Alpha)
mods = 模組
@@ -98,7 +106,6 @@ mods.report = 回報錯誤
mods.openfolder = 開啟模組資料夾
mod.enabled = [lightgray]已啟用
mod.disabled = [scarlet]已禁用
-mod.enable = 啟用
mod.disable = 禁用
mod.delete.error = 無法刪除模組,檔案可能在使用中。
mod.requiresversion = [scarlet]最低遊戲版本要求:[accent]{0}
@@ -107,6 +114,7 @@ mod.erroredcontent = [scarlet]內容錯誤
mod.errors = 載入內容時發生錯誤
mod.noerrorplay = [scarlet]你使用了有錯誤的模組。[] 遊戲前請先禁用相關模組或修正錯誤。
mod.nowdisabled = [scarlet]「{0}」模組缺少必須項目:[accent] {1}\n[lightgray]必須先下載這些模組。\n此模組將被自動禁用。
+mod.enable = 啟用
mod.requiresrestart = 遊戲將立即關閉以套用模組變更。
mod.reloadrequired = [scarlet]需要重新載入
mod.import = 匯入模組
@@ -144,9 +152,10 @@ server.kicked.playerLimit = 該伺服器已滿。請等待一個空位置。
server.kicked.recentKick = 您最近曾被踢出伺服器。\n請稍後再進行連線。
server.kicked.nameInUse = 伺服器中已經\n有人有相同的名稱了。
server.kicked.nameEmpty = 你的名稱必須至少包含一個字母或數字。
-server.kicked.idInUse = 你已經在伺服器中!不允許用兩個帳號。
+server.kicked.idInUse = 你已經在伺服器中!不允許使用兩個帳號。
server.kicked.customClient = 這個伺服器不支持自訂客戶端,請下載官方版本。
server.kicked.gameover = 遊戲結束!
+server.kicked.serverRestarting = 伺服器正在重新啟動。
server.versions = 您的遊戲版本:[accent] {0}[]\n伺服器遊戲版本:[accent] {1}[]
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位址。
@@ -286,6 +295,7 @@ publishing = [accent]發佈中...
publish.confirm = 您確定要發布嗎?\n\n[lightgray]首先確定您同意Workshop EULA,否則您的項目將不會顯示!
publish.error = 發佈項目時出錯: {0}
steam.error = Steam 服務初始化失敗.\n錯誤: {0}
+
editor.brush = 粉刷
editor.openin = 在編輯器中開啟
editor.oregen = 礦石生成
@@ -605,7 +615,6 @@ category.items = 物品
category.crafting = 需求
category.shooting = 射擊
category.optional = 可選的強化
-
setting.landscape.name = 鎖定水平畫面
setting.shadows.name = 陰影
setting.blockreplace.name = 方塊建造建議
@@ -634,6 +643,7 @@ setting.screenshake.name = 畫面抖動
setting.effects.name = 顯示特效
setting.destroyedblocks.name = 顯示被破壞的方塊
setting.conveyorpathfinding.name = 自動輸送帶放置規劃
+setting.coreselect.name = 允許藍圖包含核心
setting.sensitivity.name = 控制器靈敏度
setting.saveinterval.name = 自動存檔間隔
setting.seconds = {0}秒
@@ -671,6 +681,7 @@ category.multiplayer.name = 多人
command.attack = 攻擊
command.rally = 集結
command.retreat = 撤退
+placement.blockselectkeys = \n[lightgray]按鍵:[{0},
keybind.clear_building.name = 清除建築指令
keybind.press = 按一下按鍵...
keybind.press.axis = 按一下軸向或按鍵...
@@ -678,6 +689,8 @@ 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 = X軸翻轉
@@ -710,7 +723,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 = 終端機
@@ -724,7 +736,7 @@ keybind.drop_unit.name = 放下單位
keybind.zoom_minimap.name = 縮放小地圖
mode.help.title = 模式說明
mode.survival.name = 生存
-mode.survival.description = 一般模式。有限的資源與自動來襲的波次。
+mode.survival.description = 一般模式。有限的資源與自動來襲的波次。\n[gray]地圖中需要敵人生成點。
mode.sandbox.name = 沙盒
mode.sandbox.description = 無限的資源與不倒數計時的波次。
mode.editor.name = 編輯
@@ -742,11 +754,12 @@ rules.attack = 攻擊模式
rules.enemyCheat = 電腦無限資源
rules.unitdrops = 單位掉落物
rules.unitbuildspeedmultiplier = 單位建設速度倍數
-rules.unithealthmultiplier = 單位耐久度倍數
-rules.playerhealthmultiplier = 玩家耐久度倍數
+rules.unithealthmultiplier = 單位生命值倍數
+rules.blockhealthmultiplier = 建築物耐久度倍數
+rules.playerhealthmultiplier = 玩家生命值倍數
rules.playerdamagemultiplier = 玩家傷害倍數
rules.unitdamagemultiplier = 單位傷害倍數
-rules.enemycorebuildradius = 敵人核心無建設半徑︰[lightgray](格)
+rules.enemycorebuildradius = 敵人核心禁止建設半徑︰[lightgray](格)
rules.respawntime = 重生時間︰[lightgray](秒)
rules.wavespacing = 波次間距︰[lightgray](秒)
rules.buildcostmultiplier = 建設成本倍數
@@ -790,7 +803,6 @@ liquid.water.name = 水
liquid.slag.name = 熔渣
liquid.oil.name = 原油
liquid.cryofluid.name = 冷凍液
-
mech.alpha-mech.name = 阿爾法
mech.alpha-mech.weapon = 重型機關槍
mech.alpha-mech.ability = 自修復
@@ -813,21 +825,22 @@ 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}
-unit.health = [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.minespeed = [lightgray]採礦速度:{0}%
mech.minepower = [lightgray]採礦能力:{0}
mech.ability = [lightgray]能力:{0}
mech.buildspeed = [lightgray]建造速度: {0}%
liquid.heatcapacity = [lightgray]熱容量:{0}
liquid.viscosity = [lightgray]粘性:{0}
liquid.temperature = [lightgray]溫度:{0}
+
block.sand-boulder.name = 沙礫
block.grass.name = 草
block.salt.name = 鹽
@@ -965,6 +978,7 @@ block.mechanical-pump.name = 機械泵
block.item-source.name = 物品源
block.item-void.name = 物品虛空
block.liquid-source.name = 液體源
+block.liquid-void.name = Liquid Void
block.power-void.name = 能量虛空
block.power-source.name = 無限能量源
block.unloader.name = 裝卸器
@@ -1048,7 +1062,7 @@ unit.reaper.name = 收掠者
tutorial.next = [lightgray]<按下以繼續>
tutorial.intro = 您已進入[scarlet] Mindustry 教學。[]\n使用[[WASD鍵]來移動.\n滾動滾輪來放大縮小畫面.\n從[accent]開採銅礦[]開始吧靠近它,然後在靠近核心的位置點擊銅礦。\n\n[accent]{0}/{1}銅礦
tutorial.intro.mobile = 您已進入[scarlet] Mindustry 教學。[]\n滑動螢幕即可移動。\n[accent]用兩指捏[]來縮放畫面。\n從[accent]開採銅礦[]開始吧。靠近它,然後在靠近核心的位置點擊銅礦。\n\n[accent]{0}/{1}銅礦
-tutorial.drill = 手動挖掘礦石的效率很低。\n[accent]鑽頭[]能夠自動挖掘礦石。\n在銅礦脈上放置一個鑽頭。
+tutorial.drill = 手動挖掘礦石的效率很低。\n[accent]鑽頭[]能夠自動挖掘礦石。\n在銅礦脈上放置一個鑽頭。\n不論在哪個選單,您也可以用快速按下按鍵[accent][[2][]然後[accent][[1][]來選擇鑽頭。\n[accent]滑鼠右擊[]停止建造。
tutorial.drill.mobile = 手動挖掘礦石的效率很低。\n[accent]鑽頭[]能夠自動挖掘礦石。\n點選右下角的鑽頭選項\n選擇[accent]機械鑽頭[].\n通過點擊將其放置在銅礦上,然後按下下方的[accent]確認標誌[]確認您的選擇\n按下[accent] X 按鈕[] 取消放置.
tutorial.blockinfo = 每個方塊都有不同的屬性。每個鑽頭只能開採特定的礦石。\n查看方塊的資訊和屬性,[accent]在建造目錄時按下"?"鈕。[]\n\n[accent]立即訪問機械鑽頭的屬性資料。[]
tutorial.conveyor = [accent]輸送帶[]能夠將物品運輸到核心。\n製作一條從鑽頭開始到核心的輸送帶。
@@ -1064,11 +1078,13 @@ tutorial.breaking.mobile = 方塊經常需要被拆除。\n[accent]選擇拆除
tutorial.withdraw = 在某些情況下,直接從方塊中取出物品是必要的。\n[accent]點擊有物品的方塊[],然後[accent]點擊在方框中的物品[]以將其取出。\n可以通過[accent]點擊或長按[]來取出物品。\n\n[accent]從核心中取出一些銅。[]
tutorial.deposit = 通過將物品從船上拖到目標方塊,將物品放入方塊中。\n\n[accent]將您的銅放到核心中。[]
tutorial.waves = [lightgray]敵人[]來臨。\n\n保護核心抵抗兩波攻擊。\n建造更多的砲塔和鑽頭。開採更多的銅。
+tutorial.waves.mobile = The[lightgray] enemy[] approaches.\n\nDefend the core for 2 waves. Your ship will automatically fire at enemies.\nBuild more turrets and drills. Mine more copper.
tutorial.launch = 一旦您達到特定的波數, 您就可以[accent] 發射核心[],放棄防禦並[accent]獲取核心中的所有資源。[]\n這些資源可以用於研究新科技。\n\n[accent]按下發射按鈕。
+
item.copper.description = 最基本的結構材料。在各種類型的方塊中廣泛使用。
item.lead.description = 一種基本的起始材料。被廣泛用於電子設備和液體運輸方塊。
item.metaglass.description = 一種超高強度的玻璃。廣泛用於液體分配和存儲。
-item.graphite.description = 礦化的碳,用於彈藥和電氣絕緣。
+item.graphite.description = 礦化的碳,用於彈藥和電氣元件。
item.sand.description = 一種常見的材料,廣泛用於冶煉,包括製作合金和作為助熔劑。
item.coal.description = 遠在「播種」事件前就形成的植物化石。一種常見並容易獲得的燃料。
item.titanium.description = 一種罕見的超輕金屬,被廣泛運用於運輸液體、鑽頭和飛行載具。
@@ -1126,6 +1142,7 @@ block.power-source.description = 無限輸出能量。僅限沙盒。
block.item-source.description = 無限輸出物品。僅限沙盒。
block.item-void.description = 不使用能量銷毀任何進入它的物品。僅限沙盒。
block.liquid-source.description = 無限輸出液體。僅限沙盒。
+block.liquid-void.description = Removes any liquids. Sandbox only.
block.copper-wall.description = 一種便宜的防禦方塊。\n用於前幾波防衛核心和砲塔。
block.copper-wall-large.description = 一種便宜的防禦方塊。\n用於前幾波防禦核心和砲塔\n佔據多個方塊。
block.titanium-wall.description = 一個中等強度的防禦方塊。\n提供對敵人的適度保護。
@@ -1230,4 +1247,3 @@ block.omega-mech-pad.description = 改裝現在的船隻,換成龐大、具有
block.javelin-ship-pad.description = 改裝現在的船隻,換成具有閃電武器、強大而快速的攔截機。\n站在上面雙擊機坪以使用它。
block.trident-ship-pad.description = 改裝現在的船隻,換成具有相當不錯裝甲的重型轟炸機。\n站在上面雙擊機坪以使用它。
block.glaive-ship-pad.description = 改裝現在的船隻,換成具有重裝甲的砲艇。\n站在上面雙擊機坪以使用它。
-
diff --git a/core/assets/contributors b/core/assets/contributors
index 09337c529a..afe1bc3b45 100644
--- a/core/assets/contributors
+++ b/core/assets/contributors
@@ -84,3 +84,4 @@ amrsoll
Draco
Quezler
Alicila
+Daniel Dusek
diff --git a/core/assets/fonts/font.ttf b/core/assets/fonts/font.ttf
index 7a32355454..6b585dcbdd 100644
Binary files a/core/assets/fonts/font.ttf and b/core/assets/fonts/font.ttf differ
diff --git a/core/assets/scripts/global.js b/core/assets/scripts/global.js
index 4c234eddb3..22d746b420 100755
--- a/core/assets/scripts/global.js
+++ b/core/assets/scripts/global.js
@@ -25,6 +25,7 @@ importPackage(Packages.arc.func)
importPackage(Packages.arc.graphics)
importPackage(Packages.arc.graphics.g2d)
importPackage(Packages.arc.math)
+importPackage(Packages.arc.math.geom)
importPackage(Packages.arc.scene)
importPackage(Packages.arc.scene.actions)
importPackage(Packages.arc.scene.event)
diff --git a/core/assets/sprites/block_colors.png b/core/assets/sprites/block_colors.png
index b0625e2feb..ec3e5d4a16 100644
Binary files a/core/assets/sprites/block_colors.png and b/core/assets/sprites/block_colors.png differ
diff --git a/core/assets/sprites/sprites.atlas b/core/assets/sprites/sprites.atlas
index 8df3aa2728..cdda675a5a 100644
--- a/core/assets/sprites/sprites.atlas
+++ b/core/assets/sprites/sprites.atlas
@@ -20,7 +20,7 @@ mend-projector-top
index: -1
mender-top
rotate: false
- xy: 1779, 1113
+ xy: 1813, 1113
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -34,35 +34,35 @@ overdrive-projector-top
index: -1
shock-mine
rotate: false
- xy: 1640, 977
+ xy: 1606, 943
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
bridge-arrow
rotate: false
- xy: 1413, 771
+ xy: 1413, 737
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
bridge-conveyor-bridge
rotate: false
- xy: 1413, 635
+ xy: 1413, 601
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
bridge-conveyor-end
rotate: false
- xy: 1413, 601
+ xy: 1413, 567
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
center
rotate: false
- xy: 1413, 567
+ xy: 1413, 533
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -216,266 +216,266 @@ armored-conveyor-4-3
index: -1
conveyor-0-1
rotate: false
- xy: 1402, 1053
+ xy: 1436, 1087
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
conveyor-0-2
rotate: false
- xy: 1436, 1087
+ xy: 1402, 1019
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
conveyor-0-3
rotate: false
- xy: 1402, 1019
+ xy: 1470, 1087
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
conveyor-1-0
rotate: false
- xy: 1470, 1087
+ xy: 1436, 1053
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
conveyor-1-1
rotate: false
- xy: 1436, 1053
+ xy: 1402, 985
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
conveyor-1-2
rotate: false
- xy: 1402, 985
+ xy: 1470, 1053
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
conveyor-1-3
rotate: false
- xy: 1470, 1053
+ xy: 1436, 1019
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
conveyor-2-0
rotate: false
- xy: 1436, 1019
+ xy: 1402, 951
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
conveyor-2-1
rotate: false
- xy: 1402, 951
+ xy: 1470, 1019
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
conveyor-2-2
rotate: false
- xy: 1470, 1019
+ xy: 1436, 985
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
conveyor-2-3
rotate: false
- xy: 1436, 985
+ xy: 1402, 917
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
conveyor-3-0
rotate: false
- xy: 1402, 917
+ xy: 1470, 985
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
conveyor-3-1
rotate: false
- xy: 1470, 985
+ xy: 1436, 951
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
conveyor-3-2
rotate: false
- xy: 1436, 951
+ xy: 1402, 883
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
conveyor-3-3
rotate: false
- xy: 1402, 883
+ xy: 1470, 951
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
conveyor-4-0
rotate: false
- xy: 1470, 951
+ xy: 1436, 917
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
conveyor-4-1
rotate: false
- xy: 1436, 917
+ xy: 1470, 917
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
conveyor-4-2
rotate: false
- xy: 1470, 917
+ xy: 1436, 883
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
conveyor-4-3
rotate: false
- xy: 1436, 883
+ xy: 1470, 883
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
titanium-conveyor-0-1
rotate: false
- xy: 1572, 909
+ xy: 1776, 1079
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
titanium-conveyor-0-2
rotate: false
- xy: 1776, 1079
+ xy: 1742, 1045
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
titanium-conveyor-0-3
rotate: false
- xy: 1742, 1045
+ xy: 1708, 1011
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
titanium-conveyor-1-0
rotate: false
- xy: 1708, 1011
+ xy: 1674, 977
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
titanium-conveyor-1-1
rotate: false
- xy: 1674, 977
+ xy: 1640, 943
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
titanium-conveyor-1-2
rotate: false
- xy: 1640, 943
+ xy: 1606, 909
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
titanium-conveyor-1-3
rotate: false
- xy: 1606, 909
+ xy: 1810, 1079
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
titanium-conveyor-2-0
rotate: false
- xy: 1810, 1079
+ xy: 1776, 1045
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
titanium-conveyor-2-1
rotate: false
- xy: 1776, 1045
+ xy: 1742, 1011
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
titanium-conveyor-2-2
rotate: false
- xy: 1742, 1011
+ xy: 1708, 977
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
titanium-conveyor-2-3
rotate: false
- xy: 1708, 977
+ xy: 1674, 943
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
titanium-conveyor-3-0
rotate: false
- xy: 1674, 943
+ xy: 1640, 909
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
titanium-conveyor-3-1
rotate: false
- xy: 1640, 909
+ xy: 1844, 1079
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
titanium-conveyor-3-2
rotate: false
- xy: 1844, 1079
+ xy: 1810, 1045
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
titanium-conveyor-3-3
rotate: false
- xy: 1810, 1045
+ xy: 1776, 1011
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
titanium-conveyor-4-0
rotate: false
- xy: 1776, 1011
+ xy: 1742, 977
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
titanium-conveyor-4-1
rotate: false
- xy: 1742, 977
+ xy: 1708, 943
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
titanium-conveyor-4-2
rotate: false
- xy: 1708, 943
+ xy: 1674, 909
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
titanium-conveyor-4-3
rotate: false
- xy: 1674, 909
+ xy: 1844, 1045
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -489,21 +489,21 @@ mass-driver-base
index: -1
phase-conveyor-arrow
rotate: false
- xy: 1504, 1045
+ xy: 1538, 1079
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
phase-conveyor-bridge
rotate: false
- xy: 1538, 1079
+ xy: 1504, 1011
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
phase-conveyor-end
rotate: false
- xy: 1504, 1011
+ xy: 1572, 1079
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -685,21 +685,21 @@ block-border
index: -1
block-middle
rotate: false
- xy: 1368, 873
+ xy: 1277, 815
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-select
rotate: false
- xy: 1345, 771
+ xy: 1345, 737
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
conduit-liquid
rotate: false
- xy: 1311, 441
+ xy: 1345, 431
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -825,175 +825,175 @@ rubble-8-1
index: -1
bridge-conduit-arrow
rotate: false
- xy: 1413, 737
+ xy: 1413, 703
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
bridge-conveyor-arrow
rotate: false
- xy: 1413, 737
+ xy: 1413, 703
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
bridge-conduit-bridge
rotate: false
- xy: 1413, 703
+ xy: 1413, 669
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
bridge-conduit-end
rotate: false
- xy: 1413, 669
+ xy: 1413, 635
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
conduit-bottom
rotate: false
- xy: 1413, 499
+ xy: 1413, 465
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
conduit-bottom-0
rotate: false
- xy: 1413, 465
+ xy: 695, 10
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
conduit-bottom-1
rotate: false
- xy: 695, 10
+ xy: 729, 10
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
conduit-bottom-2
rotate: false
- xy: 729, 10
+ xy: 763, 10
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
conduit-bottom-3
rotate: false
- xy: 729, 10
+ xy: 763, 10
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
conduit-bottom-4
rotate: false
- xy: 729, 10
+ xy: 763, 10
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
conduit-bottom-6
rotate: false
- xy: 729, 10
+ xy: 763, 10
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
conduit-bottom-5
rotate: false
- xy: 763, 10
+ xy: 1311, 441
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
conduit-top-0
rotate: false
- xy: 1345, 431
+ xy: 1379, 431
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
conduit-top-1
rotate: false
- xy: 1379, 431
+ xy: 1413, 431
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
conduit-top-2
rotate: false
- xy: 1413, 431
+ xy: 1405, 1121
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
conduit-top-3
rotate: false
- xy: 1405, 1121
+ xy: 1439, 1121
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
pulse-conduit-top-3
rotate: false
- xy: 1405, 1121
+ xy: 1439, 1121
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
conduit-top-4
rotate: false
- xy: 1439, 1121
+ xy: 1473, 1121
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
conduit-top-5
rotate: false
- xy: 1473, 1121
+ xy: 1402, 1087
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
conduit-top-6
rotate: false
- xy: 1402, 1087
+ xy: 1402, 1053
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
liquid-overflow-gate
rotate: false
- xy: 1847, 1147
+ xy: 1507, 1113
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
liquid-overflow-gate-top
rotate: false
- xy: 1507, 1113
+ xy: 1541, 1113
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
liquid-router-bottom
rotate: false
- xy: 1541, 1113
+ xy: 1575, 1113
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
liquid-router-liquid
rotate: false
- xy: 1575, 1113
+ xy: 1609, 1113
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
liquid-router-top
rotate: false
- xy: 1609, 1113
+ xy: 1643, 1113
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -1021,119 +1021,119 @@ liquid-tank-top
index: -1
phase-conduit-arrow
rotate: false
- xy: 1813, 1113
+ xy: 1847, 1113
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
phase-conduit-bridge
rotate: false
- xy: 1847, 1113
+ xy: 1504, 1079
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
phase-conduit-end
rotate: false
- xy: 1504, 1079
+ xy: 1504, 1045
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
plated-conduit-cap
rotate: false
- xy: 1572, 1079
+ xy: 1538, 1045
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
plated-conduit-top-0
rotate: false
- xy: 1538, 1045
+ xy: 1504, 977
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
plated-conduit-top-1
rotate: false
- xy: 1504, 977
+ xy: 1606, 1079
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
plated-conduit-top-2
rotate: false
- xy: 1606, 1079
+ xy: 1572, 1045
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
plated-conduit-top-3
rotate: false
- xy: 1572, 1045
+ xy: 1538, 1011
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
plated-conduit-top-4
rotate: false
- xy: 1538, 1011
+ xy: 1504, 943
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
plated-conduit-top-5
rotate: false
- xy: 1504, 943
+ xy: 1640, 1079
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
plated-conduit-top-6
rotate: false
- xy: 1640, 1079
+ xy: 1606, 1045
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
pulse-conduit-top-0
rotate: false
- xy: 1572, 1011
+ xy: 1538, 977
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
pulse-conduit-top-1
rotate: false
- xy: 1538, 977
+ xy: 1504, 909
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
pulse-conduit-top-2
rotate: false
- xy: 1504, 909
+ xy: 1674, 1079
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
pulse-conduit-top-4
rotate: false
- xy: 1674, 1079
+ xy: 1640, 1045
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
pulse-conduit-top-5
rotate: false
- xy: 1640, 1045
+ xy: 1606, 1011
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
pulse-conduit-top-6
rotate: false
- xy: 1606, 1011
+ xy: 1572, 977
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -1182,7 +1182,7 @@ block-battery-large-full
index: -1
combustion-generator-top
rotate: false
- xy: 1413, 533
+ xy: 1413, 499
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -1203,14 +1203,14 @@ differential-generator-top
index: -1
diode-arrow
rotate: false
- xy: 1447, 645
+ xy: 1447, 611
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
illuminator-top
rotate: false
- xy: 1447, 509
+ xy: 1447, 475
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -1266,14 +1266,14 @@ impact-reactor-plasma-3
index: -1
power-source
rotate: false
- xy: 1606, 1045
+ xy: 1572, 1011
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
rtg-generator-top
rotate: false
- xy: 1606, 977
+ xy: 1572, 943
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -1420,21 +1420,21 @@ plastanium-compressor-top
index: -1
pulverizer
rotate: false
- xy: 1572, 977
+ xy: 1538, 943
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
pulverizer-rotator
rotate: false
- xy: 1538, 943
+ xy: 1708, 1079
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
pump-liquid
rotate: false
- xy: 1708, 1079
+ xy: 1674, 1045
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -1490,7 +1490,7 @@ spore-press-top
index: -1
unloader-center
rotate: false
- xy: 1810, 1011
+ xy: 1776, 977
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -1581,7 +1581,7 @@ salvo-panel-right
index: -1
scorch-heat
rotate: false
- xy: 1538, 909
+ xy: 1742, 1079
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -1707,7 +1707,7 @@ rally-point
index: -1
repair-point-base
rotate: false
- xy: 1640, 1011
+ xy: 1606, 977
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -1756,14 +1756,14 @@ door-large-open
index: -1
door-open
rotate: false
- xy: 1447, 611
+ xy: 1447, 577
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
insulator-wall
rotate: false
- xy: 1447, 475
+ xy: 1447, 441
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -1819,28 +1819,28 @@ scrap-wall-large4
index: -1
scrap-wall2
rotate: false
- xy: 1742, 1079
+ xy: 1708, 1045
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
scrap-wall3
rotate: false
- xy: 1708, 1045
+ xy: 1674, 1011
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
scrap-wall4
rotate: false
- xy: 1674, 1011
+ xy: 1640, 977
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
scrap-wall5
rotate: false
- xy: 1674, 1011
+ xy: 1640, 977
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -1994,7 +1994,7 @@ shell-back
index: -1
shot
rotate: false
- xy: 1606, 943
+ xy: 1572, 909
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -2008,7 +2008,7 @@ transfer
index: -1
transfer-arrow
rotate: false
- xy: 1844, 1045
+ xy: 1810, 1011
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -2797,13 +2797,27 @@ block-liquid-tank-full
orig: 96, 96
offset: 0, 0
index: -1
-block-magmarock-full
+block-liquid-void-full
rotate: false
xy: 1262, 897
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
+liquid-void
+ rotate: false
+ xy: 1262, 897
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-magmarock-full
+ rotate: false
+ xy: 1262, 863
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
block-mass-driver-full
rotate: false
xy: 423, 44
@@ -2820,14 +2834,14 @@ block-mechanical-drill-full
index: -1
block-mechanical-pump-full
rotate: false
- xy: 1262, 863
+ xy: 1300, 917
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
mechanical-pump
rotate: false
- xy: 1262, 863
+ xy: 1300, 917
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -2841,14 +2855,14 @@ block-meltdown-full
index: -1
block-melter-full
rotate: false
- xy: 1300, 917
+ xy: 1334, 925
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
melter
rotate: false
- xy: 1300, 917
+ xy: 1334, 925
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -2869,70 +2883,70 @@ mend-projector
index: -1
block-mender-full
rotate: false
- xy: 1334, 925
+ xy: 1368, 941
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
mender
rotate: false
- xy: 1334, 925
+ xy: 1368, 941
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-message-full
rotate: false
- xy: 1368, 941
+ xy: 1296, 883
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
message
rotate: false
- xy: 1368, 941
+ xy: 1296, 883
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-metal-floor-2-full
rotate: false
- xy: 1296, 883
+ xy: 1296, 849
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-metal-floor-3-full
rotate: false
- xy: 1296, 849
+ xy: 1368, 907
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-metal-floor-5-full
rotate: false
- xy: 1368, 907
+ xy: 1334, 891
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-metal-floor-damaged-full
rotate: false
- xy: 1334, 891
+ xy: 1330, 857
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-metal-floor-full
rotate: false
- xy: 1330, 857
+ xy: 1368, 873
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-moss-full
rotate: false
- xy: 1277, 815
+ xy: 1277, 781
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -2974,14 +2988,14 @@ omega-mech-pad
index: -1
block-ore-coal-full
rotate: false
- xy: 1277, 781
+ xy: 1277, 747
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-ore-coal-medium
rotate: false
- xy: 1277, 781
+ xy: 1277, 747
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -3016,14 +3030,14 @@ block-ore-coal-xlarge
index: -1
block-ore-copper-full
rotate: false
- xy: 1277, 747
+ xy: 1277, 713
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-ore-copper-medium
rotate: false
- xy: 1277, 747
+ xy: 1277, 713
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -3058,14 +3072,14 @@ block-ore-copper-xlarge
index: -1
block-ore-lead-full
rotate: false
- xy: 1277, 713
+ xy: 1277, 679
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-ore-lead-medium
rotate: false
- xy: 1277, 713
+ xy: 1277, 679
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -3100,14 +3114,14 @@ block-ore-lead-xlarge
index: -1
block-ore-scrap-full
rotate: false
- xy: 1277, 679
+ xy: 1277, 645
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-ore-scrap-medium
rotate: false
- xy: 1277, 679
+ xy: 1277, 645
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -3142,14 +3156,14 @@ block-ore-scrap-xlarge
index: -1
block-ore-thorium-full
rotate: false
- xy: 1277, 645
+ xy: 1277, 611
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-ore-thorium-medium
rotate: false
- xy: 1277, 645
+ xy: 1277, 611
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -3184,14 +3198,14 @@ block-ore-thorium-xlarge
index: -1
block-ore-titanium-full
rotate: false
- xy: 1277, 611
+ xy: 1277, 577
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-ore-titanium-medium
rotate: false
- xy: 1277, 611
+ xy: 1277, 577
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -3240,21 +3254,21 @@ overdrive-projector
index: -1
block-overflow-gate-full
rotate: false
- xy: 1277, 577
+ xy: 1277, 543
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
overflow-gate
rotate: false
- xy: 1277, 577
+ xy: 1277, 543
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-pebbles-full
rotate: false
- xy: 1277, 543
+ xy: 1277, 509
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -3268,42 +3282,42 @@ block-phantom-factory-full
index: -1
block-phase-conduit-full
rotate: false
- xy: 1277, 509
+ xy: 1277, 475
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
phase-conduit
rotate: false
- xy: 1277, 509
+ xy: 1277, 475
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-phase-conveyor-full
rotate: false
- xy: 1277, 475
+ xy: 1311, 815
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
phase-conveyor
rotate: false
- xy: 1277, 475
+ xy: 1311, 815
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-phase-wall-full
rotate: false
- xy: 1311, 815
+ xy: 1311, 781
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
phase-wall
rotate: false
- xy: 1311, 815
+ xy: 1311, 781
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -3352,14 +3366,14 @@ plastanium-compressor
index: -1
block-plastanium-wall-full
rotate: false
- xy: 1311, 781
+ xy: 1311, 747
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
plastanium-wall
rotate: false
- xy: 1311, 781
+ xy: 1311, 747
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -3380,7 +3394,7 @@ plastanium-wall-large
index: -1
block-plated-conduit-full
rotate: false
- xy: 1311, 747
+ xy: 1311, 713
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -3394,14 +3408,14 @@ block-pneumatic-drill-full
index: -1
block-power-node-full
rotate: false
- xy: 1311, 713
+ xy: 1311, 679
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
power-node
rotate: false
- xy: 1311, 713
+ xy: 1311, 679
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -3422,35 +3436,35 @@ power-node-large
index: -1
block-power-source-full
rotate: false
- xy: 1311, 679
+ xy: 1311, 645
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-power-void-full
rotate: false
- xy: 1311, 645
+ xy: 1311, 611
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
power-void
rotate: false
- xy: 1311, 645
+ xy: 1311, 611
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-pulse-conduit-full
rotate: false
- xy: 1311, 611
+ xy: 1311, 577
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-pulverizer-full
rotate: false
- xy: 1311, 577
+ xy: 1311, 543
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -3471,7 +3485,7 @@ pyratite-mixer
index: -1
block-repair-point-full
rotate: false
- xy: 1311, 543
+ xy: 1311, 509
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -3499,7 +3513,7 @@ block-rock-full
index: -1
block-rocks-full
rotate: false
- xy: 1311, 509
+ xy: 1311, 475
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -3520,14 +3534,14 @@ rotary-pump
index: -1
block-router-full
rotate: false
- xy: 1311, 475
+ xy: 1405, 1189
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
router
rotate: false
- xy: 1311, 475
+ xy: 1405, 1189
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -3548,14 +3562,14 @@ rtg-generator
index: -1
block-salt-full
rotate: false
- xy: 1405, 1189
+ xy: 1405, 1155
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-saltrocks-full
rotate: false
- xy: 1405, 1155
+ xy: 1439, 1189
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -3569,28 +3583,28 @@ block-salvo-full
index: -1
block-sand-boulder-full
rotate: false
- xy: 1439, 1189
+ xy: 1439, 1155
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-sand-full
rotate: false
- xy: 1439, 1155
+ xy: 1473, 1189
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-sand-water-full
rotate: false
- xy: 1473, 1189
+ xy: 1473, 1155
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-sandrocks-full
rotate: false
- xy: 1473, 1155
+ xy: 1364, 839
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -3604,21 +3618,21 @@ block-scatter-full
index: -1
block-scorch-full
rotate: false
- xy: 1364, 839
+ xy: 1345, 805
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-scrap-wall-full
rotate: false
- xy: 1345, 805
+ xy: 1345, 771
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
scrap-wall1
rotate: false
- xy: 1345, 805
+ xy: 1345, 771
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -3674,35 +3688,35 @@ separator
index: -1
block-shale-boulder-full
rotate: false
- xy: 1345, 737
+ xy: 1345, 703
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-shale-full
rotate: false
- xy: 1345, 703
+ xy: 1345, 669
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-shalerocks-full
rotate: false
- xy: 1345, 669
+ xy: 1345, 635
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-shock-mine-full
rotate: false
- xy: 1345, 635
+ xy: 1345, 601
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-shrubs-full
rotate: false
- xy: 1345, 601
+ xy: 1345, 567
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -3723,7 +3737,7 @@ silicon-smelter
index: -1
block-snow-full
rotate: false
- xy: 1345, 567
+ xy: 1345, 533
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -3744,21 +3758,21 @@ block-snowrock-full
index: -1
block-snowrocks-full
rotate: false
- xy: 1345, 533
+ xy: 1345, 499
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-solar-panel-full
rotate: false
- xy: 1345, 499
+ xy: 1345, 465
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
solar-panel
rotate: false
- xy: 1345, 499
+ xy: 1345, 465
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -3779,21 +3793,21 @@ solar-panel-large
index: -1
block-sorter-full
rotate: false
- xy: 1345, 465
+ xy: 1379, 805
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
sorter
rotate: false
- xy: 1345, 465
+ xy: 1379, 805
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-spawn-full
rotate: false
- xy: 1379, 805
+ xy: 1379, 771
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -3821,7 +3835,7 @@ block-spore-cluster-full
index: -1
block-spore-moss-full
rotate: false
- xy: 1379, 771
+ xy: 1379, 737
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -3842,14 +3856,14 @@ block-spore-press-full
index: -1
block-sporerocks-full
rotate: false
- xy: 1379, 737
+ xy: 1379, 703
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-stone-full
rotate: false
- xy: 1379, 703
+ xy: 1379, 669
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -3870,14 +3884,14 @@ surge-tower
index: -1
block-surge-wall-full
rotate: false
- xy: 1379, 669
+ xy: 1379, 635
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
surge-wall
rotate: false
- xy: 1379, 669
+ xy: 1379, 635
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -3905,14 +3919,14 @@ block-swarmer-full
index: -1
block-tainted-water-full
rotate: false
- xy: 1379, 635
+ xy: 1379, 601
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-tar-full
rotate: false
- xy: 1379, 601
+ xy: 1379, 567
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -3933,7 +3947,7 @@ tau-mech-pad
index: -1
block-tendrils-full
rotate: false
- xy: 1379, 567
+ xy: 1379, 533
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -3982,14 +3996,14 @@ thorium-reactor
index: -1
block-thorium-wall-full
rotate: false
- xy: 1379, 533
+ xy: 1379, 499
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
thorium-wall
rotate: false
- xy: 1379, 533
+ xy: 1379, 499
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -4031,28 +4045,28 @@ block-titan-factory-full
index: -1
block-titanium-conveyor-full
rotate: false
- xy: 1379, 499
+ xy: 1379, 465
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
titanium-conveyor-0-0
rotate: false
- xy: 1379, 499
+ xy: 1379, 465
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-titanium-wall-full
rotate: false
- xy: 1379, 465
+ xy: 1398, 839
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
titanium-wall
rotate: false
- xy: 1379, 465
+ xy: 1398, 839
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -4101,14 +4115,14 @@ turbine-generator
index: -1
block-unloader-full
rotate: false
- xy: 1398, 839
+ xy: 1413, 805
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
unloader
rotate: false
- xy: 1398, 839
+ xy: 1413, 805
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -4136,7 +4150,7 @@ block-water-extractor-full
index: -1
block-water-full
rotate: false
- xy: 1413, 805
+ xy: 1413, 771
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -4171,56 +4185,56 @@ block-wraith-factory-full
index: -1
cracks-1-0
rotate: false
- xy: 1470, 883
+ xy: 1432, 849
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
cracks-1-1
rotate: false
- xy: 1432, 849
+ xy: 1466, 849
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
cracks-1-2
rotate: false
- xy: 1466, 849
+ xy: 1447, 815
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
cracks-1-3
rotate: false
- xy: 1447, 815
+ xy: 1447, 781
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
cracks-1-4
rotate: false
- xy: 1447, 781
+ xy: 1447, 747
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
cracks-1-5
rotate: false
- xy: 1447, 747
+ xy: 1447, 713
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
cracks-1-6
rotate: false
- xy: 1447, 713
+ xy: 1447, 679
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
cracks-1-7
rotate: false
- xy: 1447, 679
+ xy: 1447, 645
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -4458,7 +4472,7 @@ cyclone
index: -1
duo
rotate: false
- xy: 1447, 577
+ xy: 1447, 543
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -4472,7 +4486,7 @@ fuse
index: -1
hail
rotate: false
- xy: 1447, 543
+ xy: 1447, 509
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -4486,14 +4500,14 @@ item-blast-compound-large
index: -1
item-blast-compound-medium
rotate: false
- xy: 1481, 815
+ xy: 1481, 781
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-blast-compound-small
rotate: false
- xy: 1776, 985
+ xy: 1742, 951
size: 24, 24
orig: 24, 24
offset: 0, 0
@@ -4521,14 +4535,14 @@ item-coal-large
index: -1
item-coal-medium
rotate: false
- xy: 1481, 747
+ xy: 1481, 713
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-coal-small
rotate: false
- xy: 1742, 951
+ xy: 1708, 917
size: 24, 24
orig: 24, 24
offset: 0, 0
@@ -4556,14 +4570,14 @@ item-copper-large
index: -1
item-copper-medium
rotate: false
- xy: 1481, 679
+ xy: 1481, 645
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-copper-small
rotate: false
- xy: 1708, 917
+ xy: 1844, 1019
size: 24, 24
orig: 24, 24
offset: 0, 0
@@ -4591,14 +4605,14 @@ item-graphite-large
index: -1
item-graphite-medium
rotate: false
- xy: 1481, 611
+ xy: 1481, 577
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-graphite-small
rotate: false
- xy: 1844, 1019
+ xy: 1810, 985
size: 24, 24
orig: 24, 24
offset: 0, 0
@@ -4626,7 +4640,7 @@ item-lead-large
index: -1
item-lead-medium
rotate: false
- xy: 1481, 543
+ xy: 1481, 509
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -4661,7 +4675,7 @@ item-metaglass-large
index: -1
item-metaglass-medium
rotate: false
- xy: 1481, 475
+ xy: 1481, 441
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -4696,7 +4710,7 @@ item-phase-fabric-large
index: -1
item-phase-fabric-medium
rotate: false
- xy: 1500, 849
+ xy: 1515, 815
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -4731,7 +4745,7 @@ item-plastanium-large
index: -1
item-plastanium-medium
rotate: false
- xy: 1515, 781
+ xy: 1515, 747
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -4766,7 +4780,7 @@ item-pyratite-large
index: -1
item-pyratite-medium
rotate: false
- xy: 1515, 713
+ xy: 1515, 679
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -4801,7 +4815,7 @@ item-sand-large
index: -1
item-sand-medium
rotate: false
- xy: 1515, 645
+ xy: 1515, 611
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -4836,14 +4850,14 @@ item-scrap-large
index: -1
item-scrap-medium
rotate: false
- xy: 1515, 577
+ xy: 1515, 543
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-scrap-small
rotate: false
- xy: 1802, 985
+ xy: 1768, 951
size: 24, 24
orig: 24, 24
offset: 0, 0
@@ -4871,7 +4885,7 @@ item-silicon-large
index: -1
item-silicon-medium
rotate: false
- xy: 1515, 509
+ xy: 1515, 475
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -4906,7 +4920,7 @@ item-spore-pod-large
index: -1
item-spore-pod-medium
rotate: false
- xy: 1515, 441
+ xy: 1507, 1147
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -4941,7 +4955,7 @@ item-surge-alloy-large
index: -1
item-surge-alloy-medium
rotate: false
- xy: 1541, 1147
+ xy: 1575, 1147
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -4976,7 +4990,7 @@ item-thorium-large
index: -1
item-thorium-medium
rotate: false
- xy: 1609, 1147
+ xy: 1643, 1147
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -5011,7 +5025,7 @@ item-titanium-large
index: -1
item-titanium-medium
rotate: false
- xy: 1677, 1147
+ xy: 1711, 1147
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -5053,7 +5067,7 @@ liquid-cryofluid-large
index: -1
liquid-cryofluid-medium
rotate: false
- xy: 1745, 1147
+ xy: 1779, 1147
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -5088,7 +5102,7 @@ liquid-oil-large
index: -1
liquid-oil-medium
rotate: false
- xy: 1813, 1147
+ xy: 1847, 1147
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -5123,7 +5137,7 @@ liquid-slag-large
index: -1
liquid-slag-medium
rotate: false
- xy: 1677, 1113
+ xy: 1711, 1113
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -5158,7 +5172,7 @@ liquid-water-large
index: -1
liquid-water-medium
rotate: false
- xy: 1745, 1113
+ xy: 1779, 1113
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -5263,7 +5277,7 @@ meltdown
index: -1
repair-point
rotate: false
- xy: 1674, 1045
+ xy: 1640, 1011
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -5291,7 +5305,7 @@ scatter
index: -1
scorch
rotate: false
- xy: 1572, 943
+ xy: 1538, 909
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -5368,140 +5382,140 @@ wave
index: -1
item-blast-compound
rotate: false
- xy: 1447, 441
+ xy: 1481, 815
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-coal
rotate: false
- xy: 1481, 781
+ xy: 1481, 747
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-copper
rotate: false
- xy: 1481, 713
+ xy: 1481, 679
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-graphite
rotate: false
- xy: 1481, 645
+ xy: 1481, 611
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-lead
rotate: false
- xy: 1481, 577
+ xy: 1481, 543
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-metaglass
rotate: false
- xy: 1481, 509
+ xy: 1481, 475
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-phase-fabric
rotate: false
- xy: 1481, 441
+ xy: 1500, 849
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-plastanium
rotate: false
- xy: 1515, 815
+ xy: 1515, 781
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-pyratite
rotate: false
- xy: 1515, 747
+ xy: 1515, 713
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-sand
rotate: false
- xy: 1515, 679
+ xy: 1515, 645
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-scrap
rotate: false
- xy: 1515, 611
+ xy: 1515, 577
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-silicon
rotate: false
- xy: 1515, 543
+ xy: 1515, 509
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-spore-pod
rotate: false
- xy: 1515, 475
+ xy: 1515, 441
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-surge-alloy
rotate: false
- xy: 1507, 1147
+ xy: 1541, 1147
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-thorium
rotate: false
- xy: 1575, 1147
+ xy: 1609, 1147
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
item-titanium
rotate: false
- xy: 1643, 1147
+ xy: 1677, 1147
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
liquid-cryofluid
rotate: false
- xy: 1711, 1147
+ xy: 1745, 1147
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
liquid-oil
rotate: false
- xy: 1779, 1147
+ xy: 1813, 1147
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
liquid-slag
rotate: false
- xy: 1643, 1113
+ xy: 1677, 1113
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
liquid-water
rotate: false
- xy: 1711, 1113
+ xy: 1745, 1113
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -8731,6 +8745,13 @@ liquid-tank-icon-editor
orig: 96, 96
offset: 0, 0
index: -1
+liquid-void-icon-editor
+ rotate: false
+ xy: 1923, 815
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
mass-driver-icon-editor
rotate: false
xy: 1823, 915
@@ -8747,7 +8768,7 @@ mechanical-drill-icon-editor
index: -1
mechanical-pump-icon-editor
rotate: false
- xy: 1923, 815
+ xy: 1957, 815
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -8761,7 +8782,7 @@ meltdown-icon-editor
index: -1
melter-icon-editor
rotate: false
- xy: 1957, 815
+ xy: 717, 781
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -8775,14 +8796,14 @@ mend-projector-icon-editor
index: -1
mender-icon-editor
rotate: false
- xy: 717, 781
+ xy: 717, 747
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
message-icon-editor
rotate: false
- xy: 717, 747
+ xy: 751, 781
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -8817,14 +8838,14 @@ overdrive-projector-icon-editor
index: -1
overflow-gate-icon-editor
rotate: false
- xy: 751, 781
+ xy: 717, 713
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
pebbles-icon-editor
rotate: false
- xy: 717, 713
+ xy: 785, 781
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -8838,21 +8859,21 @@ phantom-factory-icon-editor
index: -1
phase-conduit-icon-editor
rotate: false
- xy: 785, 781
+ xy: 751, 747
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
phase-conveyor-icon-editor
rotate: false
- xy: 751, 747
+ xy: 717, 679
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
phase-wall-icon-editor
rotate: false
- xy: 717, 679
+ xy: 819, 781
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -8887,7 +8908,7 @@ plastanium-compressor-icon-editor
index: -1
plastanium-wall-icon-editor
rotate: false
- xy: 819, 781
+ xy: 785, 747
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -8901,7 +8922,7 @@ plastanium-wall-large-icon-editor
index: -1
plated-conduit-icon-editor
rotate: false
- xy: 785, 747
+ xy: 751, 713
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -8915,7 +8936,7 @@ pneumatic-drill-icon-editor
index: -1
power-node-icon-editor
rotate: false
- xy: 751, 713
+ xy: 717, 645
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -8929,28 +8950,28 @@ power-node-large-icon-editor
index: -1
power-source-icon-editor
rotate: false
- xy: 717, 645
+ xy: 853, 781
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
power-void-icon-editor
rotate: false
- xy: 853, 781
+ xy: 819, 747
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
pulse-conduit-icon-editor
rotate: false
- xy: 819, 747
+ xy: 785, 713
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
pulverizer-icon-editor
rotate: false
- xy: 785, 713
+ xy: 751, 679
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -8964,7 +8985,7 @@ pyratite-mixer-icon-editor
index: -1
repair-point-icon-editor
rotate: false
- xy: 751, 679
+ xy: 717, 611
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -8992,7 +9013,7 @@ rock-icon-editor
index: -1
rocks-icon-editor
rotate: false
- xy: 717, 611
+ xy: 887, 781
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -9006,7 +9027,7 @@ rotary-pump-icon-editor
index: -1
router-icon-editor
rotate: false
- xy: 887, 781
+ xy: 853, 747
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -9020,7 +9041,7 @@ rtg-generator-icon-editor
index: -1
saltrocks-icon-editor
rotate: false
- xy: 853, 747
+ xy: 819, 713
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -9034,14 +9055,14 @@ salvo-icon-editor
index: -1
sand-boulder-icon-editor
rotate: false
- xy: 819, 713
+ xy: 785, 679
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
sandrocks-icon-editor
rotate: false
- xy: 785, 679
+ xy: 751, 645
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -9055,7 +9076,7 @@ scatter-icon-editor
index: -1
scorch-icon-editor
rotate: false
- xy: 751, 645
+ xy: 717, 577
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -9076,7 +9097,7 @@ scrap-wall-huge-icon-editor
index: -1
scrap-wall-icon-editor
rotate: false
- xy: 717, 577
+ xy: 921, 781
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -9097,28 +9118,28 @@ separator-icon-editor
index: -1
shale-boulder-icon-editor
rotate: false
- xy: 921, 781
+ xy: 887, 747
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
shalerocks-icon-editor
rotate: false
- xy: 887, 747
+ xy: 853, 713
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
shock-mine-icon-editor
rotate: false
- xy: 853, 713
+ xy: 819, 679
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
shrubs-icon-editor
rotate: false
- xy: 819, 679
+ xy: 785, 645
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -9132,7 +9153,7 @@ silicon-smelter-icon-editor
index: -1
snow-icon-editor
rotate: false
- xy: 785, 645
+ xy: 751, 611
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -9153,14 +9174,14 @@ snowrock-icon-editor
index: -1
snowrocks-icon-editor
rotate: false
- xy: 751, 611
+ xy: 717, 543
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
solar-panel-icon-editor
rotate: false
- xy: 717, 543
+ xy: 955, 781
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -9174,14 +9195,14 @@ solar-panel-large-icon-editor
index: -1
sorter-icon-editor
rotate: false
- xy: 955, 781
+ xy: 921, 747
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
spawn-icon-editor
rotate: false
- xy: 921, 747
+ xy: 887, 713
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -9223,7 +9244,7 @@ spore-press-icon-editor
index: -1
sporerocks-icon-editor
rotate: false
- xy: 887, 713
+ xy: 853, 679
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -9237,7 +9258,7 @@ surge-tower-icon-editor
index: -1
surge-wall-icon-editor
rotate: false
- xy: 853, 679
+ xy: 819, 645
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -9265,7 +9286,7 @@ tau-mech-pad-icon-editor
index: -1
tendrils-icon-editor
rotate: false
- xy: 819, 645
+ xy: 785, 611
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -9293,7 +9314,7 @@ thorium-reactor-icon-editor
index: -1
thorium-wall-icon-editor
rotate: false
- xy: 785, 611
+ xy: 751, 577
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -9321,14 +9342,14 @@ titan-factory-icon-editor
index: -1
titanium-conveyor-icon-editor
rotate: false
- xy: 751, 577
+ xy: 717, 509
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
titanium-wall-icon-editor
rotate: false
- xy: 717, 509
+ xy: 989, 781
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -9356,7 +9377,7 @@ turbine-generator-icon-editor
index: -1
unloader-icon-editor
rotate: false
- xy: 989, 781
+ xy: 955, 747
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -9508,7 +9529,7 @@ alpha-bg
index: -1
bar
rotate: false
- xy: 1500, 131
+ xy: 1545, 225
size: 27, 36
split: 9, 9, 9, 9
orig: 27, 36
@@ -9531,7 +9552,7 @@ block-alloy-smelter-large
index: -1
block-alloy-smelter-medium
rotate: false
- xy: 1223, 647
+ xy: 901, 88
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -9566,21 +9587,21 @@ block-alpha-mech-pad-large
index: -1
block-alpha-mech-pad-medium
rotate: false
- xy: 1257, 647
+ xy: 901, 54
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-alpha-mech-pad-small
rotate: false
- xy: 80, 2
+ xy: 2021, 915
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-alpha-mech-pad-tiny
rotate: false
- xy: 301, 1
+ xy: 1553, 103
size: 16, 16
orig: 16, 16
offset: 0, 0
@@ -9594,28 +9615,28 @@ block-alpha-mech-pad-xlarge
index: -1
block-arc-large
rotate: false
- xy: 909, 933
+ xy: 959, 933
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-arc-medium
rotate: false
- xy: 1291, 647
+ xy: 901, 20
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-arc-small
rotate: false
- xy: 1571, 290
+ xy: 80, 2
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-arc-tiny
rotate: false
- xy: 319, 1
+ xy: 301, 1
size: 16, 16
orig: 16, 16
offset: 0, 0
@@ -9629,28 +9650,28 @@ block-arc-xlarge
index: -1
block-armored-conveyor-large
rotate: false
- xy: 951, 933
+ xy: 1001, 933
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-armored-conveyor-medium
rotate: false
- xy: 1325, 647
+ xy: 939, 552
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-armored-conveyor-small
rotate: false
- xy: 106, 2
+ xy: 1417, 11
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-armored-conveyor-tiny
rotate: false
- xy: 839, 928
+ xy: 319, 1
size: 16, 16
orig: 16, 16
offset: 0, 0
@@ -9664,35 +9685,35 @@ block-armored-conveyor-xlarge
index: -1
block-battery-large
rotate: false
- xy: 993, 933
+ xy: 1043, 933
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-battery-large-large
rotate: false
- xy: 1035, 933
+ xy: 1085, 933
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-battery-large-medium
rotate: false
- xy: 1359, 647
+ xy: 939, 518
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-battery-large-small
rotate: false
- xy: 1571, 264
+ xy: 106, 2
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-battery-large-tiny
rotate: false
- xy: 2031, 705
+ xy: 839, 928
size: 16, 16
orig: 16, 16
offset: 0, 0
@@ -9706,21 +9727,21 @@ block-battery-large-xlarge
index: -1
block-battery-medium
rotate: false
- xy: 1393, 647
+ xy: 939, 484
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-battery-small
rotate: false
- xy: 2021, 915
+ xy: 1576, 256
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-battery-tiny
rotate: false
- xy: 2031, 687
+ xy: 131, 540
size: 16, 16
orig: 16, 16
offset: 0, 0
@@ -9734,28 +9755,28 @@ block-battery-xlarge
index: -1
block-blast-drill-large
rotate: false
- xy: 1077, 933
+ xy: 1127, 933
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-blast-drill-medium
rotate: false
- xy: 1427, 647
+ xy: 939, 450
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-blast-drill-small
rotate: false
- xy: 1571, 238
+ xy: 1574, 230
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-blast-drill-tiny
rotate: false
- xy: 2031, 669
+ xy: 309, 698
size: 16, 16
orig: 16, 16
offset: 0, 0
@@ -9769,14 +9790,14 @@ block-blast-drill-xlarge
index: -1
block-blast-mixer-large
rotate: false
- xy: 1119, 933
+ xy: 1169, 933
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-blast-mixer-medium
rotate: false
- xy: 1461, 647
+ xy: 939, 416
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -9790,7 +9811,7 @@ block-blast-mixer-small
index: -1
block-blast-mixer-tiny
rotate: false
- xy: 2031, 651
+ xy: 331, 598
size: 16, 16
orig: 16, 16
offset: 0, 0
@@ -9804,14 +9825,14 @@ block-blast-mixer-xlarge
index: -1
block-bridge-conduit-large
rotate: false
- xy: 1161, 933
+ xy: 1211, 933
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-bridge-conduit-medium
rotate: false
- xy: 1495, 647
+ xy: 939, 382
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -9825,7 +9846,7 @@ block-bridge-conduit-small
index: -1
block-bridge-conduit-tiny
rotate: false
- xy: 1361, 1
+ xy: 859, 697
size: 16, 16
orig: 16, 16
offset: 0, 0
@@ -9839,14 +9860,14 @@ block-bridge-conduit-xlarge
index: -1
block-bridge-conveyor-large
rotate: false
- xy: 1203, 933
+ xy: 1253, 933
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-bridge-conveyor-medium
rotate: false
- xy: 1529, 647
+ xy: 939, 348
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -9860,7 +9881,7 @@ block-bridge-conveyor-small
index: -1
block-bridge-conveyor-tiny
rotate: false
- xy: 1379, 1
+ xy: 965, 697
size: 16, 16
orig: 16, 16
offset: 0, 0
@@ -9874,14 +9895,14 @@ block-bridge-conveyor-xlarge
index: -1
block-char-large
rotate: false
- xy: 1245, 933
+ xy: 1295, 933
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-char-medium
rotate: false
- xy: 1563, 647
+ xy: 939, 314
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -9895,7 +9916,7 @@ block-char-small
index: -1
block-char-tiny
rotate: false
- xy: 131, 540
+ xy: 957, 587
size: 16, 16
orig: 16, 16
offset: 0, 0
@@ -9909,14 +9930,14 @@ block-char-xlarge
index: -1
block-cliffs-large
rotate: false
- xy: 1287, 933
+ xy: 1337, 933
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-cliffs-medium
rotate: false
- xy: 1597, 647
+ xy: 939, 280
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -9930,7 +9951,7 @@ block-cliffs-small
index: -1
block-cliffs-tiny
rotate: false
- xy: 309, 698
+ xy: 132, 10
size: 16, 16
orig: 16, 16
offset: 0, 0
@@ -9944,28 +9965,28 @@ block-cliffs-xlarge
index: -1
block-coal-centrifuge-large
rotate: false
- xy: 1329, 933
+ xy: 1379, 933
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-coal-centrifuge-medium
rotate: false
- xy: 1631, 647
+ xy: 939, 246
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-coal-centrifuge-small
rotate: false
- xy: 1534, 223
+ xy: 1443, 11
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-coal-centrifuge-tiny
rotate: false
- xy: 331, 598
+ xy: 881, 10
size: 16, 16
orig: 16, 16
offset: 0, 0
@@ -9979,28 +10000,28 @@ block-coal-centrifuge-xlarge
index: -1
block-combustion-generator-large
rotate: false
- xy: 1371, 933
+ xy: 1421, 933
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-combustion-generator-medium
rotate: false
- xy: 1665, 647
+ xy: 939, 212
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-combustion-generator-small
rotate: false
- xy: 1534, 197
+ xy: 1574, 204
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-combustion-generator-tiny
rotate: false
- xy: 1971, 663
+ xy: 1491, 227
size: 16, 16
orig: 16, 16
offset: 0, 0
@@ -10014,28 +10035,28 @@ block-combustion-generator-xlarge
index: -1
block-command-center-large
rotate: false
- xy: 1413, 933
+ xy: 1463, 933
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-command-center-medium
rotate: false
- xy: 1699, 647
+ xy: 939, 178
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-command-center-small
rotate: false
- xy: 1532, 171
+ xy: 1449, 83
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-command-center-tiny
rotate: false
- xy: 881, 581
+ xy: 1441, 145
size: 16, 16
orig: 16, 16
offset: 0, 0
@@ -10049,28 +10070,28 @@ block-command-center-xlarge
index: -1
block-conduit-large
rotate: false
- xy: 1455, 933
+ xy: 1505, 933
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-conduit-medium
rotate: false
- xy: 1733, 647
+ xy: 939, 144
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-conduit-small
rotate: false
- xy: 1560, 212
+ xy: 1449, 57
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-conduit-tiny
rotate: false
- xy: 132, 10
+ xy: 1605, 283
size: 16, 16
orig: 16, 16
offset: 0, 0
@@ -10084,28 +10105,28 @@ block-conduit-xlarge
index: -1
block-container-large
rotate: false
- xy: 1497, 933
+ xy: 1547, 933
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-container-medium
rotate: false
- xy: 1767, 647
+ xy: 939, 110
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-container-small
rotate: false
- xy: 1560, 186
+ xy: 1602, 256
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-container-tiny
rotate: false
- xy: 2021, 897
+ xy: 1813, 315
size: 16, 16
orig: 16, 16
offset: 0, 0
@@ -10119,28 +10140,28 @@ block-container-xlarge
index: -1
block-conveyor-large
rotate: false
- xy: 1539, 933
+ xy: 1589, 933
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-conveyor-medium
rotate: false
- xy: 1801, 647
+ xy: 935, 76
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-conveyor-small
rotate: false
- xy: 1558, 160
+ xy: 1600, 230
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-conveyor-tiny
rotate: false
- xy: 881, 10
+ xy: 309, 680
size: 16, 16
orig: 16, 16
offset: 0, 0
@@ -10154,35 +10175,35 @@ block-conveyor-xlarge
index: -1
block-copper-wall-large
rotate: false
- xy: 1581, 933
+ xy: 1631, 933
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-copper-wall-large-large
rotate: false
- xy: 1623, 933
+ xy: 1673, 933
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-copper-wall-large-medium
rotate: false
- xy: 1835, 647
+ xy: 935, 42
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-copper-wall-large-small
rotate: false
- xy: 1532, 145
+ xy: 1600, 204
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-copper-wall-large-tiny
rotate: false
- xy: 1917, 387
+ xy: 331, 580
size: 16, 16
orig: 16, 16
offset: 0, 0
@@ -10196,21 +10217,21 @@ block-copper-wall-large-xlarge
index: -1
block-copper-wall-medium
rotate: false
- xy: 1869, 647
+ xy: 935, 8
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-copper-wall-small
rotate: false
- xy: 1558, 134
+ xy: 1647, 419
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-copper-wall-tiny
rotate: false
- xy: 309, 680
+ xy: 859, 679
size: 16, 16
orig: 16, 16
offset: 0, 0
@@ -10224,28 +10245,28 @@ block-copper-wall-xlarge
index: -1
block-core-foundation-large
rotate: false
- xy: 1665, 933
+ xy: 1715, 933
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-core-foundation-medium
rotate: false
- xy: 1903, 647
+ xy: 957, 639
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-core-foundation-small
rotate: false
- xy: 1586, 212
+ xy: 1647, 393
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-core-foundation-tiny
rotate: false
- xy: 331, 580
+ xy: 965, 679
size: 16, 16
orig: 16, 16
offset: 0, 0
@@ -10259,28 +10280,28 @@ block-core-foundation-xlarge
index: -1
block-core-nucleus-large
rotate: false
- xy: 1707, 933
+ xy: 1757, 933
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-core-nucleus-medium
rotate: false
- xy: 1937, 647
+ xy: 957, 605
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-core-nucleus-small
rotate: false
- xy: 1586, 186
+ xy: 1673, 421
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-core-nucleus-tiny
rotate: false
- xy: 1917, 369
+ xy: 1813, 297
size: 16, 16
orig: 16, 16
offset: 0, 0
@@ -10294,28 +10315,28 @@ block-core-nucleus-xlarge
index: -1
block-core-shard-large
rotate: false
- xy: 1749, 933
+ xy: 1799, 933
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-core-shard-medium
rotate: false
- xy: 919, 589
+ xy: 991, 647
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-core-shard-small
rotate: false
- xy: 1584, 160
+ xy: 1673, 395
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-core-shard-tiny
rotate: false
- xy: 1935, 387
+ xy: 1831, 315
size: 16, 16
orig: 16, 16
offset: 0, 0
@@ -10329,28 +10350,28 @@ block-core-shard-xlarge
index: -1
block-craters-large
rotate: false
- xy: 1791, 933
+ xy: 1841, 933
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-craters-medium
rotate: false
- xy: 953, 589
+ xy: 991, 613
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-craters-small
rotate: false
- xy: 1584, 134
+ xy: 1715, 487
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-craters-tiny
rotate: false
- xy: 1935, 369
+ xy: 1831, 297
size: 16, 16
orig: 16, 16
offset: 0, 0
@@ -10364,28 +10385,28 @@ block-craters-xlarge
index: -1
block-crawler-factory-large
rotate: false
- xy: 1833, 933
+ xy: 1883, 933
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-crawler-factory-medium
rotate: false
- xy: 987, 589
+ xy: 1025, 647
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-crawler-factory-small
rotate: false
- xy: 1529, 119
+ xy: 1741, 489
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-crawler-factory-tiny
rotate: false
- xy: 1953, 387
+ xy: 1849, 315
size: 16, 16
orig: 16, 16
offset: 0, 0
@@ -10399,28 +10420,28 @@ block-crawler-factory-xlarge
index: -1
block-cryofluidmixer-large
rotate: false
- xy: 1875, 933
+ xy: 1925, 933
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-cryofluidmixer-medium
rotate: false
- xy: 1021, 589
+ xy: 1025, 613
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-cryofluidmixer-small
rotate: false
- xy: 1555, 108
+ xy: 1767, 489
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-cryofluidmixer-tiny
rotate: false
- xy: 1953, 369
+ xy: 1849, 297
size: 16, 16
orig: 16, 16
offset: 0, 0
@@ -10434,28 +10455,28 @@ block-cryofluidmixer-xlarge
index: -1
block-cultivator-large
rotate: false
- xy: 1917, 933
+ xy: 845, 883
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-cultivator-medium
rotate: false
- xy: 1055, 589
+ xy: 1059, 647
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-cultivator-small
rotate: false
- xy: 1581, 108
+ xy: 1793, 489
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-cultivator-tiny
rotate: false
- xy: 1971, 387
+ xy: 1867, 315
size: 16, 16
orig: 16, 16
offset: 0, 0
@@ -10469,28 +10490,28 @@ block-cultivator-xlarge
index: -1
block-cyclone-large
rotate: false
- xy: 1959, 933
+ xy: 887, 883
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-cyclone-medium
rotate: false
- xy: 1089, 589
+ xy: 1059, 613
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-cyclone-small
rotate: false
- xy: 1600, 355
+ xy: 1819, 489
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-cyclone-tiny
rotate: false
- xy: 1971, 369
+ xy: 1867, 297
size: 16, 16
orig: 16, 16
offset: 0, 0
@@ -10504,28 +10525,28 @@ block-cyclone-xlarge
index: -1
block-dagger-factory-large
rotate: false
- xy: 845, 883
+ xy: 859, 841
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-dagger-factory-medium
rotate: false
- xy: 1123, 589
+ xy: 1093, 647
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-dagger-factory-small
rotate: false
- xy: 1600, 329
+ xy: 1845, 489
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-dagger-factory-tiny
rotate: false
- xy: 1989, 387
+ xy: 1885, 315
size: 16, 16
orig: 16, 16
offset: 0, 0
@@ -10539,28 +10560,28 @@ block-dagger-factory-xlarge
index: -1
block-dark-metal-large
rotate: false
- xy: 859, 841
+ xy: 859, 799
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-dark-metal-medium
rotate: false
- xy: 1157, 589
+ xy: 1093, 613
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-dark-metal-small
rotate: false
- xy: 1600, 303
+ xy: 1871, 489
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-dark-metal-tiny
rotate: false
- xy: 1989, 369
+ xy: 1885, 297
size: 16, 16
orig: 16, 16
offset: 0, 0
@@ -10574,28 +10595,28 @@ block-dark-metal-xlarge
index: -1
block-dark-panel-1-large
rotate: false
- xy: 859, 799
+ xy: 859, 757
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-dark-panel-1-medium
rotate: false
- xy: 1191, 589
+ xy: 1127, 647
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-dark-panel-1-small
rotate: false
- xy: 1597, 277
+ xy: 1897, 489
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-dark-panel-1-tiny
rotate: false
- xy: 2007, 387
+ xy: 1903, 315
size: 16, 16
orig: 16, 16
offset: 0, 0
@@ -10609,28 +10630,28 @@ block-dark-panel-1-xlarge
index: -1
block-dark-panel-2-large
rotate: false
- xy: 859, 757
+ xy: 859, 715
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-dark-panel-2-medium
rotate: false
- xy: 1225, 613
+ xy: 1127, 613
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-dark-panel-2-small
rotate: false
- xy: 1597, 251
+ xy: 1923, 489
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-dark-panel-2-tiny
rotate: false
- xy: 2007, 369
+ xy: 1903, 297
size: 16, 16
orig: 16, 16
offset: 0, 0
@@ -10644,28 +10665,28 @@ block-dark-panel-2-xlarge
index: -1
block-dark-panel-3-large
rotate: false
- xy: 859, 715
+ xy: 929, 883
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-dark-panel-3-medium
rotate: false
- xy: 1259, 613
+ xy: 1161, 647
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-dark-panel-3-small
rotate: false
- xy: 1607, 108
+ xy: 1949, 489
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-dark-panel-3-tiny
rotate: false
- xy: 1397, 3
+ xy: 1921, 315
size: 16, 16
orig: 16, 16
offset: 0, 0
@@ -10679,28 +10700,28 @@ block-dark-panel-3-xlarge
index: -1
block-dark-panel-4-large
rotate: false
- xy: 887, 883
+ xy: 901, 841
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-dark-panel-4-medium
rotate: false
- xy: 1293, 613
+ xy: 1161, 613
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-dark-panel-4-small
rotate: false
- xy: 1623, 277
+ xy: 1975, 489
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-dark-panel-4-tiny
rotate: false
- xy: 1415, 3
+ xy: 1921, 297
size: 16, 16
orig: 16, 16
offset: 0, 0
@@ -10714,28 +10735,28 @@ block-dark-panel-4-xlarge
index: -1
block-dark-panel-5-large
rotate: false
- xy: 929, 891
+ xy: 901, 799
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-dark-panel-5-medium
rotate: false
- xy: 1327, 613
+ xy: 1195, 647
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-dark-panel-5-small
rotate: false
- xy: 1623, 251
+ xy: 2001, 489
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-dark-panel-5-tiny
rotate: false
- xy: 1433, 3
+ xy: 1939, 315
size: 16, 16
orig: 16, 16
offset: 0, 0
@@ -10749,28 +10770,28 @@ block-dark-panel-5-xlarge
index: -1
block-dark-panel-6-large
rotate: false
- xy: 971, 891
+ xy: 901, 757
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-dark-panel-6-medium
rotate: false
- xy: 1361, 613
+ xy: 1195, 613
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-dark-panel-6-small
rotate: false
- xy: 1612, 225
+ xy: 1715, 461
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-dark-panel-6-tiny
rotate: false
- xy: 2025, 387
+ xy: 1939, 297
size: 16, 16
orig: 16, 16
offset: 0, 0
@@ -10784,49 +10805,49 @@ block-dark-panel-6-xlarge
index: -1
block-darksand-large
rotate: false
- xy: 1013, 891
+ xy: 901, 715
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-darksand-medium
rotate: false
- xy: 1395, 613
+ xy: 1229, 647
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-darksand-small
rotate: false
- xy: 1612, 199
+ xy: 1741, 463
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-darksand-tainted-water-large
rotate: false
- xy: 1055, 891
+ xy: 971, 891
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-darksand-tainted-water-medium
rotate: false
- xy: 1429, 613
+ xy: 1229, 613
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-darksand-tainted-water-small
rotate: false
- xy: 1612, 173
+ xy: 1767, 463
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-darksand-tainted-water-tiny
rotate: false
- xy: 2025, 369
+ xy: 1957, 315
size: 16, 16
orig: 16, 16
offset: 0, 0
@@ -10840,35 +10861,35 @@ block-darksand-tainted-water-xlarge
index: -1
block-darksand-tiny
rotate: false
- xy: 1683, 361
+ xy: 1957, 297
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
block-darksand-water-large
rotate: false
- xy: 1097, 891
+ xy: 1013, 891
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-darksand-water-medium
rotate: false
- xy: 1463, 613
+ xy: 1263, 647
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-darksand-water-small
rotate: false
- xy: 1610, 147
+ xy: 1793, 463
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-darksand-water-tiny
rotate: false
- xy: 1701, 361
+ xy: 1975, 315
size: 16, 16
orig: 16, 16
offset: 0, 0
@@ -10889,28 +10910,28 @@ block-darksand-xlarge
index: -1
block-dart-ship-pad-large
rotate: false
- xy: 1139, 891
+ xy: 1055, 891
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-dart-ship-pad-medium
rotate: false
- xy: 1497, 613
+ xy: 1263, 613
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-dart-ship-pad-small
rotate: false
- xy: 1638, 225
+ xy: 1819, 463
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-dart-ship-pad-tiny
rotate: false
- xy: 1719, 361
+ xy: 1975, 297
size: 16, 16
orig: 16, 16
offset: 0, 0
@@ -10924,28 +10945,28 @@ block-dart-ship-pad-xlarge
index: -1
block-deepwater-large
rotate: false
- xy: 1181, 891
+ xy: 1097, 891
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-deepwater-medium
rotate: false
- xy: 1531, 613
+ xy: 1297, 647
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-deepwater-small
rotate: false
- xy: 1638, 199
+ xy: 1845, 463
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-deepwater-tiny
rotate: false
- xy: 1737, 361
+ xy: 1993, 315
size: 16, 16
orig: 16, 16
offset: 0, 0
@@ -10959,28 +10980,28 @@ block-deepwater-xlarge
index: -1
block-delta-mech-pad-large
rotate: false
- xy: 1223, 891
+ xy: 1139, 891
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-delta-mech-pad-medium
rotate: false
- xy: 1565, 613
+ xy: 1297, 613
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-delta-mech-pad-small
rotate: false
- xy: 1638, 173
+ xy: 1871, 463
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-delta-mech-pad-tiny
rotate: false
- xy: 1755, 361
+ xy: 1993, 297
size: 16, 16
orig: 16, 16
offset: 0, 0
@@ -10994,28 +11015,28 @@ block-delta-mech-pad-xlarge
index: -1
block-differential-generator-large
rotate: false
- xy: 1265, 891
+ xy: 1181, 891
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-differential-generator-medium
rotate: false
- xy: 1599, 613
+ xy: 1331, 647
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-differential-generator-small
rotate: false
- xy: 1636, 147
+ xy: 1897, 463
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-differential-generator-tiny
rotate: false
- xy: 1773, 361
+ xy: 2011, 315
size: 16, 16
orig: 16, 16
offset: 0, 0
@@ -11029,28 +11050,28 @@ block-differential-generator-xlarge
index: -1
block-diode-large
rotate: false
- xy: 1307, 891
+ xy: 1223, 891
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-diode-medium
rotate: false
- xy: 1633, 613
+ xy: 1331, 613
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-diode-small
rotate: false
- xy: 1633, 121
+ xy: 1923, 463
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-diode-tiny
rotate: false
- xy: 1791, 361
+ xy: 2011, 297
size: 16, 16
orig: 16, 16
offset: 0, 0
@@ -11064,28 +11085,28 @@ block-diode-xlarge
index: -1
block-distributor-large
rotate: false
- xy: 1349, 891
+ xy: 1265, 891
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-distributor-medium
rotate: false
- xy: 1667, 613
+ xy: 1365, 647
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-distributor-small
rotate: false
- xy: 1633, 95
+ xy: 1949, 463
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-distributor-tiny
rotate: false
- xy: 1809, 361
+ xy: 1448, 39
size: 16, 16
orig: 16, 16
offset: 0, 0
@@ -11099,35 +11120,35 @@ block-distributor-xlarge
index: -1
block-door-large
rotate: false
- xy: 1391, 891
+ xy: 1307, 891
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-door-large-large
rotate: false
- xy: 1433, 891
+ xy: 1349, 891
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-door-large-medium
rotate: false
- xy: 1701, 613
+ xy: 1365, 613
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-door-large-small
rotate: false
- xy: 1659, 121
+ xy: 1975, 463
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-door-large-tiny
rotate: false
- xy: 1678, 343
+ xy: 1628, 263
size: 16, 16
orig: 16, 16
offset: 0, 0
@@ -11141,21 +11162,21 @@ block-door-large-xlarge
index: -1
block-door-medium
rotate: false
- xy: 1735, 613
+ xy: 1399, 647
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-door-small
rotate: false
- xy: 1659, 95
+ xy: 2001, 463
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-door-tiny
rotate: false
- xy: 1678, 325
+ xy: 1646, 263
size: 16, 16
orig: 16, 16
offset: 0, 0
@@ -11169,28 +11190,28 @@ block-door-xlarge
index: -1
block-draug-factory-large
rotate: false
- xy: 1475, 891
+ xy: 1391, 891
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-draug-factory-medium
rotate: false
- xy: 1769, 613
+ xy: 1399, 613
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-draug-factory-small
rotate: false
- xy: 1662, 147
+ xy: 1513, 221
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-draug-factory-tiny
rotate: false
- xy: 1696, 343
+ xy: 2027, 497
size: 16, 16
orig: 16, 16
offset: 0, 0
@@ -11204,28 +11225,28 @@ block-draug-factory-xlarge
index: -1
block-dunerocks-large
rotate: false
- xy: 1517, 891
+ xy: 1433, 891
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-dunerocks-medium
rotate: false
- xy: 1803, 613
+ xy: 1433, 647
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-dunerocks-small
rotate: false
- xy: 1685, 121
+ xy: 1579, 351
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-dunerocks-tiny
rotate: false
- xy: 1714, 343
+ xy: 2027, 479
size: 16, 16
orig: 16, 16
offset: 0, 0
@@ -11239,28 +11260,28 @@ block-dunerocks-xlarge
index: -1
block-duo-large
rotate: false
- xy: 1559, 891
+ xy: 1475, 891
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-duo-medium
rotate: false
- xy: 1837, 613
+ xy: 1433, 613
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-duo-small
rotate: false
- xy: 1685, 95
+ xy: 1605, 353
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-duo-tiny
rotate: false
- xy: 1696, 325
+ xy: 2027, 461
size: 16, 16
orig: 16, 16
offset: 0, 0
@@ -11274,28 +11295,28 @@ block-duo-xlarge
index: -1
block-force-projector-large
rotate: false
- xy: 1601, 891
+ xy: 1517, 891
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-force-projector-medium
rotate: false
- xy: 1871, 613
+ xy: 1467, 647
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-force-projector-small
rotate: false
- xy: 1337, 147
+ xy: 1605, 327
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-force-projector-tiny
rotate: false
- xy: 1732, 343
+ xy: 2027, 443
size: 16, 16
orig: 16, 16
offset: 0, 0
@@ -11309,28 +11330,28 @@ block-force-projector-xlarge
index: -1
block-fortress-factory-large
rotate: false
- xy: 1643, 891
+ xy: 1559, 891
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-fortress-factory-medium
rotate: false
- xy: 1905, 613
+ xy: 1467, 613
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-fortress-factory-small
rotate: false
- xy: 1363, 149
+ xy: 1605, 301
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-fortress-factory-tiny
rotate: false
- xy: 1714, 325
+ xy: 1709, 289
size: 16, 16
orig: 16, 16
offset: 0, 0
@@ -11344,28 +11365,28 @@ block-fortress-factory-xlarge
index: -1
block-fuse-large
rotate: false
- xy: 1685, 891
+ xy: 1601, 891
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-fuse-medium
rotate: false
- xy: 1939, 613
+ xy: 1501, 647
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-fuse-small
rotate: false
- xy: 1337, 121
+ xy: 1626, 230
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-fuse-tiny
rotate: false
- xy: 1750, 343
+ xy: 899, 2
size: 16, 16
orig: 16, 16
offset: 0, 0
@@ -11379,28 +11400,28 @@ block-fuse-xlarge
index: -1
block-ghoul-factory-large
rotate: false
- xy: 1727, 891
+ xy: 1643, 891
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-ghoul-factory-medium
rotate: false
- xy: 1225, 579
+ xy: 1501, 613
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-ghoul-factory-small
rotate: false
- xy: 1363, 123
+ xy: 1626, 204
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-ghoul-factory-tiny
rotate: false
- xy: 1732, 325
+ xy: 917, 2
size: 16, 16
orig: 16, 16
offset: 0, 0
@@ -11414,28 +11435,28 @@ block-ghoul-factory-xlarge
index: -1
block-glaive-ship-pad-large
rotate: false
- xy: 1769, 891
+ xy: 1685, 891
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-glaive-ship-pad-medium
rotate: false
- xy: 1259, 579
+ xy: 1535, 647
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-glaive-ship-pad-small
rotate: false
- xy: 1335, 95
+ xy: 1673, 369
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-glaive-ship-pad-tiny
rotate: false
- xy: 1768, 343
+ xy: 2029, 315
size: 16, 16
orig: 16, 16
offset: 0, 0
@@ -11449,28 +11470,28 @@ block-glaive-ship-pad-xlarge
index: -1
block-graphite-press-large
rotate: false
- xy: 1811, 891
+ xy: 1727, 891
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-graphite-press-medium
rotate: false
- xy: 1293, 579
+ xy: 1535, 613
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-graphite-press-small
rotate: false
- xy: 1335, 69
+ xy: 1681, 453
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-graphite-press-tiny
rotate: false
- xy: 1750, 325
+ xy: 2029, 297
size: 16, 16
orig: 16, 16
offset: 0, 0
@@ -11484,28 +11505,28 @@ block-graphite-press-xlarge
index: -1
block-grass-large
rotate: false
- xy: 1853, 891
+ xy: 1769, 891
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-grass-medium
rotate: false
- xy: 1327, 579
+ xy: 1569, 647
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-grass-small
rotate: false
- xy: 1335, 43
+ xy: 1741, 437
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-grass-tiny
rotate: false
- xy: 1786, 343
+ xy: 1664, 273
size: 16, 16
orig: 16, 16
offset: 0, 0
@@ -11519,28 +11540,28 @@ block-grass-xlarge
index: -1
block-hail-large
rotate: false
- xy: 1895, 891
+ xy: 1811, 891
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-hail-medium
rotate: false
- xy: 1361, 579
+ xy: 1569, 613
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-hail-small
rotate: false
- xy: 1335, 17
+ xy: 1767, 437
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-hail-tiny
rotate: false
- xy: 1768, 325
+ xy: 1664, 255
size: 16, 16
orig: 16, 16
offset: 0, 0
@@ -11554,28 +11575,28 @@ block-hail-xlarge
index: -1
block-holostone-large
rotate: false
- xy: 1937, 891
+ xy: 1853, 891
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-holostone-medium
rotate: false
- xy: 1395, 579
+ xy: 1603, 647
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-holostone-small
rotate: false
- xy: 1389, 125
+ xy: 1793, 437
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-holostone-tiny
rotate: false
- xy: 1804, 343
+ xy: 1683, 279
size: 16, 16
orig: 16, 16
offset: 0, 0
@@ -11589,28 +11610,28 @@ block-holostone-xlarge
index: -1
block-hotrock-large
rotate: false
- xy: 901, 841
+ xy: 1895, 891
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-hotrock-medium
rotate: false
- xy: 1429, 579
+ xy: 1603, 613
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-hotrock-small
rotate: false
- xy: 1415, 125
+ xy: 1819, 437
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-hotrock-tiny
rotate: false
- xy: 1786, 325
+ xy: 1682, 261
size: 16, 16
orig: 16, 16
offset: 0, 0
@@ -11624,49 +11645,49 @@ block-hotrock-xlarge
index: -1
block-ice-large
rotate: false
- xy: 901, 799
+ xy: 1937, 891
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-ice-medium
rotate: false
- xy: 1463, 579
+ xy: 1637, 647
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-ice-small
rotate: false
- xy: 1441, 125
+ xy: 1845, 437
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-ice-snow-large
rotate: false
- xy: 901, 757
+ xy: 943, 841
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-ice-snow-medium
rotate: false
- xy: 1497, 579
+ xy: 1637, 613
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-ice-snow-small
rotate: false
- xy: 1467, 117
+ xy: 1871, 437
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-ice-snow-tiny
rotate: false
- xy: 1804, 325
+ xy: 1652, 237
size: 16, 16
orig: 16, 16
offset: 0, 0
@@ -11680,7 +11701,7 @@ block-ice-snow-xlarge
index: -1
block-ice-tiny
rotate: false
- xy: 1727, 7
+ xy: 1652, 219
size: 16, 16
orig: 16, 16
offset: 0, 0
@@ -11694,28 +11715,28 @@ block-ice-xlarge
index: -1
block-icerocks-large
rotate: false
- xy: 901, 715
+ xy: 943, 799
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-icerocks-medium
rotate: false
- xy: 1531, 579
+ xy: 1671, 647
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-icerocks-small
rotate: false
- xy: 1493, 105
+ xy: 1897, 437
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-icerocks-tiny
rotate: false
- xy: 1745, 7
+ xy: 1670, 237
size: 16, 16
orig: 16, 16
offset: 0, 0
@@ -11729,28 +11750,28 @@ block-icerocks-xlarge
index: -1
block-ignarock-large
rotate: false
- xy: 943, 849
+ xy: 943, 757
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-ignarock-medium
rotate: false
- xy: 1565, 579
+ xy: 1671, 613
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-ignarock-small
rotate: false
- xy: 1519, 93
+ xy: 1923, 437
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-ignarock-tiny
rotate: false
- xy: 1763, 7
+ xy: 1670, 219
size: 16, 16
orig: 16, 16
offset: 0, 0
@@ -11764,28 +11785,28 @@ block-ignarock-xlarge
index: -1
block-illuminator-large
rotate: false
- xy: 943, 807
+ xy: 943, 715
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-illuminator-medium
rotate: false
- xy: 1599, 579
+ xy: 1705, 647
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-illuminator-small
rotate: false
- xy: 1545, 82
+ xy: 1949, 437
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-illuminator-tiny
rotate: false
- xy: 1891, 350
+ xy: 1688, 243
size: 16, 16
orig: 16, 16
offset: 0, 0
@@ -11806,21 +11827,21 @@ block-impact-reactor-large
index: -1
block-impact-reactor-medium
rotate: false
- xy: 1633, 579
+ xy: 1705, 613
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-impact-reactor-small
rotate: false
- xy: 1571, 82
+ xy: 1975, 437
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-impact-reactor-tiny
rotate: false
- xy: 1909, 350
+ xy: 1688, 225
size: 16, 16
orig: 16, 16
offset: 0, 0
@@ -11834,28 +11855,28 @@ block-impact-reactor-xlarge
index: -1
block-incinerator-large
rotate: false
- xy: 943, 765
+ xy: 985, 807
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-incinerator-medium
rotate: false
- xy: 1667, 579
+ xy: 1739, 647
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-incinerator-small
rotate: false
- xy: 1597, 82
+ xy: 2001, 437
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-incinerator-tiny
rotate: false
- xy: 1927, 351
+ xy: 1700, 261
size: 16, 16
orig: 16, 16
offset: 0, 0
@@ -11869,28 +11890,28 @@ block-incinerator-xlarge
index: -1
block-inverted-sorter-large
rotate: false
- xy: 985, 807
+ xy: 1027, 849
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-inverted-sorter-medium
rotate: false
- xy: 1701, 579
+ xy: 1739, 613
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-inverted-sorter-small
rotate: false
- xy: 1623, 69
+ xy: 1413, 213
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-inverted-sorter-tiny
rotate: false
- xy: 1945, 351
+ xy: 1706, 243
size: 16, 16
orig: 16, 16
offset: 0, 0
@@ -11904,28 +11925,28 @@ block-inverted-sorter-xlarge
index: -1
block-item-source-large
rotate: false
- xy: 1027, 849
+ xy: 985, 765
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-item-source-medium
rotate: false
- xy: 1735, 579
+ xy: 1773, 647
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-item-source-small
rotate: false
- xy: 1649, 69
+ xy: 1439, 215
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-item-source-tiny
rotate: false
- xy: 1963, 351
+ xy: 1706, 225
size: 16, 16
orig: 16, 16
offset: 0, 0
@@ -11939,28 +11960,28 @@ block-item-source-xlarge
index: -1
block-item-void-large
rotate: false
- xy: 943, 723
+ xy: 1027, 807
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-item-void-medium
rotate: false
- xy: 1769, 579
+ xy: 1773, 613
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-item-void-small
rotate: false
- xy: 1675, 69
+ xy: 1465, 219
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-item-void-tiny
rotate: false
- xy: 1981, 351
+ xy: 1688, 207
size: 16, 16
orig: 16, 16
offset: 0, 0
@@ -11974,28 +11995,28 @@ block-item-void-xlarge
index: -1
block-javelin-ship-pad-large
rotate: false
- xy: 985, 765
+ xy: 1069, 849
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-javelin-ship-pad-medium
rotate: false
- xy: 1803, 579
+ xy: 1807, 647
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-javelin-ship-pad-small
rotate: false
- xy: 1701, 69
+ xy: 1413, 187
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-javelin-ship-pad-tiny
rotate: false
- xy: 1999, 351
+ xy: 1706, 207
size: 16, 16
orig: 16, 16
offset: 0, 0
@@ -12009,28 +12030,28 @@ block-javelin-ship-pad-xlarge
index: -1
block-junction-large
rotate: false
- xy: 1027, 807
+ xy: 985, 723
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-junction-medium
rotate: false
- xy: 1837, 579
+ xy: 1807, 613
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-junction-small
rotate: false
- xy: 1605, 387
+ xy: 1439, 189
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-junction-tiny
rotate: false
- xy: 2017, 351
+ xy: 1547, 4
size: 16, 16
orig: 16, 16
offset: 0, 0
@@ -12044,28 +12065,28 @@ block-junction-xlarge
index: -1
block-kiln-large
rotate: false
- xy: 1069, 849
+ xy: 1027, 765
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-kiln-medium
rotate: false
- xy: 1871, 579
+ xy: 1841, 647
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-kiln-small
rotate: false
- xy: 1631, 389
+ xy: 1465, 193
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-kiln-tiny
rotate: false
- xy: 1822, 343
+ xy: 1565, 4
size: 16, 16
orig: 16, 16
offset: 0, 0
@@ -12079,28 +12100,28 @@ block-kiln-xlarge
index: -1
block-lancer-large
rotate: false
- xy: 985, 723
+ xy: 1069, 807
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-lancer-medium
rotate: false
- xy: 1905, 579
+ xy: 1841, 613
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-lancer-small
rotate: false
- xy: 1673, 455
+ xy: 1441, 163
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-lancer-tiny
rotate: false
- xy: 1822, 325
+ xy: 1583, 4
size: 16, 16
orig: 16, 16
offset: 0, 0
@@ -12114,28 +12135,28 @@ block-lancer-xlarge
index: -1
block-laser-drill-large
rotate: false
- xy: 1027, 765
+ xy: 1111, 849
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-laser-drill-medium
rotate: false
- xy: 1939, 579
+ xy: 1875, 647
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-laser-drill-small
rotate: false
- xy: 1699, 457
+ xy: 1467, 167
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-laser-drill-tiny
rotate: false
- xy: 1840, 345
+ xy: 1601, 4
size: 16, 16
orig: 16, 16
offset: 0, 0
@@ -12149,35 +12170,35 @@ block-laser-drill-xlarge
index: -1
block-launch-pad-large
rotate: false
- xy: 1069, 807
+ xy: 1027, 723
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-launch-pad-large-large
rotate: false
- xy: 1111, 849
+ xy: 1069, 765
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-launch-pad-large-medium
rotate: false
- xy: 901, 555
+ xy: 1875, 613
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-launch-pad-large-small
rotate: false
- xy: 1725, 457
+ xy: 1491, 195
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-launch-pad-large-tiny
rotate: false
- xy: 1858, 345
+ xy: 1619, 4
size: 16, 16
orig: 16, 16
offset: 0, 0
@@ -12191,21 +12212,21 @@ block-launch-pad-large-xlarge
index: -1
block-launch-pad-medium
rotate: false
- xy: 901, 521
+ xy: 1909, 647
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-launch-pad-small
rotate: false
- xy: 1751, 457
+ xy: 1517, 195
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-launch-pad-tiny
rotate: false
- xy: 1840, 327
+ xy: 1637, 4
size: 16, 16
orig: 16, 16
offset: 0, 0
@@ -12219,28 +12240,28 @@ block-launch-pad-xlarge
index: -1
block-liquid-junction-large
rotate: false
- xy: 1027, 723
+ xy: 1111, 807
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-liquid-junction-medium
rotate: false
- xy: 935, 555
+ xy: 1909, 613
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-liquid-junction-small
rotate: false
- xy: 1777, 457
+ xy: 1493, 169
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-liquid-junction-tiny
rotate: false
- xy: 1858, 327
+ xy: 1655, 4
size: 16, 16
orig: 16, 16
offset: 0, 0
@@ -12254,28 +12275,28 @@ block-liquid-junction-xlarge
index: -1
block-liquid-router-large
rotate: false
- xy: 1069, 765
+ xy: 1153, 849
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-liquid-router-medium
rotate: false
- xy: 901, 487
+ xy: 1943, 647
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-liquid-router-small
rotate: false
- xy: 1803, 457
+ xy: 1519, 169
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-liquid-router-tiny
rotate: false
- xy: 1701, 307
+ xy: 1673, 4
size: 16, 16
orig: 16, 16
offset: 0, 0
@@ -12289,28 +12310,28 @@ block-liquid-router-xlarge
index: -1
block-liquid-source-large
rotate: false
- xy: 1111, 807
+ xy: 1069, 723
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-liquid-source-medium
rotate: false
- xy: 935, 521
+ xy: 1943, 613
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-liquid-source-small
rotate: false
- xy: 1829, 457
+ xy: 1543, 199
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-liquid-source-tiny
rotate: false
- xy: 1701, 289
+ xy: 1787, 278
size: 16, 16
orig: 16, 16
offset: 0, 0
@@ -12324,28 +12345,28 @@ block-liquid-source-xlarge
index: -1
block-liquid-tank-large
rotate: false
- xy: 1153, 849
+ xy: 1111, 765
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
block-liquid-tank-medium
rotate: false
- xy: 969, 555
+ xy: 1977, 613
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block-liquid-tank-small
rotate: false
- xy: 1855, 457
+ xy: 1545, 173
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
block-liquid-tank-tiny
rotate: false
- xy: 1719, 307
+ xy: 1805, 278
size: 16, 16
orig: 16, 16
offset: 0, 0
@@ -12357,3929 +12378,3964 @@ block-liquid-tank-xlarge
orig: 48, 48
offset: 0, 0
index: -1
-block-magmarock-large
- rotate: false
- xy: 1069, 723
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-magmarock-medium
- rotate: false
- xy: 901, 453
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-magmarock-small
- rotate: false
- xy: 1881, 457
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-magmarock-tiny
- rotate: false
- xy: 1701, 271
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-magmarock-xlarge
- rotate: false
- xy: 201, 358
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-mass-driver-large
- rotate: false
- xy: 1111, 765
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-mass-driver-medium
- rotate: false
- xy: 935, 487
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-mass-driver-small
- rotate: false
- xy: 1907, 457
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-mass-driver-tiny
- rotate: false
- xy: 1719, 289
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-mass-driver-xlarge
- rotate: false
- xy: 151, 258
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-mechanical-drill-large
+block-liquid-void-large
rotate: false
xy: 1153, 807
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-mechanical-drill-medium
+block-liquid-void-medium
rotate: false
- xy: 969, 521
+ xy: 2011, 613
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-mechanical-drill-small
+block-liquid-void-small
rotate: false
- xy: 1933, 457
+ xy: 1571, 178
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-mechanical-drill-tiny
+block-liquid-void-tiny
rotate: false
- xy: 1737, 307
+ xy: 1823, 279
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-mechanical-drill-xlarge
+block-liquid-void-xlarge
rotate: false
- xy: 201, 308
+ xy: 201, 358
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-mechanical-pump-large
+block-magmarock-large
rotate: false
xy: 1195, 849
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-mechanical-pump-medium
+block-magmarock-medium
rotate: false
- xy: 1003, 555
+ xy: 991, 579
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-mechanical-pump-small
+block-magmarock-small
rotate: false
- xy: 1959, 457
+ xy: 1597, 178
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-mechanical-pump-tiny
+block-magmarock-tiny
rotate: false
- xy: 1719, 271
+ xy: 1841, 279
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-mechanical-pump-xlarge
+block-magmarock-xlarge
rotate: false
- xy: 151, 208
+ xy: 151, 258
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-meltdown-large
+block-mass-driver-large
rotate: false
xy: 1111, 723
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-meltdown-medium
+block-mass-driver-medium
rotate: false
- xy: 901, 419
+ xy: 1025, 579
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-meltdown-small
+block-mass-driver-small
rotate: false
- xy: 1985, 457
+ xy: 1623, 178
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-meltdown-tiny
+block-mass-driver-tiny
rotate: false
- xy: 1755, 307
+ xy: 1859, 279
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-meltdown-xlarge
+block-mass-driver-xlarge
rotate: false
- xy: 201, 258
+ xy: 201, 308
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-melter-large
+block-mechanical-drill-large
rotate: false
xy: 1153, 765
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-melter-medium
+block-mechanical-drill-medium
rotate: false
- xy: 935, 453
+ xy: 1059, 579
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-melter-small
+block-mechanical-drill-small
rotate: false
- xy: 2011, 457
+ xy: 1571, 152
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-melter-tiny
+block-mechanical-drill-tiny
rotate: false
- xy: 1737, 289
+ xy: 1877, 279
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-melter-xlarge
+block-mechanical-drill-xlarge
rotate: false
- xy: 151, 158
+ xy: 151, 208
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-mend-projector-large
+block-mechanical-pump-large
rotate: false
xy: 1195, 807
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-mend-projector-medium
+block-mechanical-pump-medium
rotate: false
- xy: 969, 487
+ xy: 1093, 579
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-mend-projector-small
+block-mechanical-pump-small
rotate: false
- xy: 1673, 429
+ xy: 1597, 152
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-mend-projector-tiny
+block-mechanical-pump-tiny
rotate: false
- xy: 1773, 307
+ xy: 1895, 279
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-mend-projector-xlarge
+block-mechanical-pump-xlarge
rotate: false
- xy: 201, 208
+ xy: 201, 258
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-mender-large
+block-meltdown-large
rotate: false
xy: 1237, 849
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-mender-medium
+block-meltdown-medium
rotate: false
- xy: 1003, 521
+ xy: 1127, 579
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-mender-small
+block-meltdown-small
rotate: false
- xy: 1699, 431
+ xy: 1623, 152
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-mender-tiny
+block-meltdown-tiny
rotate: false
- xy: 1755, 289
+ xy: 1913, 279
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-mender-xlarge
+block-meltdown-xlarge
rotate: false
- xy: 151, 108
+ xy: 151, 158
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-message-large
+block-melter-large
rotate: false
xy: 1153, 723
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-message-medium
+block-melter-medium
rotate: false
- xy: 1037, 555
+ xy: 1161, 579
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-message-small
+block-melter-small
rotate: false
- xy: 1725, 431
+ xy: 1545, 147
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-message-tiny
+block-melter-tiny
rotate: false
- xy: 1737, 271
+ xy: 1931, 279
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-message-xlarge
+block-melter-xlarge
rotate: false
- xy: 201, 158
+ xy: 201, 208
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-metal-floor-2-large
+block-mend-projector-large
rotate: false
xy: 1195, 765
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-metal-floor-2-medium
+block-mend-projector-medium
rotate: false
- xy: 901, 385
+ xy: 1195, 579
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-metal-floor-2-small
+block-mend-projector-small
rotate: false
- xy: 1751, 431
+ xy: 1571, 126
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-metal-floor-2-tiny
+block-mend-projector-tiny
rotate: false
- xy: 1791, 307
+ xy: 1949, 279
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-metal-floor-2-xlarge
+block-mend-projector-xlarge
rotate: false
- xy: 151, 58
+ xy: 151, 108
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-metal-floor-3-large
+block-mender-large
rotate: false
xy: 1237, 807
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-metal-floor-3-medium
+block-mender-medium
rotate: false
- xy: 935, 419
+ xy: 1229, 579
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-metal-floor-3-small
+block-mender-small
rotate: false
- xy: 1777, 431
+ xy: 1597, 126
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-metal-floor-3-tiny
+block-mender-tiny
rotate: false
- xy: 1773, 289
+ xy: 1967, 279
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-metal-floor-3-xlarge
+block-mender-xlarge
rotate: false
- xy: 201, 108
+ xy: 201, 158
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-metal-floor-5-large
+block-message-large
rotate: false
xy: 1279, 849
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-metal-floor-5-medium
+block-message-medium
rotate: false
- xy: 969, 453
+ xy: 1263, 579
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-metal-floor-5-small
+block-message-small
rotate: false
- xy: 1803, 431
+ xy: 1623, 126
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-metal-floor-5-tiny
+block-message-tiny
rotate: false
- xy: 1755, 271
+ xy: 1985, 279
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-metal-floor-5-xlarge
+block-message-xlarge
rotate: false
- xy: 201, 58
+ xy: 151, 58
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-metal-floor-damaged-large
+block-metal-floor-2-large
rotate: false
xy: 1195, 723
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-metal-floor-damaged-medium
+block-metal-floor-2-medium
rotate: false
- xy: 1003, 487
+ xy: 1297, 579
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-metal-floor-damaged-small
+block-metal-floor-2-small
rotate: false
- xy: 1829, 431
+ xy: 1467, 141
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-metal-floor-damaged-tiny
+block-metal-floor-2-tiny
rotate: false
- xy: 1809, 307
+ xy: 2003, 279
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-metal-floor-damaged-xlarge
+block-metal-floor-2-xlarge
rotate: false
- xy: 251, 508
+ xy: 201, 108
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-metal-floor-large
+block-metal-floor-3-large
rotate: false
xy: 1237, 765
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-metal-floor-medium
+block-metal-floor-3-medium
rotate: false
- xy: 1037, 521
+ xy: 1331, 579
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-metal-floor-small
+block-metal-floor-3-small
rotate: false
- xy: 1855, 431
+ xy: 1493, 143
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-metal-floor-tiny
+block-metal-floor-3-tiny
rotate: false
- xy: 1791, 289
+ xy: 2021, 279
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-metal-floor-xlarge
+block-metal-floor-3-xlarge
rotate: false
- xy: 251, 458
+ xy: 201, 58
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-moss-large
+block-metal-floor-5-large
rotate: false
xy: 1279, 807
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-moss-medium
+block-metal-floor-5-medium
rotate: false
- xy: 1071, 555
+ xy: 1365, 579
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-moss-small
+block-metal-floor-5-small
rotate: false
- xy: 1881, 431
+ xy: 1519, 143
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-moss-tiny
+block-metal-floor-5-tiny
rotate: false
- xy: 1773, 271
+ xy: 1675, 189
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-moss-xlarge
+block-metal-floor-5-xlarge
rotate: false
- xy: 251, 408
+ xy: 251, 508
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-multi-press-large
+block-metal-floor-damaged-large
rotate: false
xy: 1321, 849
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-multi-press-medium
+block-metal-floor-damaged-medium
rotate: false
- xy: 901, 351
+ xy: 1399, 579
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-multi-press-small
+block-metal-floor-damaged-small
rotate: false
- xy: 1907, 431
+ xy: 1545, 121
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-multi-press-tiny
+block-metal-floor-damaged-tiny
rotate: false
- xy: 1809, 289
+ xy: 1675, 171
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-multi-press-xlarge
+block-metal-floor-damaged-xlarge
rotate: false
- xy: 251, 358
+ xy: 251, 458
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-oil-extractor-large
+block-metal-floor-large
rotate: false
xy: 1237, 723
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-oil-extractor-medium
+block-metal-floor-medium
rotate: false
- xy: 935, 385
+ xy: 1433, 579
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-oil-extractor-small
+block-metal-floor-small
rotate: false
- xy: 1933, 431
+ xy: 1453, 115
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-oil-extractor-tiny
+block-metal-floor-tiny
rotate: false
- xy: 1791, 271
+ xy: 1693, 189
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-oil-extractor-xlarge
+block-metal-floor-xlarge
rotate: false
- xy: 251, 308
+ xy: 251, 408
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-omega-mech-pad-large
+block-moss-large
rotate: false
xy: 1279, 765
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-omega-mech-pad-medium
+block-moss-medium
rotate: false
- xy: 969, 419
+ xy: 1467, 579
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-omega-mech-pad-small
+block-moss-small
rotate: false
- xy: 1959, 431
+ xy: 1479, 115
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-omega-mech-pad-tiny
+block-moss-tiny
rotate: false
- xy: 1809, 271
+ xy: 1675, 153
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-omega-mech-pad-xlarge
+block-moss-xlarge
rotate: false
- xy: 251, 258
+ xy: 251, 358
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-overdrive-projector-large
+block-multi-press-large
rotate: false
xy: 1321, 807
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-overdrive-projector-medium
+block-multi-press-medium
rotate: false
- xy: 1003, 453
+ xy: 1501, 579
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-overdrive-projector-small
+block-multi-press-small
rotate: false
- xy: 1985, 431
+ xy: 1505, 117
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-overdrive-projector-tiny
+block-multi-press-tiny
rotate: false
- xy: 1827, 307
+ xy: 1693, 171
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-overdrive-projector-xlarge
+block-multi-press-xlarge
rotate: false
- xy: 251, 208
+ xy: 251, 308
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-overflow-gate-large
+block-oil-extractor-large
rotate: false
xy: 1363, 849
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-overflow-gate-medium
+block-oil-extractor-medium
rotate: false
- xy: 1037, 487
+ xy: 1535, 579
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-overflow-gate-small
+block-oil-extractor-small
rotate: false
- xy: 2011, 431
+ xy: 1475, 89
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-overflow-gate-tiny
+block-oil-extractor-tiny
rotate: false
- xy: 1827, 289
+ xy: 1675, 135
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-overflow-gate-xlarge
+block-oil-extractor-xlarge
rotate: false
- xy: 251, 158
+ xy: 251, 258
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-pebbles-large
+block-omega-mech-pad-large
rotate: false
xy: 1279, 723
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-pebbles-medium
+block-omega-mech-pad-medium
rotate: false
- xy: 1071, 521
+ xy: 1569, 579
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-pebbles-small
+block-omega-mech-pad-small
rotate: false
- xy: 1363, 97
+ xy: 1475, 63
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-pebbles-tiny
+block-omega-mech-pad-tiny
rotate: false
- xy: 1827, 271
+ xy: 1693, 153
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-pebbles-xlarge
+block-omega-mech-pad-xlarge
rotate: false
- xy: 251, 108
+ xy: 251, 208
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-phantom-factory-large
+block-overdrive-projector-large
rotate: false
xy: 1321, 765
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-phantom-factory-medium
+block-overdrive-projector-medium
rotate: false
- xy: 1105, 555
+ xy: 1603, 579
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-phantom-factory-small
+block-overdrive-projector-small
rotate: false
- xy: 1389, 99
+ xy: 1475, 37
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-phantom-factory-tiny
+block-overdrive-projector-tiny
rotate: false
- xy: 1845, 309
+ xy: 1675, 117
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-phantom-factory-xlarge
+block-overdrive-projector-xlarge
rotate: false
- xy: 251, 58
+ xy: 251, 158
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-phase-conduit-large
+block-overflow-gate-large
rotate: false
xy: 1363, 807
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-phase-conduit-medium
+block-overflow-gate-medium
rotate: false
- xy: 901, 317
+ xy: 1637, 579
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-phase-conduit-small
+block-overflow-gate-small
rotate: false
- xy: 1415, 99
+ xy: 1469, 11
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-phase-conduit-tiny
+block-overflow-gate-tiny
rotate: false
- xy: 1845, 291
+ xy: 1693, 135
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-phase-conduit-xlarge
+block-overflow-gate-xlarge
rotate: false
- xy: 151, 8
+ xy: 251, 108
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-phase-conveyor-large
+block-pebbles-large
rotate: false
xy: 1405, 849
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-phase-conveyor-medium
+block-pebbles-medium
rotate: false
- xy: 935, 351
+ xy: 1671, 579
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-phase-conveyor-small
+block-pebbles-small
rotate: false
- xy: 1441, 99
+ xy: 1495, 11
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-phase-conveyor-tiny
+block-pebbles-tiny
rotate: false
- xy: 1845, 273
+ xy: 1693, 117
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-phase-conveyor-xlarge
+block-pebbles-xlarge
rotate: false
- xy: 201, 8
+ xy: 251, 58
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-phase-wall-large
+block-phantom-factory-large
rotate: false
xy: 1321, 723
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-phase-wall-large-large
+block-phantom-factory-medium
+ rotate: false
+ xy: 1705, 579
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-phantom-factory-small
+ rotate: false
+ xy: 1571, 100
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-phantom-factory-tiny
+ rotate: false
+ xy: 1711, 189
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-phantom-factory-xlarge
+ rotate: false
+ xy: 151, 8
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-phase-conduit-large
rotate: false
xy: 1363, 765
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-phase-wall-large-medium
+block-phase-conduit-medium
rotate: false
- xy: 969, 385
+ xy: 1739, 579
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-phase-wall-large-small
+block-phase-conduit-small
rotate: false
- xy: 1467, 91
+ xy: 1597, 100
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-phase-wall-large-tiny
+block-phase-conduit-tiny
rotate: false
- xy: 1863, 309
+ xy: 1711, 171
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-phase-wall-large-xlarge
+block-phase-conduit-xlarge
rotate: false
- xy: 251, 8
+ xy: 201, 8
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-phase-wall-medium
- rotate: false
- xy: 1003, 419
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-phase-wall-small
- rotate: false
- xy: 1493, 79
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-phase-wall-tiny
- rotate: false
- xy: 1863, 291
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-phase-wall-xlarge
- rotate: false
- xy: 281, 619
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-phase-weaver-large
+block-phase-conveyor-large
rotate: false
xy: 1405, 807
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-phase-weaver-medium
+block-phase-conveyor-medium
rotate: false
- xy: 1037, 453
+ xy: 1773, 579
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-phase-weaver-small
+block-phase-conveyor-small
rotate: false
- xy: 1519, 67
+ xy: 1623, 100
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-phase-weaver-tiny
+block-phase-conveyor-tiny
rotate: false
- xy: 1863, 273
+ xy: 1711, 153
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-phase-weaver-xlarge
+block-phase-conveyor-xlarge
rotate: false
- xy: 281, 569
+ xy: 251, 8
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-pine-large
+block-phase-wall-large
rotate: false
xy: 1447, 849
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-pine-medium
- rotate: false
- xy: 1071, 487
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-pine-small
- rotate: false
- xy: 1361, 71
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-pine-tiny
- rotate: false
- xy: 1716, 253
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-pine-xlarge
- rotate: false
- xy: 301, 519
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-plastanium-compressor-large
+block-phase-wall-large-large
rotate: false
xy: 1363, 723
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-plastanium-compressor-medium
+block-phase-wall-large-medium
rotate: false
- xy: 1105, 521
+ xy: 1807, 579
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-plastanium-compressor-small
+block-phase-wall-large-small
rotate: false
- xy: 1361, 45
+ xy: 1501, 89
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-plastanium-compressor-tiny
+block-phase-wall-large-tiny
rotate: false
- xy: 1716, 235
+ xy: 1711, 135
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-plastanium-compressor-xlarge
+block-phase-wall-large-xlarge
rotate: false
- xy: 301, 469
+ xy: 281, 619
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-plastanium-wall-large
+block-phase-wall-medium
+ rotate: false
+ xy: 1841, 579
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-phase-wall-small
+ rotate: false
+ xy: 1501, 63
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-phase-wall-tiny
+ rotate: false
+ xy: 1711, 117
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-phase-wall-xlarge
+ rotate: false
+ xy: 281, 569
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-phase-weaver-large
rotate: false
xy: 1405, 765
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-plastanium-wall-large-large
+block-phase-weaver-medium
+ rotate: false
+ xy: 1875, 579
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-phase-weaver-small
+ rotate: false
+ xy: 1501, 37
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-phase-weaver-tiny
+ rotate: false
+ xy: 1823, 261
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-phase-weaver-xlarge
+ rotate: false
+ xy: 301, 519
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-pine-large
rotate: false
xy: 1447, 807
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-plastanium-wall-large-medium
+block-pine-medium
rotate: false
- xy: 1139, 555
+ xy: 1909, 579
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-plastanium-wall-large-small
+block-pine-small
rotate: false
- xy: 1361, 19
+ xy: 1521, 11
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-plastanium-wall-large-tiny
+block-pine-tiny
rotate: false
- xy: 1734, 253
+ xy: 1841, 261
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-plastanium-wall-large-xlarge
+block-pine-xlarge
rotate: false
- xy: 301, 419
+ xy: 301, 469
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-plastanium-wall-medium
- rotate: false
- xy: 901, 283
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-plastanium-wall-small
- rotate: false
- xy: 1545, 56
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-plastanium-wall-tiny
- rotate: false
- xy: 1716, 217
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-plastanium-wall-xlarge
- rotate: false
- xy: 301, 369
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-plated-conduit-large
+block-plastanium-compressor-large
rotate: false
xy: 1489, 849
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-plated-conduit-medium
+block-plastanium-compressor-medium
rotate: false
- xy: 935, 317
+ xy: 1943, 579
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-plated-conduit-small
+block-plastanium-compressor-small
rotate: false
- xy: 1571, 56
+ xy: 1649, 178
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-plated-conduit-tiny
+block-plastanium-compressor-tiny
rotate: false
- xy: 1752, 253
+ xy: 1859, 261
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-plated-conduit-xlarge
+block-plastanium-compressor-xlarge
rotate: false
- xy: 301, 319
+ xy: 301, 419
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-pneumatic-drill-large
+block-plastanium-wall-large
rotate: false
xy: 1405, 723
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-pneumatic-drill-medium
- rotate: false
- xy: 969, 351
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-pneumatic-drill-small
- rotate: false
- xy: 1597, 56
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-pneumatic-drill-tiny
- rotate: false
- xy: 1734, 235
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-pneumatic-drill-xlarge
- rotate: false
- xy: 301, 269
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-power-node-large
+block-plastanium-wall-large-large
rotate: false
xy: 1447, 765
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-power-node-large-large
+block-plastanium-wall-large-medium
+ rotate: false
+ xy: 1977, 579
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-plastanium-wall-large-small
+ rotate: false
+ xy: 1649, 152
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-plastanium-wall-large-tiny
+ rotate: false
+ xy: 1877, 261
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-plastanium-wall-large-xlarge
+ rotate: false
+ xy: 301, 369
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-plastanium-wall-medium
+ rotate: false
+ xy: 2011, 579
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-plastanium-wall-small
+ rotate: false
+ xy: 1649, 126
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-plastanium-wall-tiny
+ rotate: false
+ xy: 1895, 261
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-plastanium-wall-xlarge
+ rotate: false
+ xy: 301, 319
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-plated-conduit-large
rotate: false
xy: 1489, 807
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-power-node-large-medium
+block-plated-conduit-medium
rotate: false
- xy: 1003, 385
+ xy: 973, 545
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-power-node-large-small
+block-plated-conduit-small
rotate: false
- xy: 1623, 43
+ xy: 1649, 100
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-power-node-large-tiny
+block-plated-conduit-tiny
rotate: false
- xy: 1716, 199
+ xy: 1913, 261
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-power-node-large-xlarge
+block-plated-conduit-xlarge
rotate: false
- xy: 301, 219
+ xy: 301, 269
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-power-node-medium
- rotate: false
- xy: 1037, 419
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-power-node-small
- rotate: false
- xy: 1649, 43
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-power-node-tiny
- rotate: false
- xy: 1716, 181
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-power-node-xlarge
- rotate: false
- xy: 301, 169
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-power-source-large
+block-pneumatic-drill-large
rotate: false
xy: 1531, 849
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-power-source-medium
+block-pneumatic-drill-medium
rotate: false
- xy: 1071, 453
+ xy: 973, 511
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-power-source-small
+block-pneumatic-drill-small
rotate: false
- xy: 1675, 43
+ xy: 1613, 385
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-power-source-tiny
+block-pneumatic-drill-tiny
rotate: false
- xy: 1770, 253
+ xy: 1931, 261
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-power-source-xlarge
+block-pneumatic-drill-xlarge
rotate: false
- xy: 301, 119
+ xy: 301, 219
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-power-void-large
+block-power-node-large
rotate: false
xy: 1447, 723
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-power-void-medium
- rotate: false
- xy: 1105, 487
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-power-void-small
- rotate: false
- xy: 1701, 43
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-power-void-tiny
- rotate: false
- xy: 1752, 235
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-power-void-xlarge
- rotate: false
- xy: 301, 69
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-pulse-conduit-large
+block-power-node-large-large
rotate: false
xy: 1489, 765
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-pulse-conduit-medium
+block-power-node-large-medium
rotate: false
- xy: 1139, 521
+ xy: 1007, 545
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-pulse-conduit-small
+block-power-node-large-small
rotate: false
- xy: 1631, 363
+ xy: 1699, 427
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-pulse-conduit-tiny
+block-power-node-large-tiny
rotate: false
- xy: 1734, 217
+ xy: 1949, 261
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-pulse-conduit-xlarge
+block-power-node-large-xlarge
rotate: false
- xy: 301, 19
+ xy: 301, 169
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-pulverizer-large
+block-power-node-medium
+ rotate: false
+ xy: 973, 477
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-power-node-small
+ rotate: false
+ xy: 1699, 401
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-power-node-tiny
+ rotate: false
+ xy: 1967, 261
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-power-node-xlarge
+ rotate: false
+ xy: 301, 119
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-power-source-large
rotate: false
xy: 1531, 807
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-pulverizer-medium
+block-power-source-medium
rotate: false
- xy: 1173, 555
+ xy: 1007, 511
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-pulverizer-small
+block-power-source-small
rotate: false
- xy: 1626, 337
+ xy: 1699, 375
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-pulverizer-tiny
+block-power-source-tiny
rotate: false
- xy: 1788, 253
+ xy: 1985, 261
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-pulverizer-xlarge
+block-power-source-xlarge
rotate: false
- xy: 795, 878
+ xy: 301, 69
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-pyratite-mixer-large
+block-power-void-large
rotate: false
xy: 1573, 849
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-pyratite-mixer-medium
+block-power-void-medium
rotate: false
- xy: 901, 249
+ xy: 1041, 545
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-pyratite-mixer-small
+block-power-void-small
rotate: false
- xy: 1626, 311
+ xy: 1725, 411
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-pyratite-mixer-tiny
+block-power-void-tiny
rotate: false
- xy: 1770, 235
+ xy: 2003, 261
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-pyratite-mixer-xlarge
+block-power-void-xlarge
rotate: false
- xy: 309, 816
+ xy: 301, 19
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-repair-point-large
+block-pulse-conduit-large
rotate: false
xy: 1489, 723
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-repair-point-medium
+block-pulse-conduit-medium
rotate: false
- xy: 935, 283
+ xy: 973, 443
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-repair-point-small
+block-pulse-conduit-small
rotate: false
- xy: 1652, 337
+ xy: 1725, 385
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-repair-point-tiny
+block-pulse-conduit-tiny
rotate: false
- xy: 1752, 217
+ xy: 2021, 261
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-repair-point-xlarge
+block-pulse-conduit-xlarge
rotate: false
- xy: 309, 766
+ xy: 795, 878
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-revenant-factory-large
+block-pulverizer-large
rotate: false
xy: 1531, 765
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-revenant-factory-medium
+block-pulverizer-medium
rotate: false
- xy: 969, 317
+ xy: 1007, 477
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-revenant-factory-small
+block-pulverizer-small
rotate: false
- xy: 1652, 311
+ xy: 1751, 411
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-revenant-factory-tiny
+block-pulverizer-tiny
rotate: false
- xy: 1734, 199
+ xy: 1683, 99
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-revenant-factory-xlarge
+block-pulverizer-xlarge
rotate: false
- xy: 359, 816
+ xy: 309, 816
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-ripple-large
+block-pyratite-mixer-large
rotate: false
xy: 1573, 807
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-ripple-medium
+block-pyratite-mixer-medium
rotate: false
- xy: 1003, 351
+ xy: 1041, 511
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-ripple-small
+block-pyratite-mixer-small
rotate: false
- xy: 1649, 285
+ xy: 1751, 385
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-ripple-tiny
+block-pyratite-mixer-tiny
rotate: false
- xy: 1734, 181
+ xy: 1683, 81
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-ripple-xlarge
+block-pyratite-mixer-xlarge
rotate: false
- xy: 309, 716
+ xy: 309, 766
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-rock-large
+block-repair-point-large
rotate: false
xy: 1615, 849
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-rock-medium
+block-repair-point-medium
rotate: false
- xy: 1037, 385
+ xy: 1075, 545
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-rock-small
+block-repair-point-small
rotate: false
- xy: 1649, 259
+ xy: 1777, 411
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-rock-tiny
+block-repair-point-tiny
rotate: false
- xy: 1806, 253
+ xy: 1701, 99
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-rock-xlarge
+block-repair-point-xlarge
rotate: false
- xy: 359, 766
+ xy: 359, 816
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-rocks-large
+block-revenant-factory-large
rotate: false
xy: 1531, 723
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-rocks-medium
+block-revenant-factory-medium
rotate: false
- xy: 1071, 419
+ xy: 973, 409
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-rocks-small
+block-revenant-factory-small
rotate: false
- xy: 1675, 285
+ xy: 1777, 385
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-rocks-tiny
+block-revenant-factory-tiny
rotate: false
- xy: 1788, 235
+ xy: 1683, 63
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-rocks-xlarge
+block-revenant-factory-xlarge
rotate: false
- xy: 409, 816
+ xy: 309, 716
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-rotary-pump-large
+block-ripple-large
rotate: false
xy: 1573, 765
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-rotary-pump-medium
+block-ripple-medium
rotate: false
- xy: 1105, 453
+ xy: 1007, 443
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-rotary-pump-small
+block-ripple-small
rotate: false
- xy: 1675, 259
+ xy: 1803, 411
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-rotary-pump-tiny
+block-ripple-tiny
rotate: false
- xy: 1770, 217
+ xy: 1701, 81
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-rotary-pump-xlarge
+block-ripple-xlarge
rotate: false
- xy: 359, 716
+ xy: 359, 766
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-router-large
+block-rock-large
rotate: false
xy: 1615, 807
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-router-medium
+block-rock-medium
rotate: false
- xy: 1139, 487
+ xy: 1041, 477
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-router-small
+block-rock-small
rotate: false
- xy: 1664, 233
+ xy: 1803, 385
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-router-tiny
+block-rock-tiny
rotate: false
- xy: 1752, 199
+ xy: 1683, 45
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-router-xlarge
+block-rock-xlarge
rotate: false
- xy: 409, 766
+ xy: 409, 816
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-rtg-generator-large
+block-rocks-large
rotate: false
xy: 1657, 849
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-rtg-generator-medium
+block-rocks-medium
rotate: false
- xy: 1173, 521
+ xy: 1075, 511
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-rtg-generator-small
+block-rocks-small
rotate: false
- xy: 1664, 207
+ xy: 1829, 411
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-rtg-generator-tiny
+block-rocks-tiny
rotate: false
- xy: 1824, 253
+ xy: 1701, 63
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-rtg-generator-xlarge
+block-rocks-xlarge
rotate: false
- xy: 459, 816
+ xy: 359, 716
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-salt-large
+block-rotary-pump-large
rotate: false
xy: 1573, 723
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-salt-medium
+block-rotary-pump-medium
rotate: false
- xy: 901, 215
+ xy: 1109, 545
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-salt-small
+block-rotary-pump-small
rotate: false
- xy: 1664, 181
+ xy: 1829, 385
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-salt-tiny
+block-rotary-pump-tiny
rotate: false
- xy: 1806, 235
+ xy: 1683, 27
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-salt-xlarge
+block-rotary-pump-xlarge
rotate: false
- xy: 409, 716
+ xy: 409, 766
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-saltrocks-large
+block-router-large
rotate: false
xy: 1615, 765
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-saltrocks-medium
+block-router-medium
rotate: false
- xy: 935, 249
+ xy: 973, 375
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-saltrocks-small
+block-router-small
rotate: false
- xy: 1690, 233
+ xy: 1855, 411
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-saltrocks-tiny
+block-router-tiny
rotate: false
- xy: 1788, 217
+ xy: 1701, 45
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-saltrocks-xlarge
+block-router-xlarge
rotate: false
- xy: 459, 766
+ xy: 459, 816
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-salvo-large
+block-rtg-generator-large
rotate: false
xy: 1657, 807
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-salvo-medium
+block-rtg-generator-medium
rotate: false
- xy: 969, 283
+ xy: 1007, 409
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-salvo-small
+block-rtg-generator-small
rotate: false
- xy: 1690, 207
+ xy: 1855, 385
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-salvo-tiny
+block-rtg-generator-tiny
rotate: false
- xy: 1770, 199
+ xy: 1701, 27
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-salvo-xlarge
+block-rtg-generator-xlarge
rotate: false
- xy: 509, 816
+ xy: 409, 716
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-sand-boulder-large
+block-salt-large
rotate: false
xy: 1699, 849
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-sand-boulder-medium
+block-salt-medium
rotate: false
- xy: 1003, 317
+ xy: 1041, 443
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-sand-boulder-small
+block-salt-small
rotate: false
- xy: 1690, 181
+ xy: 1881, 411
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-sand-boulder-tiny
+block-salt-tiny
rotate: false
- xy: 1752, 181
+ xy: 1691, 9
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-sand-boulder-xlarge
+block-salt-xlarge
rotate: false
- xy: 459, 716
+ xy: 459, 766
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-sand-large
+block-saltrocks-large
rotate: false
xy: 1615, 723
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-sand-medium
+block-saltrocks-medium
rotate: false
- xy: 1037, 351
+ xy: 1075, 477
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-sand-small
+block-saltrocks-small
rotate: false
- xy: 1688, 155
+ xy: 1881, 385
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-sand-tiny
+block-saltrocks-tiny
rotate: false
- xy: 1740, 163
+ xy: 1719, 99
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-sand-water-large
+block-saltrocks-xlarge
+ rotate: false
+ xy: 509, 816
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-salvo-large
rotate: false
xy: 1657, 765
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-sand-water-medium
+block-salvo-medium
rotate: false
- xy: 1071, 385
+ xy: 1109, 511
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-sand-water-small
+block-salvo-small
rotate: false
- xy: 1639, 421
+ xy: 1907, 411
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-sand-water-tiny
+block-salvo-tiny
rotate: false
- xy: 1824, 235
+ xy: 1719, 81
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-sand-water-xlarge
+block-salvo-xlarge
rotate: false
- xy: 509, 766
+ xy: 459, 716
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-sand-xlarge
- rotate: false
- xy: 559, 816
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-sandrocks-large
+block-sand-boulder-large
rotate: false
xy: 1699, 807
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-sandrocks-medium
+block-sand-boulder-medium
rotate: false
- xy: 1105, 419
+ xy: 1143, 545
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-sandrocks-small
+block-sand-boulder-small
rotate: false
- xy: 1389, 73
+ xy: 1907, 385
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-sandrocks-tiny
+block-sand-boulder-tiny
rotate: false
- xy: 1806, 217
+ xy: 1719, 63
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-sandrocks-xlarge
+block-sand-boulder-xlarge
rotate: false
- xy: 509, 716
+ xy: 509, 766
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-scatter-large
+block-sand-large
rotate: false
xy: 1741, 849
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-scatter-medium
+block-sand-medium
rotate: false
- xy: 1139, 453
+ xy: 973, 341
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-scatter-small
+block-sand-small
rotate: false
- xy: 1415, 73
+ xy: 1933, 411
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-scatter-tiny
+block-sand-tiny
rotate: false
- xy: 1788, 199
+ xy: 1719, 45
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-scatter-xlarge
- rotate: false
- xy: 559, 766
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-scorch-large
+block-sand-water-large
rotate: false
xy: 1657, 723
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-scorch-medium
+block-sand-water-medium
rotate: false
- xy: 1173, 487
+ xy: 1007, 375
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-scorch-small
+block-sand-water-small
rotate: false
- xy: 1441, 73
+ xy: 1933, 385
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-scorch-tiny
+block-sand-water-tiny
rotate: false
- xy: 1770, 181
+ xy: 1719, 27
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-scorch-xlarge
+block-sand-water-xlarge
rotate: false
- xy: 609, 816
+ xy: 559, 816
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-scrap-wall-gigantic-large
+block-sand-xlarge
+ rotate: false
+ xy: 509, 716
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-sandrocks-large
rotate: false
xy: 1699, 765
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-scrap-wall-gigantic-medium
+block-sandrocks-medium
rotate: false
- xy: 901, 181
+ xy: 1041, 409
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-scrap-wall-gigantic-small
+block-sandrocks-small
rotate: false
- xy: 1467, 65
+ xy: 1959, 411
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-scrap-wall-gigantic-tiny
+block-sandrocks-tiny
rotate: false
- xy: 1758, 163
+ xy: 1709, 9
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-scrap-wall-gigantic-xlarge
+block-sandrocks-xlarge
rotate: false
- xy: 559, 716
+ xy: 559, 766
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-scrap-wall-huge-large
+block-scatter-large
rotate: false
xy: 1741, 807
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-scrap-wall-huge-medium
+block-scatter-medium
rotate: false
- xy: 935, 215
+ xy: 1075, 443
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-scrap-wall-huge-small
+block-scatter-small
rotate: false
- xy: 1493, 53
+ xy: 1959, 385
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-scrap-wall-huge-tiny
+block-scatter-tiny
rotate: false
- xy: 1824, 217
+ xy: 1727, 9
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-scrap-wall-huge-xlarge
+block-scatter-xlarge
rotate: false
- xy: 609, 766
+ xy: 609, 816
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-scrap-wall-large
+block-scorch-large
rotate: false
xy: 1783, 849
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-scrap-wall-large-large
+block-scorch-medium
+ rotate: false
+ xy: 1109, 477
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-scorch-small
+ rotate: false
+ xy: 1985, 411
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-scorch-tiny
+ rotate: false
+ xy: 1724, 243
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-scorch-xlarge
+ rotate: false
+ xy: 559, 716
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-scrap-wall-gigantic-large
rotate: false
xy: 1699, 723
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-scrap-wall-large-medium
+block-scrap-wall-gigantic-medium
rotate: false
- xy: 969, 249
+ xy: 1143, 511
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-scrap-wall-large-small
+block-scrap-wall-gigantic-small
rotate: false
- xy: 1519, 41
+ xy: 1985, 385
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-scrap-wall-large-tiny
+block-scrap-wall-gigantic-tiny
rotate: false
- xy: 1806, 199
+ xy: 1724, 225
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-scrap-wall-large-xlarge
+block-scrap-wall-gigantic-xlarge
rotate: false
- xy: 659, 816
+ xy: 609, 766
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-scrap-wall-medium
- rotate: false
- xy: 1003, 283
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-scrap-wall-small
- rotate: false
- xy: 1387, 47
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-scrap-wall-tiny
- rotate: false
- xy: 1788, 181
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-scrap-wall-xlarge
- rotate: false
- xy: 609, 716
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-separator-large
+block-scrap-wall-huge-large
rotate: false
xy: 1741, 765
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-separator-medium
+block-scrap-wall-huge-medium
rotate: false
- xy: 1037, 317
+ xy: 1177, 545
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-separator-small
+block-scrap-wall-huge-small
rotate: false
- xy: 1413, 47
+ xy: 2011, 411
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-separator-tiny
+block-scrap-wall-huge-tiny
rotate: false
- xy: 1776, 163
+ xy: 1724, 207
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-separator-xlarge
+block-scrap-wall-huge-xlarge
rotate: false
- xy: 659, 766
+ xy: 659, 816
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-shale-boulder-large
+block-scrap-wall-large
rotate: false
xy: 1783, 807
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-shale-boulder-medium
- rotate: false
- xy: 1071, 351
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-shale-boulder-small
- rotate: false
- xy: 1387, 21
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-shale-boulder-tiny
- rotate: false
- xy: 1824, 199
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-shale-boulder-xlarge
- rotate: false
- xy: 709, 816
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-shale-large
+block-scrap-wall-large-large
rotate: false
xy: 1825, 849
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-shale-medium
+block-scrap-wall-large-medium
rotate: false
- xy: 1105, 385
+ xy: 973, 307
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-shale-small
+block-scrap-wall-large-small
rotate: false
- xy: 1439, 47
+ xy: 2011, 385
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-shale-tiny
+block-scrap-wall-large-tiny
rotate: false
- xy: 1806, 181
+ xy: 1729, 189
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-shale-xlarge
+block-scrap-wall-large-xlarge
rotate: false
- xy: 659, 716
+ xy: 609, 716
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-shalerocks-large
+block-scrap-wall-medium
+ rotate: false
+ xy: 1007, 341
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-scrap-wall-small
+ rotate: false
+ xy: 1725, 359
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-scrap-wall-tiny
+ rotate: false
+ xy: 1729, 171
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-scrap-wall-xlarge
+ rotate: false
+ xy: 659, 766
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-separator-large
rotate: false
xy: 1741, 723
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-shalerocks-medium
+block-separator-medium
rotate: false
- xy: 1139, 419
+ xy: 1041, 375
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-shalerocks-small
+block-separator-small
rotate: false
- xy: 1413, 21
+ xy: 1751, 359
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-shalerocks-tiny
+block-separator-tiny
rotate: false
- xy: 1794, 163
+ xy: 1729, 153
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-shalerocks-xlarge
+block-separator-xlarge
rotate: false
- xy: 709, 766
+ xy: 709, 816
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-shock-mine-large
+block-shale-boulder-large
rotate: false
xy: 1783, 765
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-shock-mine-medium
+block-shale-boulder-medium
rotate: false
- xy: 1173, 453
+ xy: 1075, 409
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-shock-mine-small
+block-shale-boulder-small
rotate: false
- xy: 1439, 21
+ xy: 1777, 359
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-shock-mine-tiny
+block-shale-boulder-tiny
rotate: false
- xy: 1824, 181
+ xy: 1729, 135
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-shock-mine-xlarge
+block-shale-boulder-xlarge
rotate: false
- xy: 709, 716
+ xy: 659, 716
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-shrubs-large
+block-shale-large
rotate: false
xy: 1825, 807
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-shrubs-medium
+block-shale-medium
rotate: false
- xy: 901, 147
+ xy: 1109, 443
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-shrubs-small
+block-shale-small
rotate: false
- xy: 1465, 39
+ xy: 1803, 359
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-shrubs-tiny
+block-shale-tiny
rotate: false
- xy: 1812, 163
+ xy: 1729, 117
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-shrubs-xlarge
+block-shale-xlarge
rotate: false
- xy: 759, 816
+ xy: 709, 766
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-silicon-smelter-large
+block-shalerocks-large
rotate: false
xy: 1867, 849
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-silicon-smelter-medium
+block-shalerocks-medium
rotate: false
- xy: 935, 181
+ xy: 1143, 477
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-silicon-smelter-small
+block-shalerocks-small
rotate: false
- xy: 1465, 13
+ xy: 1829, 359
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-silicon-smelter-tiny
+block-shalerocks-tiny
rotate: false
- xy: 1830, 163
+ xy: 1737, 99
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-silicon-smelter-xlarge
+block-shalerocks-xlarge
rotate: false
- xy: 759, 766
+ xy: 709, 716
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-snow-large
+block-shock-mine-large
rotate: false
xy: 1783, 723
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-snow-medium
+block-shock-mine-medium
rotate: false
- xy: 969, 215
+ xy: 1177, 511
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-snow-pine-large
+block-shock-mine-small
+ rotate: false
+ xy: 1855, 359
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-shock-mine-tiny
+ rotate: false
+ xy: 1737, 81
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-shock-mine-xlarge
+ rotate: false
+ xy: 759, 816
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-shrubs-large
rotate: false
xy: 1825, 765
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-snow-pine-medium
+block-shrubs-medium
rotate: false
- xy: 1003, 249
+ xy: 1211, 545
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-snow-pine-small
+block-shrubs-small
rotate: false
- xy: 1491, 27
+ xy: 1881, 359
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-snow-pine-tiny
+block-shrubs-tiny
rotate: false
- xy: 1763, 145
+ xy: 1737, 63
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-snow-pine-xlarge
+block-shrubs-xlarge
rotate: false
- xy: 759, 716
+ xy: 759, 766
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-snow-small
- rotate: false
- xy: 1491, 1
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-snow-tiny
- rotate: false
- xy: 1781, 145
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-snow-xlarge
- rotate: false
- xy: 809, 828
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-snowrock-large
+block-silicon-smelter-large
rotate: false
xy: 1867, 807
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-snowrock-medium
+block-silicon-smelter-medium
rotate: false
- xy: 1037, 283
+ xy: 973, 273
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-snowrock-small
+block-silicon-smelter-small
rotate: false
- xy: 1517, 15
+ xy: 1907, 359
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-snowrock-tiny
+block-silicon-smelter-tiny
rotate: false
- xy: 1763, 127
+ xy: 1737, 45
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-snowrock-xlarge
+block-silicon-smelter-xlarge
rotate: false
- xy: 809, 778
+ xy: 759, 716
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-snowrocks-large
+block-snow-large
rotate: false
xy: 1909, 849
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-snowrocks-medium
+block-snow-medium
rotate: false
- xy: 1071, 317
+ xy: 1007, 307
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-snowrocks-small
- rotate: false
- xy: 1545, 30
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-snowrocks-tiny
- rotate: false
- xy: 1781, 127
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-snowrocks-xlarge
- rotate: false
- xy: 809, 728
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-solar-panel-large
+block-snow-pine-large
rotate: false
xy: 1825, 723
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-solar-panel-large-large
+block-snow-pine-medium
+ rotate: false
+ xy: 1041, 341
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-snow-pine-small
+ rotate: false
+ xy: 1933, 359
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-snow-pine-tiny
+ rotate: false
+ xy: 1737, 27
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-snow-pine-xlarge
+ rotate: false
+ xy: 809, 828
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-snow-small
+ rotate: false
+ xy: 1959, 359
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-snow-tiny
+ rotate: false
+ xy: 1745, 9
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-snow-xlarge
+ rotate: false
+ xy: 809, 778
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-snowrock-large
rotate: false
xy: 1867, 765
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-solar-panel-large-medium
+block-snowrock-medium
rotate: false
- xy: 1105, 351
+ xy: 1075, 375
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-solar-panel-large-small
+block-snowrock-small
rotate: false
- xy: 1571, 30
+ xy: 1985, 359
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-solar-panel-large-tiny
+block-snowrock-tiny
rotate: false
- xy: 1799, 145
+ xy: 1742, 273
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-solar-panel-large-xlarge
+block-snowrock-xlarge
rotate: false
- xy: 809, 678
+ xy: 809, 728
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-solar-panel-medium
- rotate: false
- xy: 1139, 385
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-solar-panel-small
- rotate: false
- xy: 1597, 30
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-solar-panel-tiny
- rotate: false
- xy: 1763, 109
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-solar-panel-xlarge
- rotate: false
- xy: 331, 666
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-sorter-large
+block-snowrocks-large
rotate: false
xy: 1909, 807
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-sorter-medium
+block-snowrocks-medium
rotate: false
- xy: 1173, 419
+ xy: 1109, 409
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-sorter-small
+block-snowrocks-small
rotate: false
- xy: 1543, 4
+ xy: 2011, 359
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-sorter-tiny
+block-snowrocks-tiny
rotate: false
- xy: 1781, 109
+ xy: 1760, 273
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-sorter-xlarge
+block-snowrocks-xlarge
rotate: false
- xy: 331, 616
+ xy: 809, 678
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-spawn-large
+block-solar-panel-large
rotate: false
xy: 1867, 723
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-spawn-medium
- rotate: false
- xy: 901, 113
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-spawn-small
- rotate: false
- xy: 1569, 4
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-spawn-tiny
- rotate: false
- xy: 1799, 127
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-spawn-xlarge
- rotate: false
- xy: 381, 666
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-spectre-large
+block-solar-panel-large-large
rotate: false
xy: 1909, 765
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-spectre-medium
+block-solar-panel-large-medium
rotate: false
- xy: 935, 147
+ xy: 1143, 443
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-spectre-small
+block-solar-panel-large-small
rotate: false
- xy: 1595, 4
+ xy: 1699, 349
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-spectre-tiny
+block-solar-panel-large-tiny
rotate: false
- xy: 1817, 145
+ xy: 1742, 255
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-spectre-xlarge
+block-solar-panel-large-xlarge
rotate: false
- xy: 381, 616
+ xy: 331, 666
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-spirit-factory-large
+block-solar-panel-medium
+ rotate: false
+ xy: 1177, 477
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-solar-panel-small
+ rotate: false
+ xy: 1725, 333
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-solar-panel-tiny
+ rotate: false
+ xy: 1742, 237
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-solar-panel-xlarge
+ rotate: false
+ xy: 331, 616
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-sorter-large
rotate: false
xy: 1909, 723
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-spirit-factory-medium
+block-sorter-medium
rotate: false
- xy: 969, 181
+ xy: 1211, 511
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-spirit-factory-small
+block-sorter-small
rotate: false
- xy: 1623, 17
+ xy: 1751, 333
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-spirit-factory-tiny
+block-sorter-tiny
rotate: false
- xy: 1799, 109
+ xy: 1760, 255
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-spirit-factory-xlarge
+block-sorter-xlarge
rotate: false
- xy: 431, 666
+ xy: 381, 666
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-spore-cluster-large
+block-spawn-large
rotate: false
xy: 1951, 849
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-spore-cluster-medium
+block-spawn-medium
rotate: false
- xy: 1003, 215
+ xy: 1245, 545
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-spore-cluster-small
+block-spawn-small
rotate: false
- xy: 1649, 17
+ xy: 1777, 333
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-spore-cluster-tiny
+block-spawn-tiny
rotate: false
- xy: 1817, 127
+ xy: 1742, 219
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-spore-cluster-xlarge
+block-spawn-xlarge
rotate: false
- xy: 431, 616
+ xy: 381, 616
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-spore-moss-large
+block-spectre-large
rotate: false
xy: 1951, 807
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-spore-moss-medium
+block-spectre-medium
rotate: false
- xy: 1037, 249
+ xy: 973, 239
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-spore-moss-small
+block-spectre-small
rotate: false
- xy: 1675, 17
+ xy: 1803, 333
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-spore-moss-tiny
+block-spectre-tiny
rotate: false
- xy: 1817, 109
+ xy: 1760, 237
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-spore-moss-xlarge
+block-spectre-xlarge
rotate: false
- xy: 481, 666
+ xy: 431, 666
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-spore-pine-large
+block-spirit-factory-large
rotate: false
xy: 1951, 765
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-spore-pine-medium
+block-spirit-factory-medium
rotate: false
- xy: 1071, 283
+ xy: 1007, 273
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-spore-pine-small
+block-spirit-factory-small
rotate: false
- xy: 1701, 17
+ xy: 1829, 333
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-spore-pine-tiny
+block-spirit-factory-tiny
rotate: false
- xy: 1835, 145
+ xy: 1760, 219
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-spore-pine-xlarge
+block-spirit-factory-xlarge
rotate: false
- xy: 481, 616
+ xy: 431, 616
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-spore-press-large
+block-spore-cluster-large
rotate: false
xy: 1951, 723
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-spore-press-medium
+block-spore-cluster-medium
rotate: false
- xy: 1105, 317
+ xy: 1041, 307
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-spore-press-small
+block-spore-cluster-small
rotate: false
- xy: 1699, 405
+ xy: 1855, 333
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-spore-press-tiny
+block-spore-cluster-tiny
rotate: false
- xy: 1835, 127
+ xy: 1778, 260
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-spore-press-xlarge
+block-spore-cluster-xlarge
rotate: false
- xy: 531, 666
+ xy: 481, 666
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-sporerocks-large
- rotate: false
- xy: 1979, 891
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-sporerocks-medium
- rotate: false
- xy: 1139, 351
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-sporerocks-small
- rotate: false
- xy: 1725, 405
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-sporerocks-tiny
- rotate: false
- xy: 1835, 109
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-sporerocks-xlarge
- rotate: false
- xy: 531, 616
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-stone-large
- rotate: false
- xy: 1993, 849
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-stone-medium
- rotate: false
- xy: 1173, 385
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-stone-small
- rotate: false
- xy: 1751, 405
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-stone-tiny
- rotate: false
- xy: 1779, 91
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-stone-xlarge
- rotate: false
- xy: 581, 666
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-surge-tower-large
- rotate: false
- xy: 1993, 807
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-surge-tower-medium
- rotate: false
- xy: 901, 79
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-surge-tower-small
- rotate: false
- xy: 1777, 405
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-surge-tower-tiny
- rotate: false
- xy: 1779, 73
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-surge-tower-xlarge
- rotate: false
- xy: 581, 616
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-surge-wall-large
- rotate: false
- xy: 1993, 765
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-surge-wall-large-large
- rotate: false
- xy: 1993, 723
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-surge-wall-large-medium
- rotate: false
- xy: 935, 113
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-surge-wall-large-small
- rotate: false
- xy: 1803, 405
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-surge-wall-large-tiny
- rotate: false
- xy: 1797, 91
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-surge-wall-large-xlarge
- rotate: false
- xy: 631, 666
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-surge-wall-medium
- rotate: false
- xy: 969, 147
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-surge-wall-small
- rotate: false
- xy: 1829, 405
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-surge-wall-tiny
- rotate: false
- xy: 1779, 55
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-surge-wall-xlarge
- rotate: false
- xy: 631, 616
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-swarmer-large
- rotate: false
- xy: 943, 681
- size: 40, 40
- orig: 40, 40
- offset: 0, 0
- index: -1
-block-swarmer-medium
- rotate: false
- xy: 1003, 181
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-swarmer-small
- rotate: false
- xy: 1855, 405
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-swarmer-tiny
- rotate: false
- xy: 1797, 73
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-swarmer-xlarge
- rotate: false
- xy: 681, 666
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-tainted-water-large
+block-spore-moss-large
rotate: false
xy: 985, 681
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-tainted-water-medium
+block-spore-moss-medium
rotate: false
- xy: 1037, 215
+ xy: 1075, 341
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-tainted-water-small
+block-spore-moss-small
rotate: false
- xy: 1881, 405
+ xy: 1881, 333
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-tainted-water-tiny
+block-spore-moss-tiny
rotate: false
- xy: 1815, 91
+ xy: 1796, 260
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-tainted-water-xlarge
+block-spore-moss-xlarge
rotate: false
- xy: 681, 616
+ xy: 481, 616
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-tar-large
+block-spore-pine-large
rotate: false
xy: 1027, 681
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-tar-medium
+block-spore-pine-medium
rotate: false
- xy: 1071, 249
+ xy: 1109, 375
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-tar-small
+block-spore-pine-small
rotate: false
- xy: 1907, 405
+ xy: 1907, 333
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-tar-tiny
+block-spore-pine-tiny
rotate: false
- xy: 1779, 37
+ xy: 1778, 242
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-tar-xlarge
+block-spore-pine-xlarge
rotate: false
- xy: 731, 666
+ xy: 531, 666
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-tau-mech-pad-large
+block-spore-press-large
rotate: false
xy: 1069, 681
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-tau-mech-pad-medium
+block-spore-press-medium
rotate: false
- xy: 1105, 283
+ xy: 1143, 409
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-tau-mech-pad-small
+block-spore-press-small
rotate: false
- xy: 1933, 405
+ xy: 1933, 333
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-tau-mech-pad-tiny
+block-spore-press-tiny
rotate: false
- xy: 1797, 55
+ xy: 1778, 224
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-tau-mech-pad-xlarge
+block-spore-press-xlarge
rotate: false
- xy: 731, 616
+ xy: 531, 616
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-tendrils-large
+block-sporerocks-large
rotate: false
xy: 1111, 681
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-tendrils-medium
+block-sporerocks-medium
rotate: false
- xy: 1139, 317
+ xy: 1177, 443
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-tendrils-small
+block-sporerocks-small
rotate: false
- xy: 1959, 405
+ xy: 1959, 333
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-tendrils-tiny
+block-sporerocks-tiny
rotate: false
- xy: 1815, 73
+ xy: 1796, 242
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-tendrils-xlarge
+block-sporerocks-xlarge
rotate: false
- xy: 781, 628
+ xy: 581, 666
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-thermal-generator-large
+block-stone-large
rotate: false
xy: 1153, 681
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-thermal-generator-medium
+block-stone-medium
rotate: false
- xy: 1173, 351
+ xy: 1211, 477
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-thermal-generator-small
+block-stone-small
rotate: false
- xy: 1985, 405
+ xy: 1985, 333
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-thermal-generator-tiny
+block-stone-tiny
rotate: false
- xy: 1833, 91
+ xy: 1796, 224
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-thermal-generator-xlarge
+block-stone-xlarge
rotate: false
- xy: 831, 628
+ xy: 581, 616
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-thermal-pump-large
+block-surge-tower-large
rotate: false
xy: 1195, 681
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-thermal-pump-medium
+block-surge-tower-medium
rotate: false
- xy: 901, 45
+ xy: 1245, 511
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-thermal-pump-small
+block-surge-tower-small
rotate: false
- xy: 2011, 405
+ xy: 2011, 333
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-thermal-pump-tiny
+block-surge-tower-tiny
rotate: false
- xy: 1797, 37
+ xy: 1814, 243
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-thermal-pump-xlarge
+block-surge-tower-xlarge
rotate: false
- xy: 781, 578
+ xy: 631, 666
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-thorium-reactor-large
+block-surge-wall-large
rotate: false
xy: 1237, 681
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-thorium-reactor-medium
- rotate: false
- xy: 935, 79
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-thorium-reactor-small
- rotate: false
- xy: 1714, 155
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-thorium-reactor-tiny
- rotate: false
- xy: 1815, 55
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-thorium-reactor-xlarge
- rotate: false
- xy: 831, 578
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-thorium-wall-large
+block-surge-wall-large-large
rotate: false
xy: 1279, 681
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-thorium-wall-large-large
+block-surge-wall-large-medium
+ rotate: false
+ xy: 1279, 545
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-surge-wall-large-small
+ rotate: false
+ xy: 1527, 91
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-surge-wall-large-tiny
+ rotate: false
+ xy: 1814, 225
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-surge-wall-large-xlarge
+ rotate: false
+ xy: 631, 616
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-surge-wall-medium
+ rotate: false
+ xy: 973, 205
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-surge-wall-small
+ rotate: false
+ xy: 1527, 65
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-surge-wall-tiny
+ rotate: false
+ xy: 1832, 243
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-surge-wall-xlarge
+ rotate: false
+ xy: 681, 666
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-swarmer-large
rotate: false
xy: 1321, 681
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-thorium-wall-large-medium
+block-swarmer-medium
rotate: false
- xy: 969, 113
+ xy: 1007, 239
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-thorium-wall-large-small
+block-swarmer-small
rotate: false
- xy: 1711, 129
+ xy: 1527, 39
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-thorium-wall-large-tiny
+block-swarmer-tiny
rotate: false
- xy: 1833, 73
+ xy: 1832, 225
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-thorium-wall-large-xlarge
+block-swarmer-xlarge
rotate: false
- xy: 351, 566
+ xy: 681, 616
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-thorium-wall-medium
- rotate: false
- xy: 1003, 147
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-thorium-wall-small
- rotate: false
- xy: 1711, 103
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-thorium-wall-tiny
- rotate: false
- xy: 1815, 37
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-thorium-wall-xlarge
- rotate: false
- xy: 351, 516
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-thruster-large
+block-tainted-water-large
rotate: false
xy: 1363, 681
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-thruster-medium
+block-tainted-water-medium
rotate: false
- xy: 1037, 181
+ xy: 1041, 273
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-thruster-small
+block-tainted-water-small
rotate: false
- xy: 1737, 129
+ xy: 1553, 74
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-thruster-tiny
+block-tainted-water-tiny
rotate: false
- xy: 1833, 55
+ xy: 1850, 243
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-thruster-xlarge
+block-tainted-water-xlarge
rotate: false
- xy: 401, 566
+ xy: 731, 666
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-titan-factory-large
+block-tar-large
rotate: false
xy: 1405, 681
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-titan-factory-medium
+block-tar-medium
rotate: false
- xy: 1071, 215
+ xy: 1075, 307
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-titan-factory-small
+block-tar-small
rotate: false
- xy: 1737, 103
+ xy: 1553, 48
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-titan-factory-tiny
+block-tar-tiny
rotate: false
- xy: 1833, 37
+ xy: 1850, 225
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-titan-factory-xlarge
+block-tar-xlarge
rotate: false
- xy: 351, 466
+ xy: 731, 616
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-titanium-conveyor-large
+block-tau-mech-pad-large
rotate: false
xy: 1447, 681
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-titanium-conveyor-medium
+block-tau-mech-pad-medium
rotate: false
- xy: 1105, 249
+ xy: 1109, 341
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-titanium-conveyor-small
+block-tau-mech-pad-small
rotate: false
- xy: 1727, 77
+ xy: 1579, 74
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-titanium-conveyor-tiny
+block-tau-mech-pad-tiny
rotate: false
- xy: 1781, 19
+ xy: 1868, 243
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-titanium-conveyor-xlarge
+block-tau-mech-pad-xlarge
rotate: false
- xy: 401, 516
+ xy: 781, 628
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-titanium-wall-large
+block-tendrils-large
rotate: false
xy: 1489, 681
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-titanium-wall-large-large
+block-tendrils-medium
+ rotate: false
+ xy: 1143, 375
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-tendrils-small
+ rotate: false
+ xy: 1579, 48
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-tendrils-tiny
+ rotate: false
+ xy: 1868, 225
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-tendrils-xlarge
+ rotate: false
+ xy: 831, 628
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-thermal-generator-large
rotate: false
xy: 1531, 681
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-titanium-wall-large-medium
+block-thermal-generator-medium
rotate: false
- xy: 1139, 283
+ xy: 1177, 409
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-titanium-wall-large-small
+block-thermal-generator-small
rotate: false
- xy: 1727, 51
+ xy: 1605, 74
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-titanium-wall-large-tiny
+block-thermal-generator-tiny
rotate: false
- xy: 1781, 1
+ xy: 1886, 243
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-titanium-wall-large-xlarge
+block-thermal-generator-xlarge
rotate: false
- xy: 451, 566
+ xy: 781, 578
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-titanium-wall-medium
- rotate: false
- xy: 1173, 317
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-titanium-wall-small
- rotate: false
- xy: 1727, 25
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-titanium-wall-tiny
- rotate: false
- xy: 1799, 19
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-titanium-wall-xlarge
- rotate: false
- xy: 351, 416
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-trident-ship-pad-large
+block-thermal-pump-large
rotate: false
xy: 1573, 681
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-trident-ship-pad-medium
+block-thermal-pump-medium
rotate: false
- xy: 935, 45
+ xy: 1211, 443
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-trident-ship-pad-small
+block-thermal-pump-small
rotate: false
- xy: 1753, 77
+ xy: 1605, 48
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-trident-ship-pad-tiny
+block-thermal-pump-tiny
rotate: false
- xy: 1799, 1
+ xy: 1886, 225
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-trident-ship-pad-xlarge
+block-thermal-pump-xlarge
rotate: false
- xy: 401, 466
+ xy: 831, 578
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-turbine-generator-large
+block-thorium-reactor-large
rotate: false
xy: 1615, 681
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-turbine-generator-medium
+block-thorium-reactor-medium
rotate: false
- xy: 969, 79
+ xy: 1245, 477
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-turbine-generator-small
+block-thorium-reactor-small
rotate: false
- xy: 1753, 51
+ xy: 1631, 74
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-turbine-generator-tiny
+block-thorium-reactor-tiny
rotate: false
- xy: 1817, 19
+ xy: 1904, 243
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-turbine-generator-xlarge
+block-thorium-reactor-xlarge
rotate: false
- xy: 451, 516
+ xy: 351, 566
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-unloader-large
+block-thorium-wall-large
rotate: false
xy: 1657, 681
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-unloader-medium
- rotate: false
- xy: 1003, 113
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-unloader-small
- rotate: false
- xy: 1753, 25
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-unloader-tiny
- rotate: false
- xy: 1817, 1
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-unloader-xlarge
- rotate: false
- xy: 501, 566
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-vault-large
+block-thorium-wall-large-large
rotate: false
xy: 1699, 681
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-vault-medium
+block-thorium-wall-large-medium
rotate: false
- xy: 1037, 147
+ xy: 1279, 511
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-vault-small
+block-thorium-wall-large-small
rotate: false
- xy: 1657, 395
+ xy: 1631, 48
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-vault-tiny
+block-thorium-wall-large-tiny
rotate: false
- xy: 1835, 19
+ xy: 1904, 225
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-vault-xlarge
+block-thorium-wall-large-xlarge
rotate: false
- xy: 351, 366
+ xy: 351, 516
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-water-extractor-large
+block-thorium-wall-medium
+ rotate: false
+ xy: 1313, 545
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-thorium-wall-small
+ rotate: false
+ xy: 1657, 74
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-thorium-wall-tiny
+ rotate: false
+ xy: 1922, 243
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-thorium-wall-xlarge
+ rotate: false
+ xy: 401, 566
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-thruster-large
rotate: false
xy: 1741, 681
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-water-extractor-medium
+block-thruster-medium
rotate: false
- xy: 1071, 181
+ xy: 973, 171
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-water-extractor-small
+block-thruster-small
rotate: false
- xy: 1657, 369
+ xy: 1657, 48
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-water-extractor-tiny
+block-thruster-tiny
rotate: false
- xy: 1835, 1
+ xy: 1922, 225
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-water-extractor-xlarge
+block-thruster-xlarge
rotate: false
- xy: 401, 416
+ xy: 351, 466
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-water-large
+block-titan-factory-large
rotate: false
xy: 1783, 681
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-water-medium
+block-titan-factory-medium
rotate: false
- xy: 1105, 215
+ xy: 1007, 205
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-water-small
+block-titan-factory-small
rotate: false
- xy: 1683, 379
+ xy: 1553, 22
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-water-tiny
+block-titan-factory-tiny
rotate: false
- xy: 1876, 332
+ xy: 1940, 243
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-water-xlarge
+block-titan-factory-xlarge
rotate: false
- xy: 451, 466
+ xy: 401, 516
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-wave-large
+block-titanium-conveyor-large
rotate: false
xy: 1825, 681
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-wave-medium
+block-titanium-conveyor-medium
rotate: false
- xy: 1139, 249
+ xy: 1041, 239
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-wave-small
+block-titanium-conveyor-small
rotate: false
- xy: 1709, 379
+ xy: 1579, 22
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-wave-tiny
+block-titanium-conveyor-tiny
rotate: false
- xy: 1894, 332
+ xy: 1940, 225
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-wave-xlarge
+block-titanium-conveyor-xlarge
rotate: false
- xy: 501, 516
+ xy: 451, 566
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-white-tree-dead-large
+block-titanium-wall-large
rotate: false
xy: 1867, 681
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-white-tree-dead-medium
- rotate: false
- xy: 1173, 283
- size: 32, 32
- orig: 32, 32
- offset: 0, 0
- index: -1
-block-white-tree-dead-small
- rotate: false
- xy: 1735, 379
- size: 24, 24
- orig: 24, 24
- offset: 0, 0
- index: -1
-block-white-tree-dead-tiny
- rotate: false
- xy: 1912, 332
- size: 16, 16
- orig: 16, 16
- offset: 0, 0
- index: -1
-block-white-tree-dead-xlarge
- rotate: false
- xy: 551, 566
- size: 48, 48
- orig: 48, 48
- offset: 0, 0
- index: -1
-block-white-tree-large
+block-titanium-wall-large-large
rotate: false
xy: 1909, 681
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-white-tree-medium
+block-titanium-wall-large-medium
rotate: false
- xy: 969, 45
+ xy: 1075, 273
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-white-tree-small
+block-titanium-wall-large-small
rotate: false
- xy: 1761, 379
+ xy: 1605, 22
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-white-tree-tiny
+block-titanium-wall-large-tiny
rotate: false
- xy: 1930, 333
+ xy: 1958, 243
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-white-tree-xlarge
+block-titanium-wall-large-xlarge
rotate: false
- xy: 351, 316
+ xy: 351, 416
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
-block-wraith-factory-large
+block-titanium-wall-medium
+ rotate: false
+ xy: 1109, 307
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-titanium-wall-small
+ rotate: false
+ xy: 1631, 22
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-titanium-wall-tiny
+ rotate: false
+ xy: 1958, 225
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-titanium-wall-xlarge
+ rotate: false
+ xy: 401, 466
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-trident-ship-pad-large
rotate: false
xy: 1951, 681
size: 40, 40
orig: 40, 40
offset: 0, 0
index: -1
-block-wraith-factory-medium
+block-trident-ship-pad-medium
rotate: false
- xy: 1003, 79
+ xy: 1143, 341
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
-block-wraith-factory-small
+block-trident-ship-pad-small
rotate: false
- xy: 1787, 379
+ xy: 1657, 22
size: 24, 24
orig: 24, 24
offset: 0, 0
index: -1
-block-wraith-factory-tiny
+block-trident-ship-pad-tiny
rotate: false
- xy: 1948, 333
+ xy: 1976, 243
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
-block-wraith-factory-xlarge
+block-trident-ship-pad-xlarge
+ rotate: false
+ xy: 451, 516
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-turbine-generator-large
+ rotate: false
+ xy: 1979, 899
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-turbine-generator-medium
+ rotate: false
+ xy: 1177, 375
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-turbine-generator-small
+ rotate: false
+ xy: 1631, 359
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-turbine-generator-tiny
+ rotate: false
+ xy: 1976, 225
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-turbine-generator-xlarge
+ rotate: false
+ xy: 501, 566
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-unloader-large
+ rotate: false
+ xy: 1993, 857
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-unloader-medium
+ rotate: false
+ xy: 1211, 409
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-unloader-small
+ rotate: false
+ xy: 1631, 333
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-unloader-tiny
+ rotate: false
+ xy: 1994, 243
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-unloader-xlarge
+ rotate: false
+ xy: 351, 366
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-vault-large
+ rotate: false
+ xy: 1993, 815
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-vault-medium
+ rotate: false
+ xy: 1245, 443
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-vault-small
+ rotate: false
+ xy: 1631, 307
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-vault-tiny
+ rotate: false
+ xy: 1994, 225
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-vault-xlarge
+ rotate: false
+ xy: 401, 416
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-water-extractor-large
+ rotate: false
+ xy: 1993, 773
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-water-extractor-medium
+ rotate: false
+ xy: 1279, 477
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-water-extractor-small
+ rotate: false
+ xy: 1657, 343
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-water-extractor-tiny
+ rotate: false
+ xy: 2012, 243
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-water-extractor-xlarge
+ rotate: false
+ xy: 451, 466
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-water-large
+ rotate: false
+ xy: 1993, 731
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-water-medium
+ rotate: false
+ xy: 1313, 511
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-water-small
+ rotate: false
+ xy: 1657, 317
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-water-tiny
+ rotate: false
+ xy: 2012, 225
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-water-xlarge
+ rotate: false
+ xy: 501, 516
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-wave-large
+ rotate: false
+ xy: 1993, 689
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-wave-medium
+ rotate: false
+ xy: 1347, 545
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-wave-small
+ rotate: false
+ xy: 1683, 323
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-wave-tiny
+ rotate: false
+ xy: 2030, 243
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-wave-xlarge
+ rotate: false
+ xy: 551, 566
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-white-tree-dead-large
+ rotate: false
+ xy: 1993, 647
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-white-tree-dead-medium
+ rotate: false
+ xy: 973, 137
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-white-tree-dead-small
+ rotate: false
+ xy: 1657, 291
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-white-tree-dead-tiny
+ rotate: false
+ xy: 2030, 225
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-white-tree-dead-xlarge
+ rotate: false
+ xy: 351, 316
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
+block-white-tree-large
+ rotate: false
+ xy: 881, 673
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-white-tree-medium
+ rotate: false
+ xy: 1007, 171
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-white-tree-small
+ rotate: false
+ xy: 1683, 297
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-white-tree-tiny
+ rotate: false
+ xy: 1747, 201
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-white-tree-xlarge
rotate: false
xy: 401, 366
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
+block-wraith-factory-large
+ rotate: false
+ xy: 923, 673
+ size: 40, 40
+ orig: 40, 40
+ offset: 0, 0
+ index: -1
+block-wraith-factory-medium
+ rotate: false
+ xy: 1041, 205
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
+block-wraith-factory-small
+ rotate: false
+ xy: 1631, 281
+ size: 24, 24
+ orig: 24, 24
+ offset: 0, 0
+ index: -1
+block-wraith-factory-tiny
+ rotate: false
+ xy: 1747, 183
+ size: 16, 16
+ orig: 16, 16
+ offset: 0, 0
+ index: -1
+block-wraith-factory-xlarge
+ rotate: false
+ xy: 451, 416
+ size: 48, 48
+ orig: 48, 48
+ offset: 0, 0
+ index: -1
button
rotate: false
- xy: 1071, 652
+ xy: 901, 325
size: 36, 27
split: 12, 12, 12, 12
orig: 36, 27
@@ -16287,7 +16343,7 @@ button
index: -1
button-disabled
rotate: false
- xy: 859, 686
+ xy: 1967, 946
size: 36, 27
split: 12, 12, 12, 12
orig: 36, 27
@@ -16295,7 +16351,7 @@ button-disabled
index: -1
button-down
rotate: false
- xy: 1993, 694
+ xy: 881, 644
size: 36, 27
split: 12, 12, 12, 12
orig: 36, 27
@@ -16303,7 +16359,7 @@ button-down
index: -1
button-edge-1
rotate: false
- xy: 897, 686
+ xy: 881, 615
size: 36, 27
split: 12, 12, 12, 12
orig: 36, 27
@@ -16311,7 +16367,7 @@ button-edge-1
index: -1
button-edge-2
rotate: false
- xy: 821, 946
+ xy: 919, 644
size: 36, 27
split: 12, 12, 12, 12
orig: 36, 27
@@ -16319,7 +16375,7 @@ button-edge-2
index: -1
button-edge-3
rotate: false
- xy: 881, 657
+ xy: 881, 586
size: 36, 27
split: 12, 12, 12, 12
orig: 36, 27
@@ -16327,7 +16383,7 @@ button-edge-3
index: -1
button-edge-4
rotate: false
- xy: 881, 628
+ xy: 919, 615
size: 36, 27
split: 12, 12, 12, 12
orig: 36, 27
@@ -16335,7 +16391,7 @@ button-edge-4
index: -1
button-edge-over-4
rotate: false
- xy: 881, 599
+ xy: 919, 586
size: 36, 27
split: 12, 12, 12, 12
orig: 36, 27
@@ -16343,7 +16399,7 @@ button-edge-over-4
index: -1
button-over
rotate: false
- xy: 1993, 665
+ xy: 821, 946
size: 36, 27
split: 12, 12, 12, 12
orig: 36, 27
@@ -16351,7 +16407,7 @@ button-over
index: -1
button-red
rotate: false
- xy: 919, 652
+ xy: 901, 557
size: 36, 27
split: 12, 12, 12, 12
orig: 36, 27
@@ -16359,7 +16415,7 @@ button-red
index: -1
button-right
rotate: false
- xy: 957, 623
+ xy: 901, 470
size: 36, 27
split: 12, 12, 12, 12
orig: 36, 27
@@ -16367,7 +16423,7 @@ button-right
index: -1
button-right-down
rotate: false
- xy: 919, 623
+ xy: 901, 528
size: 36, 27
split: 12, 12, 12, 12
orig: 36, 27
@@ -16375,7 +16431,7 @@ button-right-down
index: -1
button-right-over
rotate: false
- xy: 957, 652
+ xy: 901, 499
size: 36, 27
split: 12, 12, 12, 12
orig: 36, 27
@@ -16383,7 +16439,7 @@ button-right-over
index: -1
button-select
rotate: false
- xy: 1813, 379
+ xy: 1709, 307
size: 24, 24
split: 4, 4, 4, 4
orig: 24, 24
@@ -16391,7 +16447,7 @@ button-select
index: -1
button-square
rotate: false
- xy: 1033, 652
+ xy: 901, 383
size: 36, 27
split: 12, 12, 12, 12
orig: 36, 27
@@ -16399,7 +16455,7 @@ button-square
index: -1
button-square-down
rotate: false
- xy: 995, 652
+ xy: 901, 441
size: 36, 27
split: 12, 12, 12, 12
orig: 36, 27
@@ -16407,7 +16463,7 @@ button-square-down
index: -1
button-square-over
rotate: false
- xy: 995, 623
+ xy: 901, 412
size: 36, 27
split: 12, 12, 12, 12
orig: 36, 27
@@ -16415,7 +16471,7 @@ button-square-over
index: -1
button-trans
rotate: false
- xy: 1033, 623
+ xy: 901, 354
size: 36, 27
split: 12, 12, 12, 12
orig: 36, 27
@@ -16423,42 +16479,42 @@ button-trans
index: -1
check-disabled
rotate: false
- xy: 1037, 113
+ xy: 1075, 239
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
check-off
rotate: false
- xy: 1071, 147
+ xy: 1109, 273
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
check-on
rotate: false
- xy: 1105, 181
+ xy: 1143, 307
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
check-on-disabled
rotate: false
- xy: 1139, 215
+ xy: 1177, 341
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
check-on-over
rotate: false
- xy: 1173, 249
+ xy: 1211, 375
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
check-over
rotate: false
- xy: 1003, 45
+ xy: 1245, 409
size: 32, 32
orig: 32, 32
offset: 0, 0
@@ -16472,7 +16528,7 @@ clear
index: -1
cursor
rotate: false
- xy: 2001, 969
+ xy: 1682, 255
size: 4, 4
orig: 4, 4
offset: 0, 0
@@ -16486,7 +16542,7 @@ discord-banner
index: -1
flat-down-base
rotate: false
- xy: 1071, 623
+ xy: 901, 296
size: 36, 27
split: 12, 12, 12, 12
orig: 36, 27
@@ -16494,3192 +16550,3192 @@ flat-down-base
index: -1
icon-about
rotate: false
- xy: 451, 416
+ xy: 501, 466
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-about-small
rotate: false
- xy: 1037, 79
+ xy: 1279, 443
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-about-smaller
rotate: false
- xy: 1411, 343
+ xy: 1449, 309
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-about-tiny
rotate: false
- xy: 1966, 333
+ xy: 1747, 165
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-add
rotate: false
- xy: 501, 466
+ xy: 551, 516
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-add-small
rotate: false
- xy: 1071, 113
+ xy: 1313, 477
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-add-smaller
rotate: false
- xy: 1445, 377
+ xy: 1483, 343
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-add-tiny
rotate: false
- xy: 1984, 333
+ xy: 1747, 147
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-admin
rotate: false
- xy: 551, 516
+ xy: 601, 566
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-admin-badge
rotate: false
- xy: 601, 566
+ xy: 351, 266
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-admin-badge-small
rotate: false
- xy: 1105, 147
+ xy: 1347, 511
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-admin-badge-smaller
rotate: false
- xy: 1479, 411
+ xy: 1517, 377
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-admin-badge-tiny
rotate: false
- xy: 2002, 333
+ xy: 1747, 129
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-admin-small
rotate: false
- xy: 1139, 181
+ xy: 1381, 545
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-admin-smaller
rotate: false
- xy: 1513, 445
+ xy: 1551, 411
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-admin-tiny
rotate: false
- xy: 2020, 333
+ xy: 1765, 201
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-arrow
rotate: false
- xy: 351, 266
+ xy: 401, 316
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-arrow-16
rotate: false
- xy: 351, 266
+ xy: 401, 316
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-arrow-16-small
rotate: false
- xy: 1173, 215
+ xy: 1007, 137
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-arrow-small
rotate: false
- xy: 1173, 215
+ xy: 1007, 137
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-arrow-16-smaller
rotate: false
- xy: 1547, 479
+ xy: 1585, 445
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-arrow-smaller
rotate: false
- xy: 1547, 479
+ xy: 1585, 445
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-arrow-16-tiny
rotate: false
- xy: 1881, 314
+ xy: 1765, 183
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-arrow-tiny
rotate: false
- xy: 1881, 314
+ xy: 1765, 183
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-arrow-down
rotate: false
- xy: 401, 316
+ xy: 451, 366
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-arrow-down-small
rotate: false
- xy: 1037, 45
+ xy: 1041, 171
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-arrow-down-smaller
rotate: false
- xy: 1581, 513
+ xy: 1619, 479
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-arrow-down-tiny
rotate: false
- xy: 1881, 296
+ xy: 1765, 165
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-arrow-left
rotate: false
- xy: 451, 366
+ xy: 501, 416
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-arrow-left-small
rotate: false
- xy: 1071, 79
+ xy: 1075, 205
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-arrow-left-smaller
rotate: false
- xy: 1615, 547
+ xy: 1653, 513
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-arrow-left-tiny
rotate: false
- xy: 1899, 314
+ xy: 1765, 147
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-arrow-right
rotate: false
- xy: 501, 416
+ xy: 551, 466
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-arrow-right-small
rotate: false
- xy: 1105, 113
+ xy: 1109, 239
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-arrow-right-smaller
rotate: false
- xy: 1207, 105
+ xy: 1687, 547
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-arrow-right-tiny
rotate: false
- xy: 1881, 278
+ xy: 1765, 129
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-arrow-up
rotate: false
- xy: 551, 466
+ xy: 601, 516
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-arrow-up-small
rotate: false
- xy: 1139, 147
+ xy: 1143, 273
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-arrow-up-smaller
rotate: false
- xy: 1241, 139
+ xy: 1313, 139
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-arrow-up-tiny
rotate: false
- xy: 1899, 296
+ xy: 1783, 206
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-back
rotate: false
- xy: 601, 516
+ xy: 651, 566
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-back-small
rotate: false
- xy: 1173, 181
+ xy: 1177, 307
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-back-smaller
rotate: false
- xy: 1275, 173
+ xy: 1347, 173
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-back-tiny
rotate: false
- xy: 1899, 278
+ xy: 1783, 188
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-ban
rotate: false
- xy: 651, 566
+ xy: 351, 216
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-ban-small
rotate: false
- xy: 1071, 45
+ xy: 1211, 341
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-ban-smaller
rotate: false
- xy: 1309, 207
+ xy: 1381, 207
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-ban-tiny
rotate: false
- xy: 1917, 314
+ xy: 1783, 170
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-break
rotate: false
- xy: 351, 216
+ xy: 401, 266
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-break-small
rotate: false
- xy: 1105, 79
+ xy: 1245, 375
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-break-smaller
rotate: false
- xy: 1343, 241
+ xy: 1415, 241
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-break-tiny
rotate: false
- xy: 1917, 296
+ xy: 1783, 152
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-cancel
rotate: false
- xy: 401, 266
+ xy: 451, 316
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-cancel-small
rotate: false
- xy: 1139, 113
+ xy: 1279, 409
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-cancel-smaller
rotate: false
- xy: 1377, 275
+ xy: 1449, 277
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-cancel-tiny
rotate: false
- xy: 1917, 278
+ xy: 1783, 134
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-quit-tiny
rotate: false
- xy: 1917, 278
+ xy: 1783, 134
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-changelog
rotate: false
- xy: 451, 316
+ xy: 501, 366
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-changelog-small
rotate: false
- xy: 1173, 147
+ xy: 1313, 443
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-changelog-smaller
rotate: false
- xy: 1411, 311
+ xy: 1719, 547
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-changelog-tiny
rotate: false
- xy: 1935, 315
+ xy: 1801, 206
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-chat
rotate: false
- xy: 501, 366
+ xy: 551, 416
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-chat-small
rotate: false
- xy: 1105, 45
+ xy: 1347, 477
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-chat-smaller
rotate: false
- xy: 1647, 547
+ xy: 1751, 547
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-chat-tiny
rotate: false
- xy: 1935, 297
+ xy: 1801, 188
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-check
rotate: false
- xy: 551, 416
+ xy: 601, 466
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-check-small
rotate: false
- xy: 1139, 79
+ xy: 1381, 511
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-check-smaller
rotate: false
- xy: 1207, 73
+ xy: 1783, 547
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-check-tiny
rotate: false
- xy: 1953, 315
+ xy: 1801, 170
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-command-attack
rotate: false
- xy: 601, 466
+ xy: 651, 516
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-command-attack-small
rotate: false
- xy: 1173, 113
+ xy: 1415, 545
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-command-attack-smaller
rotate: false
- xy: 1679, 547
+ xy: 1815, 547
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-command-attack-tiny
rotate: false
- xy: 1935, 279
+ xy: 1801, 152
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-command-patrol
rotate: false
- xy: 651, 516
+ xy: 701, 566
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-command-patrol-small
rotate: false
- xy: 1139, 45
+ xy: 1041, 137
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-command-patrol-smaller
rotate: false
- xy: 1207, 41
+ xy: 1847, 547
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-command-patrol-tiny
rotate: false
- xy: 1953, 297
+ xy: 1801, 134
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-command-rally
rotate: false
- xy: 701, 566
+ xy: 351, 166
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-command-rally-small
rotate: false
- xy: 1173, 79
+ xy: 1075, 171
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-command-rally-smaller
rotate: false
- xy: 1711, 547
+ xy: 1879, 547
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-command-rally-tiny
rotate: false
- xy: 1971, 315
+ xy: 1819, 207
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-command-retreat
rotate: false
- xy: 351, 166
+ xy: 401, 216
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-command-retreat-small
rotate: false
- xy: 1173, 45
+ xy: 1109, 205
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-command-retreat-smaller
rotate: false
- xy: 1743, 547
+ xy: 1911, 547
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-command-retreat-tiny
rotate: false
- xy: 1953, 279
+ xy: 1819, 189
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-copy
rotate: false
- xy: 401, 216
+ xy: 451, 266
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-copy-small
rotate: false
- xy: 901, 11
+ xy: 1143, 239
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-copy-smaller
rotate: false
- xy: 1775, 547
+ xy: 1943, 547
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-copy-tiny
rotate: false
- xy: 1971, 297
+ xy: 1837, 207
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-crafting
rotate: false
- xy: 451, 266
+ xy: 501, 316
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-crafting-small
rotate: false
- xy: 935, 11
+ xy: 1177, 273
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-crafting-smaller
rotate: false
- xy: 1807, 547
+ xy: 1975, 547
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-crafting-tiny
rotate: false
- xy: 1989, 315
+ xy: 1819, 171
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-cursor
rotate: false
- xy: 501, 316
+ xy: 551, 366
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-cursor-small
rotate: false
- xy: 969, 11
+ xy: 1211, 307
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-cursor-smaller
rotate: false
- xy: 1839, 547
+ xy: 2007, 547
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-cursor-tiny
rotate: false
- xy: 1971, 279
+ xy: 1837, 189
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-database
rotate: false
- xy: 551, 366
+ xy: 601, 416
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-database-small
rotate: false
- xy: 1003, 11
+ xy: 1245, 341
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-database-smaller
rotate: false
- xy: 1871, 547
+ xy: 973, 105
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-database-tiny
rotate: false
- xy: 1989, 297
+ xy: 1855, 207
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-defense
rotate: false
- xy: 601, 416
+ xy: 651, 466
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-defense-small
rotate: false
- xy: 1037, 11
+ xy: 1279, 375
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-defense-smaller
rotate: false
- xy: 1903, 547
+ xy: 1005, 105
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-defense-tiny
rotate: false
- xy: 2007, 315
+ xy: 1819, 153
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-dev-builds
rotate: false
- xy: 651, 466
+ xy: 701, 516
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-dev-builds-small
rotate: false
- xy: 1071, 11
+ xy: 1313, 409
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-dev-builds-smaller
rotate: false
- xy: 1935, 547
+ xy: 1037, 105
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-dev-builds-tiny
rotate: false
- xy: 1989, 279
+ xy: 1837, 171
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-diagonal
rotate: false
- xy: 701, 516
+ xy: 351, 116
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-diagonal-small
rotate: false
- xy: 1105, 11
+ xy: 1347, 443
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-diagonal-smaller
rotate: false
- xy: 1207, 9
+ xy: 1069, 105
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-diagonal-tiny
rotate: false
- xy: 2007, 297
+ xy: 1855, 189
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-discord
rotate: false
- xy: 351, 116
+ xy: 401, 166
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-discord-small
rotate: false
- xy: 1139, 11
+ xy: 1381, 477
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-discord-smaller
rotate: false
- xy: 1967, 547
+ xy: 1101, 105
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-discord-tiny
rotate: false
- xy: 2007, 279
+ xy: 1873, 207
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-distribution
rotate: false
- xy: 401, 166
+ xy: 451, 216
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-distribution-small
rotate: false
- xy: 1173, 11
+ xy: 1415, 511
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-distribution-smaller
rotate: false
- xy: 1411, 279
+ xy: 1133, 105
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-distribution-tiny
rotate: false
- xy: 2025, 315
+ xy: 1819, 135
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-donate
rotate: false
- xy: 451, 216
+ xy: 501, 266
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-donate-small
rotate: false
- xy: 1207, 545
+ xy: 1449, 545
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-donate-smaller
rotate: false
- xy: 1443, 343
+ xy: 1165, 105
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-donate-tiny
rotate: false
- xy: 2025, 297
+ xy: 1837, 153
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-dots
rotate: false
- xy: 501, 266
+ xy: 551, 316
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-dots-small
rotate: false
- xy: 1207, 511
+ xy: 1075, 137
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-dots-smaller
rotate: false
- xy: 1443, 311
+ xy: 1197, 105
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-dots-tiny
rotate: false
- xy: 2025, 279
+ xy: 1855, 171
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-editor
rotate: false
- xy: 551, 316
+ xy: 601, 366
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-editor-small
rotate: false
- xy: 1241, 545
+ xy: 1109, 171
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-editor-smaller
rotate: false
- xy: 1443, 279
+ xy: 1229, 105
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-editor-tiny
rotate: false
- xy: 1881, 260
+ xy: 1873, 189
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-effect
rotate: false
- xy: 601, 366
+ xy: 651, 416
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-effect-small
rotate: false
- xy: 1207, 477
+ xy: 1143, 205
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-effect-smaller
rotate: false
- xy: 1477, 377
+ xy: 1261, 105
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-effect-tiny
rotate: false
- xy: 1899, 260
+ xy: 1891, 207
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-elevation
rotate: false
- xy: 651, 416
+ xy: 701, 466
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-elevation-small
rotate: false
- xy: 1241, 511
+ xy: 1177, 239
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-elevation-smaller
rotate: false
- xy: 1475, 345
+ xy: 969, 73
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-elevation-tiny
rotate: false
- xy: 1917, 260
+ xy: 1837, 135
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-eraser
rotate: false
- xy: 701, 466
+ xy: 351, 66
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-eraser-small
rotate: false
- xy: 1275, 545
+ xy: 1211, 273
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-eraser-smaller
rotate: false
- xy: 1475, 313
+ xy: 969, 41
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-eraser-tiny
rotate: false
- xy: 1935, 261
+ xy: 1855, 153
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-exit
rotate: false
- xy: 351, 66
+ xy: 401, 116
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-exit-small
rotate: false
- xy: 1207, 443
+ xy: 1245, 307
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-exit-smaller
rotate: false
- xy: 1475, 281
+ xy: 1001, 73
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-exit-tiny
rotate: false
- xy: 1953, 261
+ xy: 1873, 171
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-f-droid
rotate: false
- xy: 401, 116
+ xy: 451, 166
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-f-droid-small
rotate: false
- xy: 1241, 477
+ xy: 1279, 341
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-f-droid-smaller
rotate: false
- xy: 1511, 411
+ xy: 969, 9
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-f-droid-tiny
rotate: false
- xy: 1971, 261
+ xy: 1891, 189
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-fdroid
rotate: false
- xy: 451, 166
+ xy: 501, 216
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-fdroid-small
rotate: false
- xy: 1275, 511
+ xy: 1313, 375
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-fdroid-smaller
rotate: false
- xy: 1509, 379
+ xy: 1001, 41
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-fdroid-tiny
rotate: false
- xy: 1989, 261
+ xy: 1909, 207
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-feathub
rotate: false
- xy: 501, 216
+ xy: 551, 266
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-feathub-small
rotate: false
- xy: 1309, 545
+ xy: 1347, 409
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-feathub-smaller
rotate: false
- xy: 1545, 445
+ xy: 1033, 73
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-feathub-tiny
rotate: false
- xy: 2007, 261
+ xy: 1855, 135
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-file
rotate: false
- xy: 551, 266
+ xy: 601, 316
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-file-image
rotate: false
- xy: 601, 316
+ xy: 651, 366
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-file-image-small
rotate: false
- xy: 1207, 409
+ xy: 1381, 443
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-file-image-smaller
rotate: false
- xy: 1543, 413
+ xy: 1001, 9
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-file-image-tiny
rotate: false
- xy: 2025, 261
+ xy: 1873, 153
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-file-small
rotate: false
- xy: 1241, 443
+ xy: 1415, 477
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-file-smaller
rotate: false
- xy: 1579, 479
+ xy: 1033, 41
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-file-text
rotate: false
- xy: 651, 366
+ xy: 701, 416
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-file-text-small
rotate: false
- xy: 1275, 477
+ xy: 1449, 511
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-file-text-smaller
rotate: false
- xy: 1577, 447
+ xy: 1065, 73
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-file-text-tiny
rotate: false
- xy: 1842, 253
+ xy: 1891, 171
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-file-tiny
rotate: false
- xy: 1842, 235
+ xy: 1909, 189
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-fill
rotate: false
- xy: 701, 416
+ xy: 401, 66
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-fill-small
rotate: false
- xy: 1309, 511
+ xy: 1483, 545
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-fill-smaller
rotate: false
- xy: 1613, 513
+ xy: 1033, 9
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-fill-tiny
rotate: false
- xy: 1842, 217
+ xy: 1927, 207
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-flip
rotate: false
- xy: 401, 66
+ xy: 451, 116
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-flip-small
rotate: false
- xy: 1343, 545
+ xy: 1109, 137
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-flip-smaller
rotate: false
- xy: 1611, 481
+ xy: 1065, 41
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-flip-tiny
rotate: false
- xy: 1842, 199
+ xy: 1873, 135
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-floppy
rotate: false
- xy: 451, 116
+ xy: 501, 166
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-floppy-16
rotate: false
- xy: 501, 166
+ xy: 551, 216
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-floppy-16-small
rotate: false
- xy: 1207, 375
+ xy: 1143, 171
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-floppy-16-smaller
rotate: false
- xy: 1645, 515
+ xy: 1097, 73
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-floppy-16-tiny
rotate: false
- xy: 1842, 181
+ xy: 1891, 153
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-floppy-small
rotate: false
- xy: 1241, 409
+ xy: 1177, 205
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-floppy-smaller
rotate: false
- xy: 1677, 515
+ xy: 1065, 9
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-floppy-tiny
rotate: false
- xy: 1848, 163
+ xy: 1909, 171
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-folder
rotate: false
- xy: 551, 216
+ xy: 601, 266
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-folder-parent
rotate: false
- xy: 601, 266
+ xy: 651, 316
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-folder-parent-small
rotate: false
- xy: 1275, 443
+ xy: 1211, 239
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-folder-parent-smaller
rotate: false
- xy: 1709, 515
+ xy: 1097, 41
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-folder-parent-tiny
rotate: false
- xy: 1860, 255
+ xy: 1927, 189
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-folder-small
rotate: false
- xy: 1309, 477
+ xy: 1245, 273
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-folder-smaller
rotate: false
- xy: 1741, 515
+ xy: 1129, 73
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-folder-tiny
rotate: false
- xy: 1860, 237
+ xy: 1945, 207
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-github
rotate: false
- xy: 651, 316
+ xy: 701, 366
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-github-small
rotate: false
- xy: 1343, 511
+ xy: 1279, 307
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-github-smaller
rotate: false
- xy: 1773, 515
+ xy: 1097, 9
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-github-tiny
rotate: false
- xy: 1860, 219
+ xy: 1891, 135
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-google-play
rotate: false
- xy: 701, 366
+ xy: 451, 66
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-google-play-small
rotate: false
- xy: 1377, 545
+ xy: 1313, 341
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-google-play-smaller
rotate: false
- xy: 1805, 515
+ xy: 1129, 41
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-google-play-tiny
rotate: false
- xy: 1860, 201
+ xy: 1909, 153
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-grid
rotate: false
- xy: 451, 66
+ xy: 501, 116
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-grid-small
rotate: false
- xy: 1207, 341
+ xy: 1347, 375
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-grid-smaller
rotate: false
- xy: 1837, 515
+ xy: 1161, 73
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-grid-tiny
rotate: false
- xy: 1860, 183
+ xy: 1927, 171
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-home
rotate: false
- xy: 501, 116
+ xy: 551, 166
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-home-small
rotate: false
- xy: 1241, 375
+ xy: 1381, 409
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-home-smaller
rotate: false
- xy: 1869, 515
+ xy: 1129, 9
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-home-tiny
rotate: false
- xy: 1878, 242
+ xy: 1945, 189
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-host
rotate: false
- xy: 551, 166
+ xy: 601, 216
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-host-small
rotate: false
- xy: 1275, 409
+ xy: 1415, 443
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-host-smaller
rotate: false
- xy: 1901, 515
+ xy: 1161, 41
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-host-tiny
rotate: false
- xy: 1878, 224
+ xy: 1963, 207
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-info
rotate: false
- xy: 601, 216
+ xy: 651, 266
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-info-small
rotate: false
- xy: 1309, 443
+ xy: 1449, 477
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-info-smaller
rotate: false
- xy: 1933, 515
+ xy: 1193, 73
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-info-tiny
rotate: false
- xy: 1896, 242
+ xy: 1909, 135
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-itch.io
rotate: false
- xy: 651, 266
+ xy: 701, 316
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-itch.io-small
rotate: false
- xy: 1343, 477
+ xy: 1483, 511
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-itch.io-smaller
rotate: false
- xy: 1965, 515
+ xy: 1161, 9
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-itch.io-tiny
rotate: false
- xy: 1878, 206
+ xy: 1927, 153
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-item
rotate: false
- xy: 701, 316
+ xy: 501, 66
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-item-small
rotate: false
- xy: 1377, 511
+ xy: 1517, 545
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-item-smaller
rotate: false
- xy: 1239, 105
+ xy: 1193, 41
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-item-tiny
rotate: false
- xy: 1896, 224
+ xy: 1945, 171
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-line
rotate: false
- xy: 501, 66
+ xy: 551, 116
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-line-small
rotate: false
- xy: 1411, 545
+ xy: 1143, 137
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-line-smaller
rotate: false
- xy: 1239, 73
+ xy: 1225, 73
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-line-tiny
rotate: false
- xy: 1914, 242
+ xy: 1963, 189
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-link
rotate: false
- xy: 551, 116
+ xy: 601, 166
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-link-small
rotate: false
- xy: 1207, 307
+ xy: 1177, 171
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-link-smaller
rotate: false
- xy: 1239, 41
+ xy: 1193, 9
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-link-tiny
rotate: false
- xy: 1878, 188
+ xy: 1981, 207
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-liquid
rotate: false
- xy: 601, 166
+ xy: 651, 216
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-liquid-consume
rotate: false
- xy: 651, 216
+ xy: 701, 266
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-liquid-consume-small
rotate: false
- xy: 1241, 341
+ xy: 1211, 205
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-liquid-consume-smaller
rotate: false
- xy: 1239, 9
+ xy: 1225, 41
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-liquid-consume-tiny
rotate: false
- xy: 1896, 206
+ xy: 1927, 135
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-liquid-small
rotate: false
- xy: 1275, 375
+ xy: 1245, 239
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-liquid-smaller
rotate: false
- xy: 1273, 139
+ xy: 1257, 73
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-liquid-tiny
rotate: false
- xy: 1914, 224
+ xy: 1945, 153
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-load
rotate: false
- xy: 701, 266
+ xy: 551, 66
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-load-image
rotate: false
- xy: 551, 66
+ xy: 601, 116
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-load-image-small
rotate: false
- xy: 1309, 409
+ xy: 1279, 273
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-load-image-smaller
rotate: false
- xy: 1271, 107
+ xy: 1225, 9
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-load-image-tiny
rotate: false
- xy: 1896, 188
+ xy: 1963, 171
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-load-map
rotate: false
- xy: 601, 116
+ xy: 651, 166
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-load-map-small
rotate: false
- xy: 1343, 443
+ xy: 1313, 307
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-load-map-smaller
rotate: false
- xy: 1271, 75
+ xy: 1257, 41
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-load-map-tiny
rotate: false
- xy: 1914, 206
+ xy: 1981, 189
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-load-small
rotate: false
- xy: 1377, 477
+ xy: 1347, 341
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-load-smaller
rotate: false
- xy: 1271, 43
+ xy: 1257, 9
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-load-tiny
rotate: false
- xy: 1914, 188
+ xy: 1999, 207
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-loading
rotate: false
- xy: 651, 166
+ xy: 701, 216
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-loading-small
rotate: false
- xy: 1411, 511
+ xy: 1381, 375
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-loading-smaller
rotate: false
- xy: 1271, 11
+ xy: 1293, 105
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-loading-tiny
rotate: false
- xy: 1853, 145
+ xy: 1945, 135
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-locked
rotate: false
- xy: 701, 216
+ xy: 601, 66
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-locked-small
rotate: false
- xy: 1445, 545
+ xy: 1415, 409
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-locked-smaller
rotate: false
- xy: 1307, 173
+ xy: 1289, 73
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-locked-tiny
rotate: false
- xy: 1853, 127
+ xy: 1963, 153
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-map
rotate: false
- xy: 601, 66
+ xy: 651, 116
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-map-small
rotate: false
- xy: 1207, 273
+ xy: 1449, 443
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-map-smaller
rotate: false
- xy: 1305, 141
+ xy: 1289, 41
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-map-tiny
rotate: false
- xy: 1853, 109
+ xy: 1981, 171
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-menu
rotate: false
- xy: 651, 116
+ xy: 701, 166
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-menu-large
rotate: false
- xy: 701, 166
+ xy: 651, 66
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-menu-large-small
rotate: false
- xy: 1241, 307
+ xy: 1483, 477
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-menu-large-smaller
rotate: false
- xy: 1341, 207
+ xy: 1289, 9
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-menu-large-tiny
rotate: false
- xy: 1851, 91
+ xy: 1999, 189
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-menu-small
rotate: false
- xy: 1275, 341
+ xy: 1517, 511
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-menu-smaller
rotate: false
- xy: 1339, 175
+ xy: 1325, 107
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-menu-tiny
rotate: false
- xy: 1851, 73
+ xy: 2017, 207
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-missing
rotate: false
- xy: 651, 66
+ xy: 701, 116
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-missing-small
rotate: false
- xy: 1309, 375
+ xy: 1551, 545
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-missing-smaller
rotate: false
- xy: 1375, 241
+ xy: 1345, 139
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-missing-tiny
rotate: false
- xy: 1851, 55
+ xy: 1963, 135
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-mode-attack
rotate: false
- xy: 701, 116
+ xy: 701, 66
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-mode-attack-small
rotate: false
- xy: 1343, 409
+ xy: 1177, 137
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-mode-attack-smaller
rotate: false
- xy: 1373, 209
+ xy: 1357, 107
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-mode-attack-tiny
rotate: false
- xy: 1851, 37
+ xy: 1981, 153
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-mode-pvp
rotate: false
- xy: 701, 66
+ xy: 351, 16
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-mode-pvp-small
rotate: false
- xy: 1377, 443
+ xy: 1211, 171
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-mode-pvp-smaller
rotate: false
- xy: 1409, 247
+ xy: 1449, 245
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-mode-pvp-tiny
rotate: false
- xy: 1853, 19
+ xy: 1999, 171
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-mode-survival
rotate: false
- xy: 351, 16
+ xy: 401, 16
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-mode-survival-small
rotate: false
- xy: 1411, 477
+ xy: 1245, 205
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-mode-survival-smaller
rotate: false
- xy: 1441, 247
+ xy: 1321, 73
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-mode-survival-tiny
rotate: false
- xy: 1853, 1
+ xy: 2017, 189
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-none
rotate: false
- xy: 401, 16
+ xy: 451, 16
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-none-small
rotate: false
- xy: 1445, 511
+ xy: 1279, 239
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-none-smaller
rotate: false
- xy: 1407, 215
+ xy: 1321, 41
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-none-tiny
rotate: false
- xy: 1866, 165
+ xy: 1981, 135
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-paste
rotate: false
- xy: 451, 16
+ xy: 501, 16
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-paste-small
rotate: false
- xy: 1479, 545
+ xy: 1313, 273
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-paste-smaller
rotate: false
- xy: 1439, 215
+ xy: 1321, 9
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-paste-tiny
rotate: false
- xy: 1884, 170
+ xy: 1999, 153
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-pause
rotate: false
- xy: 501, 16
+ xy: 551, 16
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-pause-small
rotate: false
- xy: 1207, 239
+ xy: 1347, 307
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-pause-smaller
rotate: false
- xy: 1405, 183
+ xy: 1353, 75
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-pause-tiny
rotate: false
- xy: 1902, 170
+ xy: 2017, 171
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-pencil
rotate: false
- xy: 551, 16
+ xy: 601, 16
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-pencil-small
rotate: false
- xy: 1241, 273
+ xy: 1381, 341
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-pencil-smaller
rotate: false
- xy: 1437, 183
+ xy: 1353, 43
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-pencil-tiny
rotate: false
- xy: 1920, 170
+ xy: 1999, 135
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-pick
rotate: false
- xy: 601, 16
+ xy: 651, 16
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-pick-small
rotate: false
- xy: 1275, 307
+ xy: 1415, 375
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-pick-smaller
rotate: false
- xy: 1373, 177
+ xy: 1353, 11
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-pick-tiny
rotate: false
- xy: 1871, 147
+ xy: 2017, 153
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-play
rotate: false
- xy: 651, 16
+ xy: 701, 16
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-play-2
rotate: false
- xy: 701, 16
+ xy: 751, 528
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-play-2-small
rotate: false
- xy: 1309, 341
+ xy: 1449, 409
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-play-2-smaller
rotate: false
- xy: 1405, 151
+ xy: 1385, 75
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-play-2-tiny
rotate: false
- xy: 1871, 129
+ xy: 2017, 135
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-play-tiny
rotate: false
- xy: 1871, 129
+ xy: 2017, 135
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-play-custom
rotate: false
- xy: 751, 528
+ xy: 751, 478
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-play-custom-small
rotate: false
- xy: 1343, 375
+ xy: 1483, 443
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-play-custom-smaller
rotate: false
- xy: 1437, 151
+ xy: 1385, 43
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-play-custom-tiny
rotate: false
- xy: 1871, 111
+ xy: 1755, 111
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-play-small
rotate: false
- xy: 1377, 409
+ xy: 1517, 477
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-play-smaller
rotate: false
- xy: 1507, 345
+ xy: 1385, 11
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-players
rotate: false
- xy: 751, 478
+ xy: 801, 528
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-players-small
rotate: false
- xy: 1411, 443
+ xy: 1551, 511
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-players-smaller
rotate: false
- xy: 1507, 313
+ xy: 1481, 309
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-players-tiny
rotate: false
- xy: 1889, 152
+ xy: 1755, 93
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-power
rotate: false
- xy: 801, 528
+ xy: 751, 428
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-power-small
rotate: false
- xy: 1445, 477
+ xy: 1585, 545
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-power-smaller
rotate: false
- xy: 1507, 281
+ xy: 1481, 277
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-power-tiny
rotate: false
- xy: 1889, 134
+ xy: 1755, 75
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-production
rotate: false
- xy: 751, 428
+ xy: 801, 478
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-production-small
rotate: false
- xy: 1479, 511
+ xy: 1211, 137
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-production-smaller
rotate: false
- xy: 1475, 249
+ xy: 1481, 245
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-production-tiny
rotate: false
- xy: 1907, 152
+ xy: 1755, 57
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-quit
rotate: false
- xy: 801, 478
+ xy: 751, 378
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-quit-small
rotate: false
- xy: 1513, 545
+ xy: 1245, 171
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-quit-smaller
rotate: false
- xy: 1507, 249
+ xy: 1515, 343
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-reddit
rotate: false
- xy: 751, 378
+ xy: 801, 428
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-reddit-small
rotate: false
- xy: 1207, 205
+ xy: 1279, 205
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-reddit-smaller
rotate: false
- xy: 1541, 379
+ xy: 1513, 311
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-reddit-tiny
rotate: false
- xy: 1889, 116
+ xy: 1755, 39
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-redo
rotate: false
- xy: 801, 428
+ xy: 751, 328
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-redo-small
rotate: false
- xy: 1241, 239
+ xy: 1313, 239
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-redo-smaller
rotate: false
- xy: 1539, 347
+ xy: 1513, 279
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-redo-tiny
rotate: false
- xy: 1907, 134
+ xy: 1773, 111
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-refresh
rotate: false
- xy: 751, 328
+ xy: 801, 378
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-refresh-small
rotate: false
- xy: 1275, 273
+ xy: 1347, 273
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-refresh-smaller
rotate: false
- xy: 1539, 315
+ xy: 1513, 247
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-refresh-tiny
rotate: false
- xy: 1907, 116
+ xy: 1773, 93
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-rename
rotate: false
- xy: 801, 378
+ xy: 751, 278
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-rename-small
rotate: false
- xy: 1309, 307
+ xy: 1381, 307
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-rename-smaller
rotate: false
- xy: 1539, 283
+ xy: 1549, 377
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-rename-tiny
rotate: false
- xy: 1925, 152
+ xy: 1773, 75
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-resize
rotate: false
- xy: 751, 278
+ xy: 801, 328
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-resize-small
rotate: false
- xy: 1343, 341
+ xy: 1415, 341
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-resize-smaller
rotate: false
- xy: 1539, 251
+ xy: 1547, 345
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-resize-tiny
rotate: false
- xy: 1925, 134
+ xy: 1773, 57
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-rotate
rotate: false
- xy: 801, 328
+ xy: 751, 228
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-rotate-arrow
rotate: false
- xy: 751, 228
+ xy: 801, 278
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-rotate-arrow-small
rotate: false
- xy: 1377, 375
+ xy: 1449, 375
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-rotate-arrow-smaller
rotate: false
- xy: 1575, 413
+ xy: 1583, 411
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-rotate-arrow-tiny
rotate: false
- xy: 1925, 116
+ xy: 1773, 39
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-rotate-left
rotate: false
- xy: 801, 278
+ xy: 751, 178
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-rotate-left-small
rotate: false
- xy: 1411, 409
+ xy: 1483, 409
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-rotate-left-smaller
rotate: false
- xy: 1573, 381
+ xy: 1581, 379
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-rotate-left-tiny
rotate: false
- xy: 1889, 98
+ xy: 1791, 116
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-rotate-right
rotate: false
- xy: 751, 178
+ xy: 801, 228
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-rotate-right-small
rotate: false
- xy: 1445, 443
+ xy: 1517, 443
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-rotate-right-smaller
rotate: false
- xy: 1609, 447
+ xy: 1617, 445
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-rotate-right-tiny
rotate: false
- xy: 1907, 98
+ xy: 1791, 98
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-rotate-small
rotate: false
- xy: 1479, 477
+ xy: 1551, 477
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-rotate-smaller
rotate: false
- xy: 1607, 415
+ xy: 1615, 413
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-rotate-tiny
rotate: false
- xy: 1925, 98
+ xy: 1791, 80
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-save
rotate: false
- xy: 801, 228
+ xy: 751, 128
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-save-image
rotate: false
- xy: 751, 128
+ xy: 801, 178
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-save-image-small
rotate: false
- xy: 1513, 511
+ xy: 1585, 511
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-save-image-smaller
rotate: false
- xy: 1643, 481
+ xy: 1651, 479
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-save-image-tiny
rotate: false
- xy: 1871, 93
+ xy: 1791, 62
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-save-map
rotate: false
- xy: 801, 178
+ xy: 751, 78
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-save-map-small
rotate: false
- xy: 1547, 545
+ xy: 1619, 545
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-save-map-smaller
rotate: false
- xy: 1641, 449
+ xy: 1649, 447
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-save-map-tiny
rotate: false
- xy: 1869, 75
+ xy: 1791, 44
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-save-small
rotate: false
- xy: 1207, 171
+ xy: 1245, 137
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-save-smaller
rotate: false
- xy: 1675, 483
+ xy: 1685, 513
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-save-tiny
rotate: false
- xy: 1869, 57
+ xy: 1809, 116
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-settings
rotate: false
- xy: 751, 78
+ xy: 801, 128
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-settings-small
rotate: false
- xy: 1241, 205
+ xy: 1279, 171
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-settings-smaller
rotate: false
- xy: 1707, 483
+ xy: 1683, 481
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-settings-tiny
rotate: false
- xy: 1869, 39
+ xy: 1809, 98
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-spray
rotate: false
- xy: 801, 128
+ xy: 751, 28
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-spray-small
rotate: false
- xy: 1275, 239
+ xy: 1313, 205
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-spray-smaller
rotate: false
- xy: 1739, 483
+ xy: 1717, 515
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-spray-tiny
rotate: false
- xy: 1871, 21
+ xy: 1809, 80
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-terrain
rotate: false
- xy: 751, 28
+ xy: 801, 78
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-terrain-small
rotate: false
- xy: 1309, 273
+ xy: 1347, 239
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-terrain-smaller
rotate: false
- xy: 1771, 483
+ xy: 1749, 515
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-terrain-tiny
rotate: false
- xy: 1871, 3
+ xy: 1809, 62
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-tools
rotate: false
- xy: 801, 78
+ xy: 801, 28
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-tools-small
rotate: false
- xy: 1343, 307
+ xy: 1381, 273
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-tools-smaller
rotate: false
- xy: 1803, 483
+ xy: 1781, 515
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-tools-tiny
rotate: false
- xy: 1889, 80
+ xy: 1809, 44
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-trash
rotate: false
- xy: 801, 28
+ xy: 851, 528
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-trash-16
rotate: false
- xy: 851, 528
+ xy: 851, 478
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-trash-16-small
rotate: false
- xy: 1377, 341
+ xy: 1415, 307
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-trash-16-smaller
rotate: false
- xy: 1835, 483
+ xy: 1813, 515
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-trash-16-tiny
rotate: false
- xy: 1907, 80
+ xy: 1827, 117
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-trash-small
rotate: false
- xy: 1411, 375
+ xy: 1449, 341
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-trash-smaller
rotate: false
- xy: 1867, 483
+ xy: 1845, 515
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-trash-tiny
rotate: false
- xy: 1925, 80
+ xy: 1827, 99
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-tree
rotate: false
- xy: 851, 478
+ xy: 851, 428
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-tree-small
rotate: false
- xy: 1445, 409
+ xy: 1483, 375
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-tree-smaller
rotate: false
- xy: 1899, 483
+ xy: 1877, 515
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-tree-tiny
rotate: false
- xy: 1887, 62
+ xy: 1845, 117
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-trello
rotate: false
- xy: 851, 428
+ xy: 851, 378
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-trello-small
rotate: false
- xy: 1479, 443
+ xy: 1517, 409
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-trello-smaller
rotate: false
- xy: 1931, 483
+ xy: 1909, 515
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-trello-tiny
rotate: false
- xy: 1905, 62
+ xy: 1827, 81
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-turret
rotate: false
- xy: 851, 378
+ xy: 851, 328
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-turret-small
rotate: false
- xy: 1513, 477
+ xy: 1551, 443
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-turret-smaller
rotate: false
- xy: 1963, 483
+ xy: 1941, 515
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-turret-tiny
rotate: false
- xy: 1887, 44
+ xy: 1845, 99
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-tutorial
rotate: false
- xy: 851, 328
+ xy: 851, 278
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-tutorial-small
rotate: false
- xy: 1547, 511
+ xy: 1585, 477
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-tutorial-smaller
rotate: false
- xy: 1997, 515
+ xy: 1973, 515
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-tutorial-tiny
rotate: false
- xy: 1923, 62
+ xy: 1863, 117
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-undo
rotate: false
- xy: 851, 278
+ xy: 851, 228
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-undo-small
rotate: false
- xy: 1581, 545
+ xy: 1619, 511
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-undo-smaller
rotate: false
- xy: 1995, 483
+ xy: 2005, 515
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-undo-tiny
rotate: false
- xy: 1905, 44
+ xy: 1827, 63
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-units
rotate: false
- xy: 851, 228
+ xy: 851, 178
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-units-small
rotate: false
- xy: 1207, 137
+ xy: 1653, 545
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-units-smaller
rotate: false
- xy: 1303, 107
+ xy: 1379, 173
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-units-tiny
rotate: false
- xy: 1923, 44
+ xy: 1845, 81
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-unlocks
rotate: false
- xy: 851, 178
+ xy: 851, 128
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-unlocks-small
rotate: false
- xy: 1241, 171
+ xy: 1279, 137
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-unlocks-smaller
rotate: false
- xy: 1303, 75
+ xy: 1377, 141
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-unlocks-tiny
rotate: false
- xy: 1889, 26
+ xy: 1863, 99
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-upgrade
rotate: false
- xy: 851, 128
+ xy: 851, 78
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-upgrade-small
rotate: false
- xy: 1275, 205
+ xy: 1313, 171
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-upgrade-smaller
rotate: false
- xy: 1303, 43
+ xy: 1389, 109
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-upgrade-tiny
rotate: false
- xy: 1889, 8
+ xy: 1881, 117
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-wiki
rotate: false
- xy: 851, 78
+ xy: 851, 28
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-wiki-small
rotate: false
- xy: 1309, 239
+ xy: 1347, 205
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-wiki-smaller
rotate: false
- xy: 1303, 11
+ xy: 1409, 141
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-wiki-tiny
rotate: false
- xy: 1907, 26
+ xy: 1827, 45
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-workshop
rotate: false
- xy: 851, 28
+ xy: 859, 925
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-workshop-small
rotate: false
- xy: 1343, 273
+ xy: 1381, 239
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-workshop-smaller
rotate: false
- xy: 1471, 215
+ xy: 1421, 109
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-workshop-tiny
rotate: false
- xy: 1907, 8
+ xy: 1845, 63
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
icon-zoom
rotate: false
- xy: 859, 925
+ xy: 909, 925
size: 48, 48
orig: 48, 48
offset: 0, 0
index: -1
icon-zoom-small
rotate: false
- xy: 1377, 307
+ xy: 1415, 273
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
icon-zoom-smaller
rotate: false
- xy: 1469, 183
+ xy: 1417, 77
size: 30, 30
orig: 30, 30
offset: 0, 0
index: -1
icon-zoom-tiny
rotate: false
- xy: 1925, 26
+ xy: 1863, 81
size: 16, 16
orig: 16, 16
offset: 0, 0
@@ -19693,7 +19749,7 @@ info-banner
index: -1
inventory
rotate: false
- xy: 1839, 363
+ xy: 1735, 291
size: 24, 40
split: 10, 10, 10, 14
orig: 24, 40
@@ -19715,7 +19771,7 @@ nomap
index: -1
pane
rotate: false
- xy: 1109, 623
+ xy: 901, 238
size: 36, 27
split: 12, 12, 12, 12
orig: 36, 27
@@ -19723,7 +19779,7 @@ pane
index: -1
pane-2
rotate: false
- xy: 1109, 652
+ xy: 901, 267
size: 36, 27
split: 12, 12, 12, 12
orig: 36, 27
@@ -19731,7 +19787,7 @@ pane-2
index: -1
scroll
rotate: false
- xy: 1891, 368
+ xy: 1787, 296
size: 24, 35
split: 10, 10, 6, 5
orig: 24, 35
@@ -19754,14 +19810,14 @@ scroll-knob-horizontal-black
index: -1
scroll-knob-vertical-black
rotate: false
- xy: 1865, 363
+ xy: 1761, 291
size: 24, 40
orig: 24, 40
offset: 0, 0
index: -1
scroll-knob-vertical-thin
rotate: false
- xy: 2035, 855
+ xy: 2035, 183
size: 12, 40
orig: 12, 40
offset: 0, 0
@@ -19775,28 +19831,28 @@ selection
index: -1
slider
rotate: false
- xy: 1529, 159
+ xy: 1657, 281
size: 1, 8
orig: 1, 8
offset: 0, 0
index: -1
slider-knob
rotate: false
- xy: 1503, 209
+ xy: 1417, 37
size: 29, 38
orig: 29, 38
offset: 0, 0
index: -1
slider-knob-down
rotate: false
- xy: 1469, 143
+ xy: 1545, 303
size: 29, 38
orig: 29, 38
offset: 0, 0
index: -1
slider-knob-over
rotate: false
- xy: 1501, 169
+ xy: 1545, 263
size: 29, 38
orig: 29, 38
offset: 0, 0
@@ -19810,7 +19866,7 @@ slider-vertical
index: -1
underline
rotate: false
- xy: 1185, 623
+ xy: 901, 122
size: 36, 27
split: 12, 12, 12, 12
orig: 36, 27
@@ -19818,7 +19874,7 @@ underline
index: -1
underline-2
rotate: false
- xy: 1147, 652
+ xy: 901, 209
size: 36, 27
split: 12, 12, 12, 12
orig: 36, 27
@@ -19826,7 +19882,7 @@ underline-2
index: -1
underline-disabled
rotate: false
- xy: 1147, 623
+ xy: 901, 180
size: 36, 27
split: 12, 12, 12, 12
orig: 36, 27
@@ -19834,7 +19890,7 @@ underline-disabled
index: -1
underline-red
rotate: false
- xy: 1185, 652
+ xy: 901, 151
size: 36, 27
split: 12, 12, 12, 12
orig: 36, 27
@@ -19842,14 +19898,14 @@ underline-red
index: -1
whiteui
rotate: false
- xy: 1876, 327
+ xy: 1778, 219
size: 3, 3
orig: 3, 3
offset: 0, 0
index: -1
window-empty
rotate: false
- xy: 1571, 316
+ xy: 1576, 282
size: 27, 61
split: 4, 4, 2, 2
orig: 27, 61
diff --git a/core/assets/sprites/sprites.png b/core/assets/sprites/sprites.png
index a3d409f498..279db9cfbe 100644
Binary files a/core/assets/sprites/sprites.png and b/core/assets/sprites/sprites.png differ
diff --git a/core/assets/sprites/sprites3.png b/core/assets/sprites/sprites3.png
index e9d1b74924..d3c018778a 100644
Binary files a/core/assets/sprites/sprites3.png and b/core/assets/sprites/sprites3.png differ
diff --git a/core/assets/sprites/sprites5.png b/core/assets/sprites/sprites5.png
index 7542c661a0..f11403a8ec 100644
Binary files a/core/assets/sprites/sprites5.png and b/core/assets/sprites/sprites5.png differ
diff --git a/core/src/mindustry/Vars.java b/core/src/mindustry/Vars.java
index dfefeb2a68..80e6241e09 100644
--- a/core/src/mindustry/Vars.java
+++ b/core/src/mindustry/Vars.java
@@ -21,6 +21,7 @@ import mindustry.gen.*;
import mindustry.input.*;
import mindustry.maps.*;
import mindustry.mod.*;
+import mindustry.net.*;
import mindustry.net.Net;
import mindustry.world.blocks.defense.ForceProjector.*;
@@ -53,8 +54,10 @@ 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. */
+ /** URL to the JSON file containing all the global, public servers. Not queried in BE. */
public static final String serverJsonURL = "https://raw.githubusercontent.com/Anuken/Mindustry/master/servers.json";
+ /** URL to the JSON file containing all the BE servers. Only queried in BE. */
+ public static final String serverJsonBeURL = "https://raw.githubusercontent.com/Anuken/Mindustry/master/servers_be.json";
/** URL the links to the wiki's modding guide.*/
public static final String reportIssueURL = "https://github.com/Anuken/Mindustry/issues/new?template=bug_report.md";
/** list of built-in servers.*/
@@ -136,6 +139,8 @@ public class Vars implements Loadable{
public static Fi modDirectory;
/** data subdirectory used for schematics */
public static Fi schematicDirectory;
+ /** data subdirectory used for bleeding edge build versions */
+ public static Fi bebuildDirectory;
/** map file extension */
public static final String mapExtension = "msav";
/** save file extension */
@@ -157,6 +162,7 @@ public class Vars implements Loadable{
public static Platform platform = new Platform(){};
public static Mods mods;
public static Schematics schematics = new Schematics();
+ public static BeControl becontrol;
public static World world;
public static Maps maps;
@@ -220,6 +226,7 @@ public class Vars implements Loadable{
defaultWaves = new DefaultWaves();
collisions = new EntityCollisions();
world = new World();
+ becontrol = new BeControl();
maps = new Maps();
spawner = new WaveSpawner();
@@ -260,6 +267,7 @@ public class Vars implements Loadable{
tmpDirectory = dataDirectory.child("tmp/");
modDirectory = dataDirectory.child("mods/");
schematicDirectory = dataDirectory.child("schematics/");
+ bebuildDirectory = dataDirectory.child("be_builds/");
modDirectory.mkdirs();
diff --git a/core/src/mindustry/ai/BlockIndexer.java b/core/src/mindustry/ai/BlockIndexer.java
index c4a13a8b6c..b943c12a43 100644
--- a/core/src/mindustry/ai/BlockIndexer.java
+++ b/core/src/mindustry/ai/BlockIndexer.java
@@ -5,12 +5,12 @@ import arc.func.*;
import arc.math.*;
import arc.math.geom.*;
import arc.struct.*;
+import arc.util.*;
import mindustry.content.*;
import mindustry.entities.traits.*;
import mindustry.entities.type.*;
import mindustry.game.EventType.*;
import mindustry.game.*;
-import mindustry.game.Teams.*;
import mindustry.type.*;
import mindustry.world.*;
import mindustry.world.blocks.*;
@@ -36,6 +36,8 @@ public class BlockIndexer{
private ObjectSet[] damagedTiles = new ObjectSet[Team.all().length];
/**All ores available on this map.*/
private ObjectSet- allOres = new ObjectSet<>();
+ /**Stores teams that are present here as tiles.*/
+ private ObjectSet activeTeams = new ObjectSet<>();
/** Maps teams to a map of flagged tiles by type. */
private ObjectSet[][] flagMap = new ObjectSet[Team.all().length][BlockFlag.all.length];
@@ -106,10 +108,11 @@ public class BlockIndexer{
}
private GridBits structQuadrant(Team t){
- if(structQuadrants[t.id] == null){
- structQuadrants[t.id] = new GridBits(Mathf.ceil(world.width() / (float)quadrantSize), Mathf.ceil(world.height() / (float)quadrantSize));
+ int id = Pack.u(t.id);
+ if(structQuadrants[id] == null){
+ structQuadrants[id] = new GridBits(Mathf.ceil(world.width() / (float)quadrantSize), Mathf.ceil(world.height() / (float)quadrantSize));
}
- return structQuadrants[t.id];
+ return structQuadrants[id];
}
/** Updates all the structure quadrants for a newly activated team. */
@@ -219,6 +222,19 @@ public class BlockIndexer{
set.add(entity.tile);
}
+ public TileEntity findEnemyTile(Team team, float x, float y, float range, Boolf pred){
+ for(Team enemy : activeTeams){
+ if(!team.isEnemy(enemy)) continue;
+
+ TileEntity entity = indexer.findTile(enemy, x, y, range, pred, true);
+ if(entity != null){
+ return entity;
+ }
+ }
+
+ return null;
+ }
+
public TileEntity findTile(Team team, float x, float y, float range, Boolf pred){
return findTile(team, x, y, range, pred, false);
}
@@ -244,7 +260,7 @@ public class BlockIndexer{
TileEntity e = other.entity;
float ndst = Mathf.dst(x, y, e.x, e.y);
- if(ndst < range && (closest == null || ndst < dst || (usePriority && closest.block.priority.ordinal() < e.block.priority.ordinal()))){
+ if(ndst < range && (closest == null || ndst < dst || (usePriority && closest.block.priority.ordinal() <= e.block.priority.ordinal()))){
dst = ndst;
closest = e;
}
@@ -298,6 +314,7 @@ public class BlockIndexer{
}
typeMap.put(tile.pos(), new TileIndex(tile.block().flags, tile.getTeam()));
}
+ activeTeams.add(tile.getTeam());
if(ores == null) return;
@@ -336,13 +353,12 @@ public class BlockIndexer{
//this quadrant is now 'dirty', re-scan the whole thing
int quadrantX = tile.x / quadrantSize;
int quadrantY = tile.y / quadrantSize;
- int index = quadrantX + quadrantY * quadWidth();
- for(TeamData data : state.teams.getActive()){
- GridBits bits = structQuadrant(data.team);
+ for(Team team : activeTeams){
+ GridBits bits = structQuadrant(team);
//fast-set this quadrant to 'occupied' if the tile just placed is already of this team
- if(tile.getTeam() == data.team && tile.entity != null && tile.block().targetable){
+ if(tile.getTeam() == team && tile.entity != null && tile.block().targetable){
bits.set(quadrantX, quadrantY);
continue; //no need to process futher
}
@@ -354,7 +370,7 @@ public class BlockIndexer{
for(int y = quadrantY * quadrantSize; y < world.height() && y < (quadrantY + 1) * quadrantSize; y++){
Tile result = world.ltile(x, y);
//when a targetable block is found, mark this quadrant as occupied and stop searching
- if(result.entity != null && result.getTeam() == data.team){
+ if(result.entity != null && result.getTeam() == team){
bits.set(quadrantX, quadrantY);
break outer;
}
diff --git a/core/src/mindustry/ai/Pathfinder.java b/core/src/mindustry/ai/Pathfinder.java
index 6a2515bb7a..a16ac8f410 100644
--- a/core/src/mindustry/ai/Pathfinder.java
+++ b/core/src/mindustry/ai/Pathfinder.java
@@ -139,7 +139,7 @@ public class Pathfinder implements Runnable{
//stop looping when interrupted externally
return;
}
- }catch(Exception e){
+ }catch(Throwable e){
e.printStackTrace();
}
}
diff --git a/core/src/mindustry/content/Blocks.java b/core/src/mindustry/content/Blocks.java
index 79f98f78d0..3a66d7f87d 100644
--- a/core/src/mindustry/content/Blocks.java
+++ b/core/src/mindustry/content/Blocks.java
@@ -49,7 +49,7 @@ public class Blocks implements ContentList{
melter, separator, sporePress, pulverizer, incinerator, coalCentrifuge,
//sandbox
- powerSource, powerVoid, itemSource, itemVoid, liquidSource, message, illuminator,
+ powerSource, powerVoid, itemSource, itemVoid, liquidSource, liquidVoid, message, illuminator,
//defense
copperWall, copperWallLarge, titaniumWall, titaniumWallLarge, plastaniumWall, plastaniumWallLarge, thoriumWall, thoriumWallLarge, door, doorLarge,
@@ -258,9 +258,7 @@ public class Blocks implements ContentList{
}};
ice = new Floor("ice"){{
- //TODO fix drag/speed
- dragMultiplier = 1f;
- speedMultiplier = 1f;
+ dragMultiplier = 0.6f;
attributes.set(Attribute.water, 0.4f);
}};
@@ -898,10 +896,11 @@ public class Blocks implements ContentList{
}};
junction = new Junction("junction"){{
- requirements(Category.distribution, ItemStack.with(Items.copper, 1), true);
+ requirements(Category.distribution, ItemStack.with(Items.copper, 2), true);
speed = 26;
capacity = 12;
health = 30;
+ buildCostMultiplier = 6f;
}};
itemBridge = new BufferedItemBridge("bridge-conveyor"){{
@@ -921,16 +920,18 @@ public class Blocks implements ContentList{
sorter = new Sorter("sorter"){{
requirements(Category.distribution, ItemStack.with(Items.lead, 2, Items.copper, 2));
+ buildCostMultiplier = 3f;
}};
invertedSorter = new Sorter("inverted-sorter"){{
requirements(Category.distribution, ItemStack.with(Items.lead, 2, Items.copper, 2));
+ buildCostMultiplier = 3f;
invert = true;
}};
router = new Router("router"){{
requirements(Category.distribution, ItemStack.with(Items.copper, 3));
-
+ buildCostMultiplier = 2f;
}};
distributor = new Router("distributor"){{
@@ -940,6 +941,7 @@ public class Blocks implements ContentList{
overflowGate = new OverflowGate("overflow-gate"){{
requirements(Category.distribution, ItemStack.with(Items.lead, 2, Items.copper, 4));
+ buildCostMultiplier = 3f;
}};
massDriver = new MassDriver("mass-driver"){{
@@ -1234,7 +1236,7 @@ public class Blocks implements ContentList{
//region storage
coreShard = new CoreBlock("core-shard"){{
- requirements(Category.effect, BuildVisibility.debugOnly, ItemStack.with(Items.titanium, 4000));
+ requirements(Category.effect, BuildVisibility.debugOnly, ItemStack.with());
alwaysUnlocked = true;
health = 1100;
@@ -1244,7 +1246,7 @@ public class Blocks implements ContentList{
}};
coreFoundation = new CoreBlock("core-foundation"){{
- requirements(Category.effect, BuildVisibility.debugOnly, ItemStack.with(Items.titanium, 400, Items.silicon, 3000));
+ requirements(Category.effect, BuildVisibility.debugOnly, ItemStack.with());
health = 2000;
itemCapacity = 9000;
@@ -1253,7 +1255,7 @@ public class Blocks implements ContentList{
}};
coreNucleus = new CoreBlock("core-nucleus"){{
- requirements(Category.effect, BuildVisibility.debugOnly, ItemStack.with(Items.titanium, 4000, Items.silicon, 2000, Items.surgealloy, 3000));
+ requirements(Category.effect, BuildVisibility.debugOnly, ItemStack.with());
health = 4000;
itemCapacity = 13000;
@@ -1824,6 +1826,11 @@ public class Blocks implements ContentList{
alwaysUnlocked = true;
}};
+ liquidVoid = new LiquidVoid("liquid-void"){{
+ requirements(Category.liquid, BuildVisibility.sandboxOnly, ItemStack.with());
+ alwaysUnlocked = true;
+ }};
+
message = new MessageBlock("message"){{
requirements(Category.effect, ItemStack.with(Items.graphite, 5));
}};
diff --git a/core/src/mindustry/content/Loadouts.java b/core/src/mindustry/content/Loadouts.java
index 16252b686f..145da6120e 100644
--- a/core/src/mindustry/content/Loadouts.java
+++ b/core/src/mindustry/content/Loadouts.java
@@ -3,8 +3,6 @@ package mindustry.content;
import mindustry.ctype.*;
import mindustry.game.*;
-import java.io.*;
-
public class Loadouts implements ContentList{
public static Schematic
basicShard,
@@ -14,13 +12,9 @@ public class Loadouts implements ContentList{
@Override
public void load(){
- try{
- basicShard = Schematics.readBase64("bXNjaAB4nD2K2wqAIBiD5ymibnoRn6YnEP1BwUMoBL19FuJ2sbFvUFgYZDaJsLeQrkinN9UJHImsNzlYE7WrIUastuSbnlKx2VJJt+8IQGGKdfO/8J5yrGJSMegLg+YUIA==");
- advancedShard = Schematics.readBase64("bXNjaAB4nD2LjQqAIAyET7OMIOhFfJqeYMxBgSkYCL199gu33fFtB4tOwUTaBCP5QpHFzwtl32DahBeKK1NwPq8hoOcUixwpY+CUxe3XIwBbB/pa6tadVCUP02hgHvp5vZq/0b7pBHPYFOQ=");
- basicFoundation = Schematics.readBase64("bXNjaAB4nD1OSQ6DMBBzFhVu8BG+0X8MQyoiJTNSukj8nlCi2Adbtg/GA4OBF8oB00rvyE/9ykafqOIw58A7SWRKy1ZiShhZ5RcOLZhYS1hefQ1gRIeptH9jq/qW2lvc1d2tgWsOfVX/tOwE86AYBA==");
- basicNucleus = Schematics.readBase64("bXNjaAB4nD2MUQqAIBBEJy0s6qOLdJXuYNtCgikYBd2+LNmdj308hkGHtkId7M4YFns4mk/yfB4a48602eDI+mlNznu0FMPFd0wYKCaewl8F0EOueqM+yKSLVfJrNKWnSw/FZGzEGXFG9sy/px4gEBW1");
- }catch(IOException e){
- throw new RuntimeException(e);
- }
+ basicShard = Schematics.readBase64("bXNjaAB4nD2K2wqAIBiD5ymibnoRn6YnEP1BwUMoBL19FuJ2sbFvUFgYZDaJsLeQrkinN9UJHImsNzlYE7WrIUastuSbnlKx2VJJt+8IQGGKdfO/8J5yrGJSMegLg+YUIA==");
+ advancedShard = Schematics.readBase64("bXNjaAB4nD2LjQqAIAyET7OMIOhFfJqeYMxBgSkYCL199gu33fFtB4tOwUTaBCP5QpHFzwtl32DahBeKK1NwPq8hoOcUixwpY+CUxe3XIwBbB/pa6tadVCUP02hgHvp5vZq/0b7pBHPYFOQ=");
+ basicFoundation = Schematics.readBase64("bXNjaAB4nD1OSQ6DMBBzFhVu8BG+0X8MQyoiJTNSukj8nlCi2Adbtg/GA4OBF8oB00rvyE/9ykafqOIw58A7SWRKy1ZiShhZ5RcOLZhYS1hefQ1gRIeptH9jq/qW2lvc1d2tgWsOfVX/tOwE86AYBA==");
+ basicNucleus = Schematics.readBase64("bXNjaAB4nD2MUQqAIBBEJy0s6qOLdJXuYNtCgikYBd2+LNmdj308hkGHtkId7M4YFns4mk/yfB4a48602eDI+mlNznu0FMPFd0wYKCaewl8F0EOueqM+yKSLVfJrNKWnSw/FZGzEGXFG9sy/px4gEBW1");
}
}
diff --git a/core/src/mindustry/content/Mechs.java b/core/src/mindustry/content/Mechs.java
index 8ffc1a4bd9..67283d1f43 100644
--- a/core/src/mindustry/content/Mechs.java
+++ b/core/src/mindustry/content/Mechs.java
@@ -70,7 +70,7 @@ public class Mechs implements ContentList{
}
@Override
- public void updateAlt(Player player){
+ public void update(Player player){
if(player.timer.get(Player.timerAbility, healReload)){
if(indexer.eachBlock(player, healRange, other -> other.entity.damaged(), other -> {
other.entity.healBy(other.entity.maxHealth() * healPercent / 100f);
@@ -116,7 +116,7 @@ public class Mechs implements ContentList{
}
@Override
- public void updateAlt(Player player){
+ public void update(Player player){
player.healBy(Time.delta() * 0.09f);
}
@@ -185,7 +185,7 @@ public class Mechs implements ContentList{
}
@Override
- public void updateAlt(Player player){
+ public void update(Player player){
if(player.timer.get(Player.timerAbility, healReload)){
wasHealed = false;
@@ -253,7 +253,7 @@ public class Mechs implements ContentList{
}
@Override
- public void updateAlt(Player player){
+ public void update(Player player){
float scl = 1f - player.shootHeat / 2f*Time.delta();
player.velocity().scl(scl);
}
@@ -303,8 +303,8 @@ public class Mechs implements ContentList{
}
@Override
- public void updateAlt(Player player){
- super.updateAlt(player);
+ public void update(Player player){
+ super.update(player);
if(player.timer.get(Player.timerAbility, effectReload)){
@@ -361,7 +361,7 @@ public class Mechs implements ContentList{
}
@Override
- public void updateAlt(Player player){
+ public void update(Player player){
float scl = scld(player);
if(Mathf.chance(Time.delta() * (0.15 * scl))){
Effects.effect(Fx.hitLancer, Pal.lancerLaser, player.x, player.y);
diff --git a/core/src/mindustry/content/TechTree.java b/core/src/mindustry/content/TechTree.java
index a31312753e..fb9207cdda 100644
--- a/core/src/mindustry/content/TechTree.java
+++ b/core/src/mindustry/content/TechTree.java
@@ -1,9 +1,10 @@
package mindustry.content;
-import arc.struct.Array;
-import mindustry.ctype.ContentList;
-import mindustry.type.ItemStack;
-import mindustry.world.Block;
+import arc.math.*;
+import arc.struct.*;
+import mindustry.ctype.*;
+import mindustry.type.*;
+import mindustry.world.*;
import static mindustry.content.Blocks.*;
@@ -318,7 +319,7 @@ public class TechTree implements ContentList{
private static TechNode node(Block block, Runnable children){
ItemStack[] requirements = new ItemStack[block.requirements.length];
for(int i = 0; i < requirements.length; i++){
- requirements[i] = new ItemStack(block.requirements[i].item, 30 + block.requirements[i].amount * 6);
+ requirements[i] = new ItemStack(block.requirements[i].item, 40 + Mathf.round(Mathf.pow(block.requirements[i].amount, 1.25f) * 6, 10));
}
return new TechNode(block, requirements, children);
diff --git a/core/src/mindustry/core/Control.java b/core/src/mindustry/core/Control.java
index 458cb313ae..7c86601bb3 100644
--- a/core/src/mindustry/core/Control.java
+++ b/core/src/mindustry/core/Control.java
@@ -456,7 +456,7 @@ public class Control implements ApplicationListener, Loadable{
state.set(state.is(State.playing) ? State.paused : State.playing);
}
- if(Core.input.keyTap(Binding.menu) && !ui.restart.isShown()){
+ if(Core.input.keyTap(Binding.menu) && !ui.restart.isShown() && !ui.minimapfrag.shown()){
if(ui.chatfrag.shown()){
ui.chatfrag.hide();
}else if(!ui.paused.isShown() && !scene.hasDialog()){
diff --git a/core/src/mindustry/core/Logic.java b/core/src/mindustry/core/Logic.java
index 17fedab303..4e1e4a5c29 100644
--- a/core/src/mindustry/core/Logic.java
+++ b/core/src/mindustry/core/Logic.java
@@ -47,8 +47,8 @@ public class Logic implements ApplicationListener{
//blocks that get broken are appended to the team's broken block queue
Tile tile = event.tile;
Block block = tile.block();
- //skip null entities or nukes, for obvious reasons
- if(tile.entity == null || tile.block() instanceof NuclearReactor) return;
+ //skip null entities or un-rebuildables, for obvious reasons; also skip client since they can't modify these requests
+ if(tile.entity == null || !tile.block().rebuildable || net.client()) return;
if(block instanceof BuildBlock){
@@ -209,6 +209,7 @@ public class Logic implements ApplicationListener{
@Override
public void update(){
+ Events.fire(Trigger.update);
if(!state.is(State.menu)){
if(!net.client()){
@@ -260,7 +261,7 @@ public class Logic implements ApplicationListener{
}
}
- if(!net.client() && !world.isInvalidMap() && !state.isEditor()){
+ if(!net.client() && !world.isInvalidMap() && !state.isEditor() && state.rules.canGameOver){
checkGameOver();
}
}
diff --git a/core/src/mindustry/core/NetClient.java b/core/src/mindustry/core/NetClient.java
index 656568e8e2..db41330512 100644
--- a/core/src/mindustry/core/NetClient.java
+++ b/core/src/mindustry/core/NetClient.java
@@ -160,7 +160,7 @@ public class NetClient implements ApplicationListener{
throw new ValidateException(player, "Player has sent a message above the text limit.");
}
- String original = message;
+ Events.fire(new PlayerChatEvent(player, message));
//check if it's a command
CommandResponse response = netServer.clientCommands.handleMessage(message, player);
@@ -197,8 +197,6 @@ public class NetClient implements ApplicationListener{
player.sendMessage(text);
}
}
-
- Events.fire(new PlayerChatEvent(player, message, original));
}
public static String colorizeName(int id, String name){
diff --git a/core/src/mindustry/core/NetServer.java b/core/src/mindustry/core/NetServer.java
index 47f4d00ebe..f7570a6b9f 100644
--- a/core/src/mindustry/core/NetServer.java
+++ b/core/src/mindustry/core/NetServer.java
@@ -15,6 +15,7 @@ import mindustry.entities.*;
import mindustry.entities.traits.BuilderTrait.*;
import mindustry.entities.traits.*;
import mindustry.entities.type.*;
+import mindustry.net.Administration;
import mindustry.game.EventType.*;
import mindustry.game.*;
import mindustry.game.Teams.*;
@@ -26,14 +27,16 @@ import mindustry.world.*;
import mindustry.world.blocks.storage.CoreBlock.*;
import java.io.*;
+import java.net.*;
import java.nio.*;
import java.util.zip.*;
+import static arc.util.Log.*;
import static mindustry.Vars.*;
public class NetServer implements ApplicationListener{
private final static int maxSnapshotSize = 430, timerBlockSync = 0;
- private final static float serverSyncTime = 12, kickDuration = 30 * 1000, blockSyncTime = 60 * 8;
+ private final static float serverSyncTime = 12, blockSyncTime = 60 * 8;
private final static Vec2 vector = new Vec2();
private final static Rect viewport = new Rect();
/** If a player goes away of their server-side coordinates by this distance, they get teleported back. */
@@ -73,7 +76,7 @@ public class NetServer implements ApplicationListener{
public NetServer(){
net.handleServer(Connect.class, (con, connect) -> {
- if(admins.isIPBanned(connect.addressTCP)){
+ if(admins.isIPBanned(connect.addressTCP) || admins.isSubnetBanned(connect.addressTCP)){
con.kick(KickReason.banned);
}
});
@@ -91,7 +94,7 @@ public class NetServer implements ApplicationListener{
String uuid = packet.uuid;
- if(admins.isIPBanned(con.address)) return;
+ if(admins.isIPBanned(con.address) || admins.isSubnetBanned(con.address)) return;
if(con.hasBegunConnecting){
con.kick(KickReason.idInUse);
@@ -113,7 +116,7 @@ public class NetServer implements ApplicationListener{
return;
}
- if(Time.millis() - info.lastKicked < kickDuration){
+ if(Time.millis() < info.lastKicked){
con.kick(KickReason.recentKick);
return;
}
@@ -217,7 +220,6 @@ public class NetServer implements ApplicationListener{
//playing in pvp mode automatically assigns players to teams
player.setTeam(assignTeam(player, playerGroup.all()));
- Log.info("Auto-assigned player {0} to team {1}.", player.name, player.getTeam());
sendWorldData(player);
@@ -322,6 +324,11 @@ public class NetServer implements ApplicationListener{
VoteSession[] currentlyKicking = {null};
clientCommands.register("votekick", "[player...]", "Vote to kick a player, with a cooldown.", (args, player) -> {
+ if(!Config.enableVotekick.bool()){
+ player.sendMessage("[scarlet]Vote-kick is disabled on this server.");
+ return;
+ }
+
if(playerGroup.size() < 3){
player.sendMessage("[scarlet]At least 3 players are needed to start a votekick.");
return;
@@ -409,6 +416,12 @@ public class NetServer implements ApplicationListener{
if(player.isLocal){
player.sendMessage("[scarlet]Re-synchronizing as the host is pointless.");
}else{
+ if(Time.timeSinceMillis(player.getInfo().lastSyncTime) < 1000 * 5){
+ player.sendMessage("[scarlet]You may only /sync every 5 seconds.");
+ return;
+ }
+
+ player.getInfo().lastSyncTime = Time.millis();
Call.onWorldDataBegin(player.con);
netServer.sendWorldData(player);
}
@@ -444,7 +457,7 @@ public class NetServer implements ApplicationListener{
if(!player.con.hasDisconnected){
if(player.con.hasConnected){
Events.fire(new PlayerLeave(player));
- Call.sendMessage("[accent]" + player.name + "[accent] has disconnected.");
+ if(Config.showConnectMessages.bool()) Call.sendMessage("[accent]" + player.name + "[accent] has disconnected.");
Call.onPlayerDisconnect(player.id);
}
@@ -582,9 +595,13 @@ public class NetServer implements ApplicationListener{
player.add();
player.con.hasConnected = true;
- Call.sendMessage("[accent]" + player.name + "[accent] has connected.");
+ if(Config.showConnectMessages.bool()) Call.sendMessage("[accent]" + player.name + "[accent] has connected.");
Log.info("&lm[{1}] &y{0} has connected. ", player.name, player.uuid);
+ if(!Config.motd.string().equalsIgnoreCase("off")){
+ player.sendMessage(Config.motd.string());
+ }
+
Events.fire(new PlayerJoin(player));
}
@@ -601,6 +618,7 @@ public class NetServer implements ApplicationListener{
return false;
}
+ @Override
public void update(){
if(!headless && !closing && net.server() && state.is(State.menu)){
@@ -618,6 +636,20 @@ public class NetServer implements ApplicationListener{
}
}
+ /** Should only be used on the headless backend. */
+ public void openServer(){
+ try{
+ net.host(Config.port.num());
+ info("&lcOpened a server on port {0}.", Config.port.num());
+ }catch(BindException e){
+ Log.err("Unable to host: Port already in use! Make sure no other servers are running on the same port in your network.");
+ state.set(State.menu);
+ }catch(IOException e){
+ err(e);
+ state.set(State.menu);
+ }
+ }
+
public void kickAll(KickReason reason){
for(NetConnection con : net.getConnections()){
con.kick(reason);
diff --git a/core/src/mindustry/core/Renderer.java b/core/src/mindustry/core/Renderer.java
index d4983e992a..7d5e6714b5 100644
--- a/core/src/mindustry/core/Renderer.java
+++ b/core/src/mindustry/core/Renderer.java
@@ -123,12 +123,14 @@ public class Renderer implements ApplicationListener{
if(player.isDead()){
TileEntity core = player.getClosestCore();
- if(core != null && player.spawner == null){
- camera.position.lerpDelta(core.x, core.y, 0.08f);
- }else{
- camera.position.lerpDelta(position, 0.08f);
+ if(core != null){
+ if(player.spawner == null){
+ camera.position.lerpDelta(core.x, core.y, 0.08f);
+ }else{
+ camera.position.lerpDelta(position, 0.08f);
+ }
}
- }else if(control.input instanceof DesktopInput){
+ }else if(control.input instanceof DesktopInput && !state.isPaused()){
camera.position.lerpDelta(position, 0.08f);
}
diff --git a/core/src/mindustry/core/UI.java b/core/src/mindustry/core/UI.java
index 1ce41f6e24..f1b578cc9c 100644
--- a/core/src/mindustry/core/UI.java
+++ b/core/src/mindustry/core/UI.java
@@ -43,6 +43,7 @@ public class UI implements ApplicationListener, Loadable{
public HudFragment hudfrag;
public ChatFragment chatfrag;
public ScriptConsoleFragment scriptfrag;
+ public MinimapFragment minimapfrag;
public PlayerListFragment listfrag;
public LoadingFragment loadfrag;
@@ -68,7 +69,7 @@ public class UI implements ApplicationListener, Loadable{
public ContentInfoDialog content;
public DeployDialog deploy;
public TechTreeDialog tech;
- public MinimapDialog minimap;
+ //public MinimapDialog minimap;
public SchematicsDialog schematics;
public ModsDialog mods;
public ColorPicker picker;
@@ -210,6 +211,7 @@ public class UI implements ApplicationListener, Loadable{
menufrag = new MenuFragment();
hudfrag = new HudFragment();
chatfrag = new ChatFragment();
+ minimapfrag = new MinimapFragment();
listfrag = new PlayerListFragment();
loadfrag = new LoadingFragment();
scriptfrag = new ScriptConsoleFragment();
@@ -235,7 +237,6 @@ public class UI implements ApplicationListener, Loadable{
content = new ContentInfoDialog();
deploy = new DeployDialog();
tech = new TechTreeDialog();
- minimap = new MinimapDialog();
mods = new ModsDialog();
schematics = new SchematicsDialog();
@@ -254,6 +255,7 @@ public class UI implements ApplicationListener, Loadable{
hudfrag.build(hudGroup);
menufrag.build(menuGroup);
chatfrag.container().build(hudGroup);
+ minimapfrag.build(hudGroup);
listfrag.build(hudGroup);
scriptfrag.container().build(hudGroup);
loadfrag.build(group);
@@ -305,7 +307,19 @@ public class UI implements ApplicationListener, Loadable{
hide();
}).disabled(b -> field.getText().isEmpty());
buttons.addButton("$cancel", this::hide);
- }}.show();
+ keyDown(KeyCode.ENTER, () -> {
+ String text = field.getText();
+ if(!text.isEmpty()){
+ confirmed.get(text);
+ hide();
+ }
+ });
+ keyDown(KeyCode.ESCAPE, this::hide);
+ keyDown(KeyCode.BACK, this::hide);
+ show();
+ Core.scene.setKeyboardFocus(field);
+ field.setCursorPosition(def.length());
+ }};
}
}
diff --git a/core/src/mindustry/core/Version.java b/core/src/mindustry/core/Version.java
index 700b8776e6..08a105d8fb 100644
--- a/core/src/mindustry/core/Version.java
+++ b/core/src/mindustry/core/Version.java
@@ -9,9 +9,9 @@ import arc.util.io.*;
public class Version{
/** Build type. 'official' for official releases; 'custom' or 'bleeding edge' are also used. */
- public static String type;
+ public static String type = "unknown";
/** Build modifier, e.g. 'alpha' or 'release' */
- public static String modifier;
+ public static String modifier = "unknown";
/** Number specifying the major version, e.g. '4' */
public static int number;
/** Build number, e.g. '43'. set to '-1' for custom builds. */
diff --git a/core/src/mindustry/core/World.java b/core/src/mindustry/core/World.java
index ea0e9aa054..bbc3f4074c 100644
--- a/core/src/mindustry/core/World.java
+++ b/core/src/mindustry/core/World.java
@@ -217,7 +217,7 @@ public class World{
public void loadMap(Map map, Rules checkRules){
try{
SaveIO.load(map.file, new FilterContext(map));
- }catch(Exception e){
+ }catch(Throwable e){
Log.err(e);
if(!headless){
ui.showErrorMessage("$map.invalid");
diff --git a/core/src/mindustry/editor/EditorTool.java b/core/src/mindustry/editor/EditorTool.java
index 7fc153cc83..ba931a54cd 100644
--- a/core/src/mindustry/editor/EditorTool.java
+++ b/core/src/mindustry/editor/EditorTool.java
@@ -118,7 +118,7 @@ public enum EditorTool{
if(editor.drawBlock.isOverlay()){
Block dest = tile.overlay();
if(dest == editor.drawBlock) return;
- tester = t -> t.overlay() == dest;
+ tester = t -> t.overlay() == dest && !t.floor().isLiquid;
setter = t -> t.setOverlay(editor.drawBlock);
}else if(editor.drawBlock.isFloor()){
Block dest = tile.floor();
diff --git a/core/src/mindustry/entities/EntityGroup.java b/core/src/mindustry/entities/EntityGroup.java
index 8c0ac76442..24c3f0e4f0 100644
--- a/core/src/mindustry/entities/EntityGroup.java
+++ b/core/src/mindustry/entities/EntityGroup.java
@@ -7,11 +7,13 @@ import arc.graphics.*;
import arc.math.geom.*;
import mindustry.entities.traits.*;
+import java.util.*;
+
import static mindustry.Vars.collisions;
/** Represents a group of a certain type of entity.*/
@SuppressWarnings("unchecked")
-public class EntityGroup{
+public class EntityGroup implements Iterable{
private final boolean useTree;
private final int id;
private final Class type;
@@ -253,8 +255,13 @@ public class EntityGroup{
return null;
}
- /** Returns the logic-only array for iteration. */
+ /** Returns the array for iteration. */
public Array all(){
return entityArray;
}
+
+ @Override
+ public Iterator iterator(){
+ return entityArray.iterator();
+ }
}
diff --git a/core/src/mindustry/entities/Predict.java b/core/src/mindustry/entities/Predict.java
index 49910b2e81..c541771829 100644
--- a/core/src/mindustry/entities/Predict.java
+++ b/core/src/mindustry/entities/Predict.java
@@ -55,7 +55,7 @@ public class Predict{
* See {@link #intercept(float, float, float, float, float, float, float)}.
*/
public static Vec2 intercept(TargetTrait src, TargetTrait dst, float v){
- return intercept(src.getX(), src.getY(), dst.getX(), dst.getY(), dst.getTargetVelocityX() - src.getTargetVelocityX()/2f, dst.getTargetVelocityY() - src.getTargetVelocityY()/2f, v);
+ return intercept(src.getX(), src.getY(), dst.getX(), dst.getY(), dst.getTargetVelocityX() - src.getTargetVelocityX()/(2f*Time.delta()), dst.getTargetVelocityY() - src.getTargetVelocityY()/(2f*Time.delta()), v);
}
private static Vec2 quad(float a, float b, float c){
diff --git a/core/src/mindustry/entities/Units.java b/core/src/mindustry/entities/Units.java
index fac56dcc0e..67fe01dc9e 100644
--- a/core/src/mindustry/entities/Units.java
+++ b/core/src/mindustry/entities/Units.java
@@ -83,13 +83,7 @@ public class Units{
public static TileEntity findEnemyTile(Team team, float x, float y, float range, Boolf pred){
if(team == Team.derelict) return null;
- for(Team enemy : team.enemies()){
- TileEntity entity = indexer.findTile(enemy, x, y, range, pred, true);
- if(entity != null){
- return entity;
- }
- }
- return null;
+ return indexer.findEnemyTile(team, x, y, range, pred);
}
/** Returns the closest target enemy. First, units are checked, then tile entities. */
diff --git a/core/src/mindustry/entities/Weapons.java b/core/src/mindustry/entities/Weapons.java
new file mode 100644
index 0000000000..7e38c0eb49
--- /dev/null
+++ b/core/src/mindustry/entities/Weapons.java
@@ -0,0 +1,4 @@
+package mindustry.entities;
+
+public class Weapons{
+}
diff --git a/core/src/mindustry/entities/effect/ItemTransfer.java b/core/src/mindustry/entities/effect/ItemTransfer.java
index ea8366c812..2018d15a69 100644
--- a/core/src/mindustry/entities/effect/ItemTransfer.java
+++ b/core/src/mindustry/entities/effect/ItemTransfer.java
@@ -44,7 +44,7 @@ public class ItemTransfer extends TimedEntity implements DrawTrait{
create(item, x, y, to, () -> to.addItem(item));
}
- @Remote(called = Loc.server)
+ @Remote(called = Loc.server, unreliable = true)
public static void transferItemTo(Item item, int amount, float x, float y, Tile tile){
if(tile == null || tile.entity == null || tile.entity.items == null) return;
for(int i = 0; i < Mathf.clamp(amount / 3, 1, 8); i++){
diff --git a/core/src/mindustry/entities/traits/MinerTrait.java b/core/src/mindustry/entities/traits/MinerTrait.java
index 4881d3720a..5b3d51c21d 100644
--- a/core/src/mindustry/entities/traits/MinerTrait.java
+++ b/core/src/mindustry/entities/traits/MinerTrait.java
@@ -7,6 +7,7 @@ import arc.math.*;
import arc.util.Time;
import mindustry.content.*;
import mindustry.entities.Effects;
+import mindustry.entities.effect.*;
import mindustry.entities.type.*;
import mindustry.gen.Call;
import mindustry.graphics.*;
@@ -38,11 +39,26 @@ public interface MinerTrait extends Entity{
/** Returns whether or not this builder can mine a specific item type. */
boolean canMine(Item item);
+ /** @return whether to offload mined items immediately at the core. if false, items are collected and dropped in a burst. */
+ default boolean offloadImmediately(){
+ return false;
+ }
+
default void updateMining(){
Unit unit = (Unit)this;
Tile tile = getMineTile();
TileEntity core = unit.getClosestCore();
+ if(core != null && tile != null && tile.drop() != null && !unit.acceptsItem(tile.drop()) && unit.dst(core) < mineTransferRange){
+ int accepted = core.tile.block().acceptStack(unit.item().item, unit.item().amount, core.tile, unit);
+ if(accepted > 0){
+ Call.transferItemTo(unit.item().item, accepted,
+ tile.worldx() + Mathf.range(tilesize / 2f),
+ tile.worldy() + Mathf.range(tilesize / 2f), core.tile);
+ unit.clearItem();
+ }
+ }
+
if(tile == null || core == null || tile.block() != Blocks.air || dst(tile.worldx(), tile.worldy()) > getMiningRange()
|| tile.drop() == null || !unit.acceptsItem(tile.drop()) || !canMine(tile.drop())){
setMineTile(null);
@@ -52,12 +68,13 @@ public interface MinerTrait extends Entity{
if(Mathf.chance(Time.delta() * (0.06 - item.hardness * 0.01) * getMinePower())){
- if(unit.dst(core) < mineTransferRange && core.tile.block().acceptStack(item, 1, core.tile, unit) == 1){
+ if(unit.dst(core) < mineTransferRange && core.tile.block().acceptStack(item, 1, core.tile, unit) == 1 && offloadImmediately()){
Call.transferItemTo(item, 1,
tile.worldx() + Mathf.range(tilesize / 2f),
tile.worldy() + Mathf.range(tilesize / 2f), core.tile);
}else if(unit.acceptsItem(item)){
- Call.transferItemToUnit(item,
+ //this is clientside, since items are synced anyway
+ ItemTransfer.transferItemToUnit(item,
tile.worldx() + Mathf.range(tilesize / 2f),
tile.worldy() + Mathf.range(tilesize / 2f),
unit);
diff --git a/core/src/mindustry/entities/traits/ShooterTrait.java b/core/src/mindustry/entities/traits/ShooterTrait.java
index bb20ccc83c..f7d499c751 100644
--- a/core/src/mindustry/entities/traits/ShooterTrait.java
+++ b/core/src/mindustry/entities/traits/ShooterTrait.java
@@ -1,13 +1,7 @@
package mindustry.entities.traits;
-import arc.util.Interval;
-import mindustry.type.Weapon;
+import mindustry.entities.*;
public interface ShooterTrait extends VelocityTrait, TeamTrait{
-
- Interval getTimer();
-
- int getShootTimer(boolean left);
-
- Weapon getWeapon();
+ Weapons getWeapons();
}
diff --git a/core/src/mindustry/entities/traits/VelocityTrait.java b/core/src/mindustry/entities/traits/VelocityTrait.java
index 6eb42254d7..b8e65aba56 100644
--- a/core/src/mindustry/entities/traits/VelocityTrait.java
+++ b/core/src/mindustry/entities/traits/VelocityTrait.java
@@ -13,7 +13,7 @@ public interface VelocityTrait extends MoveTrait{
}
default float maxVelocity(){
- return Float.MAX_VALUE;
+ return 50f;
}
default float mass(){
diff --git a/core/src/mindustry/entities/type/BaseUnit.java b/core/src/mindustry/entities/type/BaseUnit.java
index 6062662e9b..1303828fac 100644
--- a/core/src/mindustry/entities/type/BaseUnit.java
+++ b/core/src/mindustry/entities/type/BaseUnit.java
@@ -36,8 +36,6 @@ public abstract class BaseUnit extends Unit implements ShooterTrait{
protected static final int timerTarget = timerIndex++;
protected static final int timerTarget2 = timerIndex++;
- protected static final int timerShootLeft = timerIndex++;
- protected static final int timerShootRight = timerIndex++;
protected boolean loaded;
protected UnitType type;
@@ -76,11 +74,6 @@ public abstract class BaseUnit extends Unit implements ShooterTrait{
Core.app.post(unit::remove);
}
- @Override
- public float drag(){
- return type.drag;
- }
-
@Override
public TypeID getTypeID(){
return type.typeID;
@@ -210,41 +203,11 @@ public abstract class BaseUnit extends Unit implements ShooterTrait{
return status.getDamageMultiplier() * Vars.state.rules.unitDamageMultiplier;
}
- @Override
- public boolean isImmune(StatusEffect effect){
- return type.immunities.contains(effect);
- }
-
- @Override
- public boolean isValid(){
- return super.isValid() && isAdded();
- }
-
- @Override
- public Interval getTimer(){
- return timer;
- }
-
- @Override
- public int getShootTimer(boolean left){
- return left ? timerShootLeft : timerShootRight;
- }
-
- @Override
- public Weapon getWeapon(){
- return type.weapon;
- }
-
@Override
public TextureRegion getIconRegion(){
return type.icon(Cicon.full);
}
- @Override
- public int getItemCapacity(){
- return type.itemCapacity;
- }
-
@Override
public void interpolate(){
super.interpolate();
@@ -259,16 +222,6 @@ public abstract class BaseUnit extends Unit implements ShooterTrait{
return type.health * Vars.state.rules.unitHealthMultiplier;
}
- @Override
- public float mass(){
- return type.mass;
- }
-
- @Override
- public boolean isFlying(){
- return type.flying;
- }
-
@Override
public void update(){
if(isDead()){
@@ -312,11 +265,6 @@ public abstract class BaseUnit extends Unit implements ShooterTrait{
}
- @Override
- public float maxVelocity(){
- return type.maxVelocity;
- }
-
@Override
public void removed(){
super.removed();
@@ -351,16 +299,6 @@ public abstract class BaseUnit extends Unit implements ShooterTrait{
}
}
- @Override
- public void hitbox(Rect rect){
- rect.setSize(type.hitsize).setCenter(x, y);
- }
-
- @Override
- public void hitboxTile(Rect rect){
- rect.setSize(type.hitsizeTile).setCenter(x, y);
- }
-
@Override
public EntityGroup targetGroup(){
return unitGroup;
diff --git a/core/src/mindustry/entities/type/Player.java b/core/src/mindustry/entities/type/Player.java
index 7fced3eb55..94a0df90ce 100644
--- a/core/src/mindustry/entities/type/Player.java
+++ b/core/src/mindustry/entities/type/Player.java
@@ -48,8 +48,7 @@ public class Player extends Unit implements BuilderMinerTrait, ShooterTrait{
public float baseRotation;
public float pointerX, pointerY;
public String name = "noname";
- public @Nullable
- String uuid, usid;
+ public @Nullable String uuid, usid;
public boolean isAdmin, isTransferring, isShooting, isBoosting, isMobile, isTyping, isBuilding = true;
public boolean buildWasAutoPaused = false;
public float boostHeat, shootHeat, destructTime;
@@ -92,16 +91,6 @@ public class Player extends Unit implements BuilderMinerTrait, ShooterTrait{
return status.getDamageMultiplier() * state.rules.playerDamageMultiplier;
}
- @Override
- public void hitbox(Rect rect){
- rect.setSize(mech.hitsize).setCenter(x, y);
- }
-
- @Override
- public void hitboxTile(Rect rect){
- rect.setSize(mech.hitsize * 2f / 3f).setCenter(x, y);
- }
-
@Override
public void onRespawn(Tile tile){
velocity.setZero();
@@ -119,6 +108,11 @@ public class Player extends Unit implements BuilderMinerTrait, ShooterTrait{
heal();
}
+ @Override
+ public boolean offloadImmediately(){
+ return true;
+ }
+
@Override
public TypeID getTypeID(){
return TypeIDs.player;
@@ -133,29 +127,9 @@ public class Player extends Unit implements BuilderMinerTrait, ShooterTrait{
}
}
- @Override
- public float drag(){
- return mech.drag;
- }
-
- @Override
- public Interval getTimer(){
- return timer;
- }
-
- @Override
- public int getShootTimer(boolean left){
- return left ? timerShootLeft : timerShootRight;
- }
-
- @Override
- public Weapon getWeapon(){
- return mech.weapon;
- }
-
@Override
public float getMinePower(){
- return mech.mineSpeed;
+ return mech.minePower;
}
@Override
@@ -163,11 +137,6 @@ public class Player extends Unit implements BuilderMinerTrait, ShooterTrait{
return mech.icon(Cicon.full);
}
- @Override
- public int getItemCapacity(){
- return mech.itemCapacity;
- }
-
@Override
public void interpolate(){
super.interpolate();
@@ -244,11 +213,6 @@ public class Player extends Unit implements BuilderMinerTrait, ShooterTrait{
this.y = y;
}
- @Override
- public float maxVelocity(){
- return mech.maxSpeed;
- }
-
@Override
public Queue buildQueue(){
return placeQueue;
@@ -349,13 +313,13 @@ public class Player extends Unit implements BuilderMinerTrait, ShooterTrait{
Draw.reset();
}
+ public void drawBackItems(){
+ drawBackItems(itemtime, isLocal);
+ }
+
@Override
public void drawStats(){
- Draw.color(Color.black, team.color, healthf() + Mathf.absin(Time.time(), healthf() * 5f, 1f - healthf()));
- Draw.rect(getPowerCellRegion(), x + Angles.trnsx(rotation, mech.cellTrnsY, 0f), y + Angles.trnsy(rotation, mech.cellTrnsY, 0f), rotation - 90);
- Draw.reset();
- drawBackItems(itemtime, isLocal);
- drawLight();
+ mech.drawStats(this);
}
@Override
@@ -523,7 +487,7 @@ public class Player extends Unit implements BuilderMinerTrait, ShooterTrait{
boostHeat = Mathf.lerpDelta(boostHeat, (tile != null && tile.solid()) || (isBoosting && ((!movement.isZero() && moved) || !isLocal)) ? 1f : 0f, 0.08f);
shootHeat = Mathf.lerpDelta(shootHeat, isShooting() ? 1f : 0f, 0.06f);
- mech.updateAlt(this); //updated regardless
+ mech.update(this); //updated regardless
if(boostHeat > liftoffBoost + 0.1f){
achievedFlight = true;
@@ -572,6 +536,7 @@ public class Player extends Unit implements BuilderMinerTrait, ShooterTrait{
protected void updateKeyboard(){
Tile tile = world.tileWorld(x, y);
+ boolean canMove = !Core.scene.hasKeyboard() || ui.minimapfrag.shown();
isBoosting = Core.input.keyDown(Binding.dash) && !mech.flying;
@@ -598,8 +563,8 @@ public class Player extends Unit implements BuilderMinerTrait, ShooterTrait{
}
if(Core.input.keyDown(Binding.mouse_move)){
- movement.x += Mathf.clamp((Core.input.mouseX() - Core.graphics.getWidth() / 2) * 0.005f, -1, 1) * speed;
- movement.y += Mathf.clamp((Core.input.mouseY() - Core.graphics.getHeight() / 2) * 0.005f, -1, 1) * speed;
+ movement.x += Mathf.clamp((Core.input.mouseX() - Core.graphics.getWidth() / 2f) * 0.005f, -1, 1) * speed;
+ movement.y += Mathf.clamp((Core.input.mouseY() - Core.graphics.getHeight() / 2f) * 0.005f, -1, 1) * speed;
}
Vec2 vec = Core.input.mouseWorld(control.input.getMouseX(), control.input.getMouseY());
@@ -609,7 +574,7 @@ public class Player extends Unit implements BuilderMinerTrait, ShooterTrait{
movement.limit(speed).scl(Time.delta());
- if(!Core.scene.hasKeyboard()){
+ if(canMove){
velocity.add(movement.x, movement.y);
}else{
isShooting = false;
@@ -618,7 +583,7 @@ public class Player extends Unit implements BuilderMinerTrait, ShooterTrait{
updateVelocityStatus();
moved = dst(prex, prey) > 0.001f;
- if(!Core.scene.hasKeyboard()){
+ if(canMove){
float baseLerp = mech.getRotationAlpha(this);
if(!isShooting() || !mech.turnCursor){
if(!movement.isZero()){
@@ -635,7 +600,7 @@ public class Player extends Unit implements BuilderMinerTrait, ShooterTrait{
if(!state.isEditor() && isShooting() && mech.canShoot(this)){
if(!mech.turnCursor){
//shoot forward ignoring cursor
- mech.weapon.update(this, x + Angles.trnsx(rotation, 1f), y + Angles.trnsy(rotation, 1f));
+ mech.weapon.update(this, x + Angles.trnsx(rotation, mech.weapon.targetDistance), y + Angles.trnsy(rotation, mech.weapon.targetDistance));
}else{
mech.weapon.update(this, pointerX, pointerY);
}
@@ -735,8 +700,7 @@ public class Player extends Unit implements BuilderMinerTrait, ShooterTrait{
setMineTile(null);
}
}
- }else if(target.isValid() || (target instanceof TileEntity && ((TileEntity)target).damaged() && target.getTeam() == team &&
- mech.canHeal && dst(target) < getWeapon().bullet.range())){
+ }else if(target.isValid() || (target instanceof TileEntity && ((TileEntity)target).damaged() && target.getTeam() == team && mech.canHeal && dst(target) < getWeapon().bullet.range())){
//rotate toward and shoot the target
if(mech.turnCursor){
rotation = Mathf.slerpDelta(rotation, angleTo(target), 0.2f);
diff --git a/core/src/mindustry/entities/type/TileEntity.java b/core/src/mindustry/entities/type/TileEntity.java
index 3c01d67ef2..c9548f8e96 100644
--- a/core/src/mindustry/entities/type/TileEntity.java
+++ b/core/src/mindustry/entities/type/TileEntity.java
@@ -1,8 +1,13 @@
package mindustry.entities.type;
-import arc.*;
-import arc.math.geom.*;
-import arc.struct.*;
+import arc.math.*;
+import mindustry.annotations.Annotations.*;
+import arc.Events;
+import arc.struct.Array;
+import arc.struct.ObjectSet;
+import arc.math.geom.Point2;
+import arc.math.geom.Vec2;
+import arc.util.*;
import arc.util.ArcAnnotate.*;
import arc.util.*;
import mindustry.annotations.Annotations.*;
@@ -167,9 +172,16 @@ public class TileEntity extends BaseEntity implements TargetTrait, HealthTrait,
Call.onTileDestroyed(tile);
}
+ @Override
public void damage(float damage){
if(dead) return;
+ if(Mathf.zero(state.rules.blockHealthMultiplier)){
+ damage = health + 1;
+ }else{
+ damage /= state.rules.blockHealthMultiplier;
+ }
+
float preHealth = health;
Call.onTileDamage(tile, health - block.handleDamage(tile, damage));
diff --git a/core/src/mindustry/entities/type/Unit.java b/core/src/mindustry/entities/type/Unit.java
index ab02f24c83..5373306904 100644
--- a/core/src/mindustry/entities/type/Unit.java
+++ b/core/src/mindustry/entities/type/Unit.java
@@ -134,6 +134,22 @@ public abstract class Unit extends DestructibleEntity implements SaveTrait, Targ
return !isDead() && isAdded();
}
+ @Override
+ public void hitbox(Rect rect){
+ rect.setSize(def().hitsize).setCenter(x, y);
+ }
+
+ @Override
+ public void hitboxTile(Rect rect){
+ rect.setSize(def().hitsizeTile).setCenter(x, y);
+ }
+
+
+ @Override
+ public float drag(){
+ return def().drag;
+ }
+
@Override
public void writeSave(DataOutput stream) throws IOException{
writeSave(stream, false);
@@ -164,6 +180,8 @@ public abstract class Unit extends DestructibleEntity implements SaveTrait, Targ
this.rotation = rotation;
}
+ public abstract UnitDef def();
+
public void writeSave(DataOutput stream, boolean net) throws IOException{
if(item.item == null) item.item = Items.copper;
@@ -191,7 +209,7 @@ public abstract class Unit extends DestructibleEntity implements SaveTrait, Targ
}
public boolean isImmune(StatusEffect effect){
- return false;
+ return def().immunities.contains(effect);
}
public boolean isOutOfBounds(){
@@ -226,7 +244,7 @@ public abstract class Unit extends DestructibleEntity implements SaveTrait, Targ
float radScl = 1.5f;
for(Unit en : arr){
- if(en.isFlying() != isFlying() || (en instanceof Player && en.getTeam() != getTeam())) continue;
+ if(en.isFlying() != isFlying() || (en instanceof Player && en.getTeam() != getTeam()) || (this instanceof Player && en.isFlying())) continue;
float dst = dst(en);
float scl = Mathf.clamp(1f - dst / (getSize()/(radScl*2f) + en.getSize()/(radScl*2f)));
moveVector.add(Tmp.v1.set((x - en.x) * scl, (y - en.y) * scl).limit(0.4f));
@@ -252,8 +270,9 @@ public abstract class Unit extends DestructibleEntity implements SaveTrait, Targ
Tile tile = world.tileWorld(x, y);
status.update(this);
+ item.amount = Mathf.clamp(this.item.amount, 0, getItemCapacity());
- velocity.limit(maxVelocity()).scl(1f + (status.getSpeedMultiplier() - 1f) * Time.delta());
+ //velocity.limit(maxVelocity()).scl(1f + (status.getSpeedMultiplier() - 1f) * Time.delta());
if(x < -finalWorldBounds || y < -finalWorldBounds || x >= world.width() * tilesize + finalWorldBounds || y >= world.height() * tilesize + finalWorldBounds){
kill();
@@ -277,7 +296,6 @@ public abstract class Unit extends DestructibleEntity implements SaveTrait, Targ
if(x > world.unitWidth()) velocity.x -= (x - world.unitWidth())/warpDst;
if(y > world.unitHeight()) velocity.y -= (y - world.unitHeight())/warpDst;
-
if(isFlying()){
drownTime = 0f;
move(velocity.x * Time.delta(), velocity.y * Time.delta());
@@ -327,7 +345,7 @@ public abstract class Unit extends DestructibleEntity implements SaveTrait, Targ
if(Math.abs(py - y) <= 0.0001f) velocity.y = 0f;
}
- velocity.scl(Mathf.clamp(1f - drag() * (isFlying() ? 1f : floor.dragMultiplier) * Time.delta()));
+ //velocity.scl(Mathf.clamp(1f - drag() * (isFlying() ? 1f : floor.dragMultiplier) * Time.delta()));
}
public boolean acceptsItem(Item item){
@@ -341,6 +359,7 @@ public abstract class Unit extends DestructibleEntity implements SaveTrait, Targ
public void addItem(Item item, int amount){
this.item.amount = this.item.item == item ? this.item.amount + amount : amount;
this.item.item = item;
+ this.item.amount = Mathf.clamp(this.item.amount, 0, getItemCapacity());
}
public void clearItem(){
@@ -391,7 +410,9 @@ public abstract class Unit extends DestructibleEntity implements SaveTrait, Targ
}
public void drawLight(){
- renderer.lights.add(x, y, 50f, Pal.powerLight, 0.6f);
+ if(def().lightRadius > 0){
+ renderer.lights.add(x, y, def().lightRadius, def().lightColor, 0.6f);
+ }
}
public void drawBackItems(float itemtime, boolean number){
@@ -448,11 +469,16 @@ public abstract class Unit extends DestructibleEntity implements SaveTrait, Targ
public abstract TextureRegion getIconRegion();
- public abstract Weapon getWeapon();
+ public final int getItemCapacity(){
+ return def().itemCapacity;
+ }
- public abstract int getItemCapacity();
+ @Override
+ public float mass(){
+ return def().mass;
+ }
- public abstract float mass();
-
- public abstract boolean isFlying();
+ public boolean isFlying(){
+ return def().flying;
+ }
}
diff --git a/core/src/mindustry/entities/type/base/BaseDrone.java b/core/src/mindustry/entities/type/base/BaseDrone.java
index 02a8fd9d32..9eaa586cca 100644
--- a/core/src/mindustry/entities/type/base/BaseDrone.java
+++ b/core/src/mindustry/entities/type/base/BaseDrone.java
@@ -32,6 +32,7 @@ public abstract class BaseDrone extends FlyingUnit{
}
};
+ @Override
public boolean countsAsEnemy(){
return false;
}
diff --git a/core/src/mindustry/game/EventType.java b/core/src/mindustry/game/EventType.java
index dfa1469fc1..365e8f2b7c 100644
--- a/core/src/mindustry/game/EventType.java
+++ b/core/src/mindustry/game/EventType.java
@@ -28,7 +28,9 @@ public class EventType{
exclusionDeath,
suicideBomb,
openWiki,
- teamCoreDamage
+ teamCoreDamage,
+ socketConfigChanged,
+ update
}
public static class WinEvent{}
@@ -62,13 +64,10 @@ public class EventType{
public static class PlayerChatEvent{
public final Player player;
public final String message;
- /** The original, unfiltered message. */
- public final String originalMessage;
- public PlayerChatEvent(Player player, String message, String originalMessage){
+ public PlayerChatEvent(Player player, String message){
this.player = player;
this.message = message;
- this.originalMessage = originalMessage;
}
}
diff --git a/core/src/mindustry/game/Rules.java b/core/src/mindustry/game/Rules.java
index 93ceaf5cfe..0515d2ca60 100644
--- a/core/src/mindustry/game/Rules.java
+++ b/core/src/mindustry/game/Rules.java
@@ -34,6 +34,8 @@ public class Rules{
public float unitHealthMultiplier = 1f;
/** How much health players start with. */
public float playerHealthMultiplier = 1f;
+ /** How much health blocks start with. */
+ public float blockHealthMultiplier = 1f;
/** How much damage player mechs deal. */
public float playerDamageMultiplier = 1f;
/** How much damage any other units deal. */
@@ -70,6 +72,8 @@ public class Rules{
public boolean editor = false;
/** Whether the tutorial is enabled. False by default. */
public boolean tutorial = false;
+ /** Whether a gameover can happen at all. Set this to false to implement custom gameover conditions. */
+ public boolean canGameOver = true;
/** Starting items put in cores */
public Array loadout = Array.with(ItemStack.with(Items.copper, 100));
/** Blocks that cannot be placed. */
diff --git a/core/src/mindustry/game/Schematics.java b/core/src/mindustry/game/Schematics.java
index b30658692e..7a96ed672b 100644
--- a/core/src/mindustry/game/Schematics.java
+++ b/core/src/mindustry/game/Schematics.java
@@ -142,6 +142,7 @@ public class Schematics implements Loadable{
ui.showException(e);
}
}
+ all.sort();
}
public void savePreview(Schematic schematic, Fi file){
@@ -249,6 +250,7 @@ public class Schematics implements Loadable{
public void placeLoadout(Schematic schem, int x, int y){
Stile coreTile = schem.tiles.find(s -> s.block instanceof CoreBlock);
+ if(coreTile == null) throw new IllegalArgumentException("Schematic has no core tile. Exiting.");
int ox = x - coreTile.x, oy = y - coreTile.y;
schem.tiles.each(st -> {
Tile tile = world.tile(st.x + ox, st.y + oy);
@@ -279,6 +281,7 @@ public class Schematics implements Loadable{
ui.showException(e);
Log.err(e);
}
+ all.sort();
}
public void remove(Schematic s){
@@ -291,6 +294,7 @@ public class Schematics implements Loadable{
previews.get(s).dispose();
previews.remove(s);
}
+ all.sort();
}
/** Creates a schematic from a world selection. */
@@ -339,7 +343,8 @@ public class Schematics implements Loadable{
for(int cy = oy; cy <= oy2; cy++){
Tile tile = world.ltile(cx, cy);
- if(tile != null && tile.entity != null && !counted.contains(tile.pos()) && !(tile.block() instanceof BuildBlock) && tile.entity.block.isVisible()){
+ if(tile != null && tile.entity != null && !counted.contains(tile.pos()) && !(tile.block() instanceof BuildBlock)
+ && (tile.entity.block.isVisible() || (tile.entity.block instanceof CoreBlock && Core.settings.getBool("coreselect")))){
int config = tile.entity.config();
if(tile.block().posConfig){
config = Pos.get(Pos.x(config) + offsetX, Pos.y(config) + offsetY);
@@ -368,8 +373,12 @@ public class Schematics implements Loadable{
//region IO methods
/** Loads a schematic from base64. May throw an exception. */
- public static Schematic readBase64(String schematic) throws IOException{
- return read(new ByteArrayInputStream(Base64Coder.decode(schematic)));
+ public static Schematic readBase64(String schematic){
+ try{
+ return read(new ByteArrayInputStream(Base64Coder.decode(schematic)));
+ }catch(IOException e){
+ throw new RuntimeException(e);
+ }
}
public static Schematic read(Fi file) throws IOException{
diff --git a/core/src/mindustry/game/Team.java b/core/src/mindustry/game/Team.java
index a6e9d1e20a..e6c05eb6e0 100644
--- a/core/src/mindustry/game/Team.java
+++ b/core/src/mindustry/game/Team.java
@@ -30,7 +30,7 @@ public class Team implements Comparable{
blue = new Team(5, "blue", Color.royal.cpy());
static{
- Mathf.random.setSeed(7);
+ Mathf.random.setSeed(8);
//create the whole 256 placeholder teams
for(int i = 6; i < all.length; i++){
new Team(i, "team#" + i, Color.HSVtoRGB(360f * Mathf.random(), 100f * Mathf.random(0.6f, 1f), 100f * Mathf.random(0.8f, 1f), 1f));
diff --git a/core/src/mindustry/game/Teams.java b/core/src/mindustry/game/Teams.java
index dc44d47240..e4fa1f1ef3 100644
--- a/core/src/mindustry/game/Teams.java
+++ b/core/src/mindustry/game/Teams.java
@@ -80,7 +80,7 @@ public class Teams{
/** Returns whether a team is active, e.g. whether it has any cores remaining. */
public boolean isActive(Team team){
//the enemy wave team is always active
- return team == state.rules.waveTeam || get(team).cores.size > 0;
+ return get(team).active();
}
/** Returns whether {@param other} is an enemy of {@param #team}. */
@@ -150,7 +150,7 @@ public class Teams{
}
public boolean active(){
- return team == state.rules.waveTeam || cores.size > 0;
+ return (team == state.rules.waveTeam && state.rules.waves) || cores.size > 0;
}
public boolean hasCore(){
diff --git a/core/src/mindustry/graphics/Bloom.java b/core/src/mindustry/graphics/Bloom.java
index c3b4fd9bae..1b7b8f89f9 100644
--- a/core/src/mindustry/graphics/Bloom.java
+++ b/core/src/mindustry/graphics/Bloom.java
@@ -14,7 +14,6 @@ import arc.graphics.gl.Shader;
* @author kalle_h
*/
public class Bloom{
-
/**
* To use implement bloom more like a glow. Texture alpha channel can be
* used as mask which part are glowing and which are not. see more info at:
@@ -61,10 +60,8 @@ public class Bloom{
*/
public void resume(){
bloomShader.begin();
- {
- bloomShader.setUniformi("u_texture0", 0);
- bloomShader.setUniformi("u_texture1", 1);
- }
+ bloomShader.setUniformi("u_texture0", 0);
+ bloomShader.setUniformi("u_texture1", 1);
bloomShader.end();
setSize(w, h);
@@ -83,13 +80,11 @@ public class Bloom{
* blending = false 32bits = true
*/
public Bloom(){
- initialize(Core.graphics.getWidth() / 4, Core.graphics.getHeight() / 4,
- null, false, false, true);
+ initialize(Core.graphics.getWidth() / 4, Core.graphics.getHeight() / 4, null, false, false, true);
}
public Bloom(boolean useBlending){
- initialize(Core.graphics.getWidth() / 4, Core.graphics.getHeight() / 4,
- null, false, useBlending, true);
+ initialize(Core.graphics.getWidth() / 4, Core.graphics.getHeight() / 4, null, false, useBlending, true);
}
/**
@@ -105,8 +100,7 @@ public class Bloom{
* and only do blooming on certain objects param use32bitFBO does
* fbo use higher precision than 16bits.
*/
- public Bloom(int FBO_W, int FBO_H, boolean hasDepth, boolean useBlending,
- boolean use32bitFBO){
+ public Bloom(int FBO_W, int FBO_H, boolean hasDepth, boolean useBlending, boolean use32bitFBO){
initialize(FBO_W, FBO_H, null, hasDepth, useBlending, use32bitFBO);
}
@@ -129,18 +123,14 @@ public class Bloom{
* and only do blooming on certain objects param use32bitFBO does
* fbo use higher precision than 16bits.
*/
- public Bloom(int FBO_W, int FBO_H, FrameBuffer sceneIsCapturedHere,
- boolean useBlending, boolean use32bitFBO){
-
- initialize(FBO_W, FBO_H, sceneIsCapturedHere, false, useBlending,
- use32bitFBO);
+ public Bloom(int FBO_W, int FBO_H, FrameBuffer sceneIsCapturedHere, boolean useBlending, boolean use32bitFBO){
+ initialize(FBO_W, FBO_H, sceneIsCapturedHere, false, useBlending, use32bitFBO);
disposeFBO = false;
}
- private void initialize(int FBO_W, int FBO_H, FrameBuffer fbo,
- boolean hasDepth, boolean useBlending, boolean use32bitFBO){
+ private void initialize(int FBO_W, int FBO_H, FrameBuffer fbo, boolean hasDepth, boolean useBlending, boolean use32bitFBO){
blending = useBlending;
- Format format = null;
+ Format format;
if(use32bitFBO){
if(useBlending){
@@ -157,8 +147,7 @@ public class Bloom{
}
}
if(fbo == null){
- frameBuffer = new FrameBuffer(format, Core.graphics.getWidth(),
- Core.graphics.getHeight(), hasDepth);
+ frameBuffer = new FrameBuffer(format, Core.graphics.getWidth(), Core.graphics.getHeight(), hasDepth);
}else{
frameBuffer = fbo;
}
@@ -190,10 +179,8 @@ public class Bloom{
setThreshold(0.5f);
bloomShader.begin();
- {
- bloomShader.setUniformi("u_texture0", 0);
- bloomShader.setUniformi("u_texture1", 1);
- }
+ bloomShader.setUniformi("u_texture0", 0);
+ bloomShader.setUniformi("u_texture1", 1);
bloomShader.end();
}
@@ -219,8 +206,8 @@ public class Bloom{
if(!capturing){
capturing = true;
frameBuffer.begin();
- Core.gl.glClearColor(r, g, b, a);
- Core.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
+ Gl.clearColor(r, g, b, a);
+ Gl.clear(Gl.colorBufferBit);
}
}
@@ -252,23 +239,22 @@ public class Bloom{
frameBuffer.end();
}
- Core.gl.glDisable(GL20.GL_BLEND);
- Core.gl.glDisable(GL20.GL_DEPTH_TEST);
- Core.gl.glDepthMask(false);
+ Gl.disable(Gl.blend);
+ Gl.disable(Gl.depthTest);
+ Gl.depthMask(false);
gaussianBlur();
if(blending){
- Core.gl.glEnable(GL20.GL_BLEND);
- Core.gl.glBlendFunc(GL20.GL_SRC_ALPHA, GL20.GL_ONE_MINUS_SRC_ALPHA);
+ Gl.enable(Gl.blend);
+ Gl.blendFunc(Gl.srcAlpha, Gl.oneMinusSrcAlpha);
}
pingPongTex1.bind(1);
original.bind(0);
+
bloomShader.begin();
- {
- fullScreenQuad.render(bloomShader, GL20.GL_TRIANGLE_FAN);
- }
+ fullScreenQuad.render(bloomShader, Gl.triangleFan);
bloomShader.end();
}
@@ -279,15 +265,9 @@ public class Bloom{
original.bind(0);
pingPongBuffer1.begin();
- {
- tresholdShader.begin();
- {
- // tresholdShader.setUniformi("u_texture0", 0);
- fullScreenQuad.render(tresholdShader, GL20.GL_TRIANGLE_FAN, 0,
- 4);
- }
- tresholdShader.end();
- }
+ tresholdShader.begin();
+ fullScreenQuad.render(tresholdShader, Gl.triangleFan, 0, 4);
+ tresholdShader.end();
pingPongBuffer1.end();
for(int i = 0; i < blurPasses; i++){
@@ -296,30 +276,19 @@ public class Bloom{
// horizontal
pingPongBuffer2.begin();
- {
- blurShader.begin();
- {
- blurShader.setUniformf("dir", 1f, 0f);
- fullScreenQuad.render(blurShader, GL20.GL_TRIANGLE_FAN, 0,
- 4);
- }
- blurShader.end();
- }
+ blurShader.begin();
+ blurShader.setUniformf("dir", 1f, 0f);
+ fullScreenQuad.render(blurShader, Gl.triangleFan, 0, 4);
+ blurShader.end();
pingPongBuffer2.end();
pingPongTex2.bind(0);
// vertical
pingPongBuffer1.begin();
- {
- blurShader.begin();
- {
- blurShader.setUniformf("dir", 0f, 1f);
-
- fullScreenQuad.render(blurShader, GL20.GL_TRIANGLE_FAN, 0,
- 4);
- }
- blurShader.end();
- }
+ blurShader.begin();
+ blurShader.setUniformf("dir", 0f, 1f);
+ fullScreenQuad.render(blurShader, Gl.triangleFan, 0, 4);
+ blurShader.end();
pingPongBuffer1.end();
}
}
@@ -334,9 +303,7 @@ public class Bloom{
public void setBloomIntesity(float intensity){
bloomIntensity = intensity;
bloomShader.begin();
- {
- bloomShader.setUniformf("BloomIntensity", intensity);
- }
+ bloomShader.setUniformf("BloomIntensity", intensity);
bloomShader.end();
}
@@ -350,9 +317,7 @@ public class Bloom{
public void setOriginalIntesity(float intensity){
originalIntensity = intensity;
bloomShader.begin();
- {
- bloomShader.setUniformf("OriginalIntensity", intensity);
- }
+ bloomShader.setUniformf("OriginalIntensity", intensity);
bloomShader.end();
}
@@ -364,10 +329,7 @@ public class Bloom{
public void setThreshold(float threshold){
this.threshold = threshold;
tresholdShader.begin();
- {
- tresholdShader.setUniformf("threshold", threshold,
- 1f / (1 - threshold));
- }
+ tresholdShader.setUniformf("threshold", threshold, 1f / (1 - threshold));
tresholdShader.end();
}
@@ -384,8 +346,7 @@ public class Bloom{
*/
public void dispose(){
try{
- if(disposeFBO)
- frameBuffer.dispose();
+ if(disposeFBO) frameBuffer.dispose();
fullScreenQuad.dispose();
@@ -395,16 +356,17 @@ public class Bloom{
blurShader.dispose();
bloomShader.dispose();
tresholdShader.dispose();
- }catch(Exception ignored){
+ }catch(Throwable ignored){
}
}
private static Mesh createFullScreenQuad(){
float[] verts = {-1, -1, 0, 0, 1, -1, 1, 0, 1, 1, 1, 1, -1, 1, 0, 1};
- Mesh tmpMesh = new Mesh(true, 4, 0, new VertexAttribute(
- Usage.Position, 2, "a_position"), new VertexAttribute(
- Usage.TextureCoordinates, 2, "a_texCoord0"));
+ Mesh tmpMesh = new Mesh(true, 4, 0,
+ new VertexAttribute(Usage.position, 2, "a_position"),
+ new VertexAttribute(Usage.textureCoordinates, 2, "a_texCoord0")
+ );
tmpMesh.setVertices(verts);
return tmpMesh;
diff --git a/core/src/mindustry/graphics/FloorRenderer.java b/core/src/mindustry/graphics/FloorRenderer.java
index ffea2022a0..6033b4ff03 100644
--- a/core/src/mindustry/graphics/FloorRenderer.java
+++ b/core/src/mindustry/graphics/FloorRenderer.java
@@ -1,22 +1,19 @@
package mindustry.graphics;
-import arc.Core;
-import arc.Events;
-import arc.struct.*;
-import arc.struct.IntSet.IntSetIterator;
-import arc.graphics.Camera;
-import arc.graphics.GL20;
+import arc.*;
+import arc.graphics.*;
import arc.graphics.g2d.*;
-import arc.math.Mathf;
+import arc.math.*;
+import arc.struct.*;
+import arc.struct.IntSet.*;
import arc.util.*;
-import mindustry.game.EventType.WorldLoadEvent;
-import mindustry.world.Tile;
-import mindustry.world.blocks.Floor;
+import mindustry.game.EventType.*;
+import mindustry.world.*;
+import mindustry.world.blocks.*;
-import java.util.Arrays;
+import java.util.*;
-import static mindustry.Vars.tilesize;
-import static mindustry.Vars.world;
+import static mindustry.Vars.*;
public class FloorRenderer implements Disposable{
private final static int chunksize = 64;
@@ -104,7 +101,7 @@ public class FloorRenderer implements Disposable{
cbatch.setProjection(Core.camera.projection());
cbatch.beginDraw();
- Core.gl.glEnable(GL20.GL_BLEND);
+ Gl.enable(Gl.blend);
}
public void endDraw(){
diff --git a/core/src/mindustry/graphics/IndexedRenderer.java b/core/src/mindustry/graphics/IndexedRenderer.java
index f396963b78..4e9ff4d45a 100644
--- a/core/src/mindustry/graphics/IndexedRenderer.java
+++ b/core/src/mindustry/graphics/IndexedRenderer.java
@@ -1,15 +1,11 @@
package mindustry.graphics;
-import arc.Core;
import arc.graphics.*;
-import arc.graphics.VertexAttributes.Usage;
-import arc.graphics.g2d.BatchShader;
-import arc.graphics.g2d.TextureRegion;
-import arc.graphics.gl.Shader;
-import arc.math.Mathf;
-import arc.math.Matrix3;
-import arc.util.Disposable;
-import arc.util.Strings;
+import arc.graphics.VertexAttributes.*;
+import arc.graphics.g2d.*;
+import arc.graphics.gl.*;
+import arc.math.*;
+import arc.util.*;
//TODO this class is a trainwreck, remove it
public class IndexedRenderer implements Disposable{
@@ -17,18 +13,18 @@ public class IndexedRenderer implements Disposable{
private Shader program = new Shader(
Strings.join("\n",
- "attribute vec4 " + Shader.POSITION_ATTRIBUTE + ";",
- "attribute vec4 " + Shader.COLOR_ATTRIBUTE + ";",
- "attribute vec2 " + Shader.TEXCOORD_ATTRIBUTE + "0;",
+ "attribute vec4 " + Shader.positionAttribute + ";",
+ "attribute vec4 " + Shader.colorAttribute + ";",
+ "attribute vec2 " + Shader.texcoordAttribute + "0;",
"uniform mat4 u_projTrans;",
"varying vec4 v_color;",
"varying vec2 v_texCoords;",
"",
"void main(){",
- " v_color = " + Shader.COLOR_ATTRIBUTE + ";",
+ " v_color = " + Shader.colorAttribute + ";",
" v_color.a = v_color.a * (255.0/254.0);",
- " v_texCoords = " + Shader.TEXCOORD_ATTRIBUTE + "0;",
- " gl_Position = u_projTrans * " + Shader.POSITION_ATTRIBUTE + ";",
+ " v_texCoords = " + Shader.texcoordAttribute + "0;",
+ " gl_Position = u_projTrans * " + Shader.positionAttribute + ";",
"}"),
Strings.join("\n",
"#ifdef GL_ES",
@@ -60,7 +56,7 @@ public class IndexedRenderer implements Disposable{
}
public void render(Texture texture){
- Core.gl.glEnable(GL20.GL_BLEND);
+ Gl.enable(Gl.blend);
updateMatrix();
@@ -71,7 +67,7 @@ public class IndexedRenderer implements Disposable{
program.setUniformMatrix4("u_projTrans", BatchShader.copyTransform(combined));
program.setUniformi("u_texture", 0);
- mesh.render(program, GL20.GL_TRIANGLES, 0, vertices.length / vsize);
+ mesh.render(program, Gl.triangles, 0, vertices.length / vsize);
program.end();
}
@@ -226,9 +222,9 @@ public class IndexedRenderer implements Disposable{
if(mesh != null) mesh.dispose();
mesh = new Mesh(true, 6 * sprites, 0,
- new VertexAttribute(Usage.Position, 2, "a_position"),
- new VertexAttribute(Usage.ColorPacked, 4, "a_color"),
- new VertexAttribute(Usage.TextureCoordinates, 2, "a_texCoord0"));
+ new VertexAttribute(Usage.position, 2, "a_position"),
+ new VertexAttribute(Usage.colorPacked, 4, "a_color"),
+ new VertexAttribute(Usage.textureCoordinates, 2, "a_texCoord0"));
vertices = new float[6 * sprites * vsize];
mesh.setVertices(vertices);
}
diff --git a/core/src/mindustry/graphics/MinimapRenderer.java b/core/src/mindustry/graphics/MinimapRenderer.java
index 60f3d2974b..c34bb246ec 100644
--- a/core/src/mindustry/graphics/MinimapRenderer.java
+++ b/core/src/mindustry/graphics/MinimapRenderer.java
@@ -9,6 +9,7 @@ import arc.math.*;
import arc.math.geom.*;
import arc.scene.ui.layout.*;
import arc.util.*;
+import arc.util.ArcAnnotate.*;
import arc.util.pooling.*;
import mindustry.entities.*;
import mindustry.entities.type.*;
@@ -42,7 +43,7 @@ public class MinimapRenderer implements Disposable{
return pixmap;
}
- public Texture getTexture(){
+ public @Nullable Texture getTexture(){
return texture;
}
@@ -70,8 +71,13 @@ public class MinimapRenderer implements Disposable{
region = new TextureRegion(texture);
}
- public void drawEntities(float x, float y, float w, float h, boolean withLabels){
- updateUnitArray();
+ public void drawEntities(float x, float y, float w, float h, float scaling, boolean withLabels){
+ if(!withLabels){
+ updateUnitArray();
+ }else{
+ units.clear();
+ Units.all(units::add);
+ }
float sz = baseSize * zoom;
float dx = (Core.camera.position.x / tilesize);
@@ -82,8 +88,14 @@ public class MinimapRenderer implements Disposable{
rect.set((dx - sz) * tilesize, (dy - sz) * tilesize, sz * 2 * tilesize, sz * 2 * tilesize);
for(Unit unit : units){
- float rx = (unit.x - rect.x) / rect.width * w;
- float ry = (unit.y - rect.y) / rect.width * h;
+ if(unit.isDead()) continue;
+ float rx = !withLabels ? (unit.x - rect.x) / rect.width * w : unit.x / (world.width() * tilesize) * w;
+ float ry = !withLabels ? (unit.y - rect.y) / rect.width * h : unit.y / (world.height() * tilesize) * h;
+
+ Draw.mixcol(unit.getTeam().color, 1f);
+ float scale = Scl.scl(1f) / 2f * scaling * 32f;
+ Draw.rect(unit.getIconRegion(), x + rx, y + ry, scale, scale, unit.rotation - 90);
+ Draw.reset();
if(withLabels && unit instanceof Player){
Player pl = (Player) unit;
@@ -92,19 +104,16 @@ public class MinimapRenderer implements Disposable{
drawLabel(x + rx, y + ry, pl.name, unit.getTeam().color);
}
}
-
- Draw.color(unit.getTeam().color);
- Fill.rect(x + rx, y + ry, Scl.scl(baseSize / 2f), Scl.scl(baseSize / 2f));
}
- Draw.color();
+ Draw.reset();
}
public void drawEntities(float x, float y, float w, float h){
- drawEntities(x, y, w, h, true);
+ drawEntities(x, y, w, h, 1f, true);
}
- public TextureRegion getRegion(){
+ public @Nullable TextureRegion getRegion(){
if(texture == null) return null;
float sz = Mathf.clamp(baseSize * zoom, baseSize, Math.min(world.width(), world.height()));
diff --git a/core/src/mindustry/graphics/OverlayRenderer.java b/core/src/mindustry/graphics/OverlayRenderer.java
index c0cd917952..da8a808962 100644
--- a/core/src/mindustry/graphics/OverlayRenderer.java
+++ b/core/src/mindustry/graphics/OverlayRenderer.java
@@ -96,7 +96,7 @@ public class OverlayRenderer{
if(buildFadeTime > 0.005f){
state.teams.eachEnemyCore(player.getTeam(), core -> {
float dst = core.dst(player);
- if(dst < state.rules.enemyCoreBuildRadius * 1.5f){
+ if(dst < state.rules.enemyCoreBuildRadius * 2.2f){
Draw.color(Color.darkGray);
Lines.circle(core.x, core.y - 2, state.rules.enemyCoreBuildRadius);
Draw.color(Pal.accent, core.getTeam().color, 0.5f + Mathf.absin(Time.time(), 10f, 0.5f));
diff --git a/core/src/mindustry/input/DesktopInput.java b/core/src/mindustry/input/DesktopInput.java
index c76968a56e..8838dee9c9 100644
--- a/core/src/mindustry/input/DesktopInput.java
+++ b/core/src/mindustry/input/DesktopInput.java
@@ -10,6 +10,7 @@ import arc.scene.event.*;
import arc.scene.ui.*;
import arc.scene.ui.layout.*;
import arc.util.ArcAnnotate.*;
+import arc.util.*;
import mindustry.*;
import mindustry.core.GameState.*;
import mindustry.entities.traits.BuilderTrait.*;
@@ -135,22 +136,29 @@ public class DesktopInput extends InputHandler{
ui.listfrag.toggle();
}
+ if(((player.getClosestCore() == null && player.isDead()) || state.isPaused()) && !ui.chatfrag.shown()){
+ //move camera around
+ float camSpeed = !Core.input.keyDown(Binding.dash) ? 3f : 8f;
+ Core.camera.position.add(Tmp.v1.setZero().add(Core.input.axis(Binding.move_x), Core.input.axis(Binding.move_y)).nor().scl(Time.delta() * camSpeed));
+
+ if(Core.input.keyDown(Binding.mouse_move)){
+ Core.camera.position.x += Mathf.clamp((Core.input.mouseX() - Core.graphics.getWidth() / 2f) * 0.005f, -1, 1) * camSpeed;
+ Core.camera.position.y += Mathf.clamp((Core.input.mouseY() - Core.graphics.getHeight() / 2f) * 0.005f, -1, 1) * camSpeed;
+ }
+ }
+
if(Core.input.keyRelease(Binding.select)){
player.isShooting = false;
}
- if(!state.is(State.menu) && Core.input.keyTap(Binding.minimap) && (scene.getKeyboardFocus() == ui.minimap || !scene.hasDialog()) && !Core.scene.hasKeyboard() && !(scene.getKeyboardFocus() instanceof TextField)){
- if(!ui.minimap.isShown()){
- ui.minimap.show();
- }else{
- ui.minimap.hide();
- }
+ if(!state.is(State.menu) && Core.input.keyTap(Binding.minimap) && !scene.hasDialog() && !(scene.getKeyboardFocus() instanceof TextField)){
+ ui.minimapfrag.toggle();
}
if(state.is(State.menu) || Core.scene.hasDialog()) return;
//zoom camera
- if(!Core.scene.hasScroll() && !ui.chatfrag.shown() && Math.abs(Core.input.axisTap(Binding.zoom)) > 0 && !Core.input.keyDown(Binding.rotateplaced) && (Core.input.keyDown(Binding.diagonal_placement) || ((!isPlacing() || !block.rotate) && selectRequests.isEmpty()))){
+ if((!Core.scene.hasScroll() || Core.input.keyDown(Binding.diagonal_placement)) && !ui.chatfrag.shown() && Math.abs(Core.input.axisTap(Binding.zoom)) > 0 && !Core.input.keyDown(Binding.rotateplaced) && (Core.input.keyDown(Binding.diagonal_placement) || ((!isPlacing() || !block.rotate) && selectRequests.isEmpty()))){
renderer.scaleCamera(Core.input.axisTap(Binding.zoom));
}
diff --git a/core/src/mindustry/input/InputHandler.java b/core/src/mindustry/input/InputHandler.java
index 4a6ffb575b..e56244928e 100644
--- a/core/src/mindustry/input/InputHandler.java
+++ b/core/src/mindustry/input/InputHandler.java
@@ -92,7 +92,7 @@ public abstract class InputHandler implements InputProcessor, GestureListener{
@Remote(targets = Loc.both, forward = true, called = Loc.server)
public static void transferInventory(Player player, Tile tile){
- if(player == null || player.timer == null || !player.timer.get(Player.timerTransfer, 40)) return;
+ if(player == null || player.timer == null) return;
if(net.server() && (player.item().amount <= 0 || player.isTransferring|| !Units.canInteract(player, tile))){
throw new ValidateException(player, "Player cannot transfer an item.");
}
@@ -725,7 +725,7 @@ public abstract class InputHandler implements InputProcessor, GestureListener{
}
public void tryDropItems(Tile tile, float x, float y){
- if(!droppingItem || player.item().amount <= 0 || canTapPlayer(x, y) || state.isPaused() || !player.timer.check(Player.timerTransfer, 40)){
+ if(!droppingItem || player.item().amount <= 0 || canTapPlayer(x, y) || state.isPaused() ){
droppingItem = false;
return;
}
diff --git a/core/src/mindustry/input/MobileInput.java b/core/src/mindustry/input/MobileInput.java
index 81f657c876..3b8e881085 100644
--- a/core/src/mindustry/input/MobileInput.java
+++ b/core/src/mindustry/input/MobileInput.java
@@ -439,10 +439,12 @@ public class MobileInput extends InputHandler implements GestureListener{
@Override
public boolean touchDown(int screenX, int screenY, int pointer, KeyCode button){
- if(state.is(State.menu) || player.isDead()) return false;
+ if(state.is(State.menu)) return false;
down = true;
+ if(player.isDead()) return false;
+
//get tile on cursor
Tile cursor = tileAt(screenX, screenY);
diff --git a/core/src/mindustry/mod/ClassAccess.java b/core/src/mindustry/mod/ClassAccess.java
index 06ff74766c..7046227686 100644
--- a/core/src/mindustry/mod/ClassAccess.java
+++ b/core/src/mindustry/mod/ClassAccess.java
@@ -3,5 +3,5 @@ package mindustry.mod;
import arc.struct.*;
//obviously autogenerated, do not touch
public class ClassAccess{
- public static final ObjectSet allowedClassNames = ObjectSet.with("arc.Core", "arc.func.Boolc", "arc.func.Boolf", "arc.func.Boolf2", "arc.func.Boolp", "arc.func.Cons", "arc.func.Cons2", "arc.func.Floatc", "arc.func.Floatc2", "arc.func.Floatc4", "arc.func.Floatf", "arc.func.Floatp", "arc.func.Func", "arc.func.Func2", "arc.func.Func3", "arc.func.Intc", "arc.func.Intc2", "arc.func.Intc4", "arc.func.Intf", "arc.func.Intp", "arc.func.Prov", "arc.graphics.Color", "arc.graphics.Pixmap", "arc.graphics.Texture", "arc.graphics.TextureData", "arc.graphics.g2d.Draw", "arc.graphics.g2d.Fill", "arc.graphics.g2d.Lines", "arc.graphics.g2d.TextureAtlas", "arc.graphics.g2d.TextureAtlas$AtlasRegion", "arc.graphics.g2d.TextureRegion", "arc.math.Angles", "arc.math.Mathf", "arc.scene.Action", "arc.scene.Element", "arc.scene.Group", "arc.scene.Scene", "arc.scene.actions.Actions", "arc.scene.actions.AddAction", "arc.scene.actions.AddListenerAction", "arc.scene.actions.AfterAction", "arc.scene.actions.AlphaAction", "arc.scene.actions.ColorAction", "arc.scene.actions.DelayAction", "arc.scene.actions.DelegateAction", "arc.scene.actions.FloatAction", "arc.scene.actions.IntAction", "arc.scene.actions.LayoutAction", "arc.scene.actions.MoveByAction", "arc.scene.actions.MoveToAction", "arc.scene.actions.OriginAction", "arc.scene.actions.ParallelAction", "arc.scene.actions.RelativeTemporalAction", "arc.scene.actions.RemoveAction", "arc.scene.actions.RemoveActorAction", "arc.scene.actions.RemoveListenerAction", "arc.scene.actions.RepeatAction", "arc.scene.actions.RotateByAction", "arc.scene.actions.RotateToAction", "arc.scene.actions.RunnableAction", "arc.scene.actions.ScaleByAction", "arc.scene.actions.ScaleToAction", "arc.scene.actions.SequenceAction", "arc.scene.actions.SizeByAction", "arc.scene.actions.SizeToAction", "arc.scene.actions.TemporalAction", "arc.scene.actions.TimeScaleAction", "arc.scene.actions.TouchableAction", "arc.scene.actions.TranslateByAction", "arc.scene.actions.VisibleAction", "arc.scene.event.ChangeListener", "arc.scene.event.ChangeListener$ChangeEvent", "arc.scene.event.ClickListener", "arc.scene.event.DragListener", "arc.scene.event.DragScrollListener", "arc.scene.event.ElementGestureListener", "arc.scene.event.EventListener", "arc.scene.event.FocusListener", "arc.scene.event.FocusListener$FocusEvent", "arc.scene.event.FocusListener$FocusEvent$Type", "arc.scene.event.HandCursorListener", "arc.scene.event.IbeamCursorListener", "arc.scene.event.InputEvent", "arc.scene.event.InputEvent$Type", "arc.scene.event.InputListener", "arc.scene.event.SceneEvent", "arc.scene.event.Touchable", "arc.scene.event.VisibilityEvent", "arc.scene.event.VisibilityListener", "arc.scene.style.BaseDrawable", "arc.scene.style.Drawable", "arc.scene.style.NinePatchDrawable", "arc.scene.style.ScaledNinePatchDrawable", "arc.scene.style.Style", "arc.scene.style.TextureRegionDrawable", "arc.scene.style.TiledDrawable", "arc.scene.style.TransformDrawable", "arc.scene.ui.Button", "arc.scene.ui.Button$ButtonStyle", "arc.scene.ui.ButtonGroup", "arc.scene.ui.CheckBox", "arc.scene.ui.CheckBox$CheckBoxStyle", "arc.scene.ui.ColorImage", "arc.scene.ui.Dialog", "arc.scene.ui.Dialog$DialogStyle", "arc.scene.ui.Image", "arc.scene.ui.ImageButton", "arc.scene.ui.ImageButton$ImageButtonStyle", "arc.scene.ui.KeybindDialog", "arc.scene.ui.KeybindDialog$KeybindDialogStyle", "arc.scene.ui.Label", "arc.scene.ui.Label$LabelStyle", "arc.scene.ui.ProgressBar", "arc.scene.ui.ProgressBar$ProgressBarStyle", "arc.scene.ui.ScrollPane", "arc.scene.ui.ScrollPane$ScrollPaneStyle", "arc.scene.ui.SettingsDialog", "arc.scene.ui.SettingsDialog$SettingsTable", "arc.scene.ui.SettingsDialog$SettingsTable$CheckSetting", "arc.scene.ui.SettingsDialog$SettingsTable$Setting", "arc.scene.ui.SettingsDialog$SettingsTable$SliderSetting", "arc.scene.ui.SettingsDialog$StringProcessor", "arc.scene.ui.Slider", "arc.scene.ui.Slider$SliderStyle", "arc.scene.ui.TextArea", "arc.scene.ui.TextArea$TextAreaListener", "arc.scene.ui.TextButton", "arc.scene.ui.TextButton$TextButtonStyle", "arc.scene.ui.TextField", "arc.scene.ui.TextField$DefaultOnscreenKeyboard", "arc.scene.ui.TextField$OnscreenKeyboard", "arc.scene.ui.TextField$TextFieldClickListener", "arc.scene.ui.TextField$TextFieldFilter", "arc.scene.ui.TextField$TextFieldListener", "arc.scene.ui.TextField$TextFieldStyle", "arc.scene.ui.TextField$TextFieldValidator", "arc.scene.ui.Tooltip", "arc.scene.ui.Tooltip$Tooltips", "arc.scene.ui.Touchpad", "arc.scene.ui.Touchpad$TouchpadStyle", "arc.scene.ui.TreeElement", "arc.scene.ui.TreeElement$Node", "arc.scene.ui.TreeElement$TreeStyle", "arc.scene.ui.layout.Cell", "arc.scene.ui.layout.Collapser", "arc.scene.ui.layout.HorizontalGroup", "arc.scene.ui.layout.Scl", "arc.scene.ui.layout.Stack", "arc.scene.ui.layout.Table", "arc.scene.ui.layout.Table$DrawRect", "arc.scene.ui.layout.VerticalGroup", "arc.scene.ui.layout.WidgetGroup", "arc.scene.utils.ArraySelection", "arc.scene.utils.Cullable", "arc.scene.utils.Disableable", "arc.scene.utils.DragAndDrop", "arc.scene.utils.DragAndDrop$Payload", "arc.scene.utils.DragAndDrop$Source", "arc.scene.utils.DragAndDrop$Target", "arc.scene.utils.Elements", "arc.scene.utils.Layout", "arc.scene.utils.Selection", "arc.struct.Array", "arc.struct.Array$ArrayIterable", "arc.struct.ArrayMap", "arc.struct.ArrayMap$Entries", "arc.struct.ArrayMap$Keys", "arc.struct.ArrayMap$Values", "arc.struct.AtomicQueue", "arc.struct.BinaryHeap", "arc.struct.BinaryHeap$Node", "arc.struct.Bits", "arc.struct.BooleanArray", "arc.struct.ByteArray", "arc.struct.CharArray", "arc.struct.ComparableTimSort", "arc.struct.DelayedRemovalArray", "arc.struct.EnumSet", "arc.struct.EnumSet$EnumSetIterator", "arc.struct.FloatArray", "arc.struct.GridBits", "arc.struct.GridMap", "arc.struct.IdentityMap", "arc.struct.IdentityMap$Entries", "arc.struct.IdentityMap$Entry", "arc.struct.IdentityMap$Keys", "arc.struct.IdentityMap$Values", "arc.struct.IntArray", "arc.struct.IntFloatMap", "arc.struct.IntFloatMap$Entries", "arc.struct.IntFloatMap$Entry", "arc.struct.IntFloatMap$Keys", "arc.struct.IntFloatMap$Values", "arc.struct.IntIntMap", "arc.struct.IntIntMap$Entries", "arc.struct.IntIntMap$Entry", "arc.struct.IntIntMap$Keys", "arc.struct.IntIntMap$Values", "arc.struct.IntMap", "arc.struct.IntMap$Entries", "arc.struct.IntMap$Entry", "arc.struct.IntMap$Keys", "arc.struct.IntMap$Values", "arc.struct.IntQueue", "arc.struct.IntSet", "arc.struct.IntSet$IntSetIterator", "arc.struct.LongArray", "arc.struct.LongMap", "arc.struct.LongMap$Entries", "arc.struct.LongMap$Entry", "arc.struct.LongMap$Keys", "arc.struct.LongMap$Values", "arc.struct.LongQueue", "arc.struct.ObjectFloatMap", "arc.struct.ObjectFloatMap$Entries", "arc.struct.ObjectFloatMap$Entry", "arc.struct.ObjectFloatMap$Keys", "arc.struct.ObjectFloatMap$Values", "arc.struct.ObjectIntMap", "arc.struct.ObjectIntMap$Entries", "arc.struct.ObjectIntMap$Entry", "arc.struct.ObjectIntMap$Keys", "arc.struct.ObjectIntMap$Values", "arc.struct.ObjectMap", "arc.struct.ObjectMap$Entries", "arc.struct.ObjectMap$Entry", "arc.struct.ObjectMap$Keys", "arc.struct.ObjectMap$Values", "arc.struct.ObjectSet", "arc.struct.ObjectSet$ObjectSetIterator", "arc.struct.OrderedMap", "arc.struct.OrderedMap$OrderedMapEntries", "arc.struct.OrderedMap$OrderedMapKeys", "arc.struct.OrderedMap$OrderedMapValues", "arc.struct.OrderedSet", "arc.struct.OrderedSet$OrderedSetIterator", "arc.struct.PooledLinkedList", "arc.struct.PooledLinkedList$Item", "arc.struct.Queue", "arc.struct.Queue$QueueIterable", "arc.struct.ShortArray", "arc.struct.SnapshotArray", "arc.struct.Sort", "arc.struct.SortedIntList", "arc.struct.SortedIntList$Iterator", "arc.struct.SortedIntList$Node", "arc.struct.StringMap", "arc.struct.TimSort", "arc.util.I18NBundle", "arc.util.Time", "java.io.PrintStream", "java.lang.Object", "java.lang.Runnable", "java.lang.String", "java.lang.System", "mindustry.Vars", "mindustry.ai.BlockIndexer", "mindustry.ai.Pathfinder", "mindustry.ai.Pathfinder$PathData", "mindustry.ai.Pathfinder$PathTarget", "mindustry.ai.Pathfinder$PathTileStruct", "mindustry.ai.WaveSpawner", "mindustry.content.Blocks", "mindustry.content.Bullets", "mindustry.content.Fx", "mindustry.content.Items", "mindustry.content.Liquids", "mindustry.content.Loadouts", "mindustry.content.Mechs", "mindustry.content.StatusEffects", "mindustry.content.TechTree", "mindustry.content.TechTree$TechNode", "mindustry.content.TypeIDs", "mindustry.content.UnitTypes", "mindustry.content.Zones", "mindustry.core.ContentLoader", "mindustry.core.Control", "mindustry.core.FileTree", "mindustry.core.GameState", "mindustry.core.GameState$State", "mindustry.core.Logic", "mindustry.core.NetServer$TeamAssigner", "mindustry.core.Platform", "mindustry.core.Renderer", "mindustry.core.UI", "mindustry.core.Version", "mindustry.core.World", "mindustry.core.World$Raycaster", "mindustry.ctype.Content", "mindustry.ctype.Content$ModContentInfo", "mindustry.ctype.ContentList", "mindustry.ctype.ContentType", "mindustry.ctype.MappableContent", "mindustry.ctype.UnlockableContent", "mindustry.editor.DrawOperation", "mindustry.editor.DrawOperation$OpType", "mindustry.editor.DrawOperation$TileOpStruct", "mindustry.editor.EditorTile", "mindustry.editor.EditorTool", "mindustry.editor.MapEditor", "mindustry.editor.MapEditor$Context", "mindustry.editor.MapEditorDialog", "mindustry.editor.MapGenerateDialog", "mindustry.editor.MapInfoDialog", "mindustry.editor.MapLoadDialog", "mindustry.editor.MapRenderer", "mindustry.editor.MapResizeDialog", "mindustry.editor.MapSaveDialog", "mindustry.editor.MapView", "mindustry.editor.OperationStack", "mindustry.editor.WaveInfoDialog", "mindustry.entities.Damage", "mindustry.entities.Damage$PropCellStruct", "mindustry.entities.Effects", "mindustry.entities.Effects$Effect", "mindustry.entities.Effects$EffectContainer", "mindustry.entities.Effects$EffectProvider", "mindustry.entities.Effects$EffectRenderer", "mindustry.entities.Effects$ScreenshakeProvider", "mindustry.entities.Entities", "mindustry.entities.EntityCollisions", "mindustry.entities.EntityGroup", "mindustry.entities.Predict", "mindustry.entities.TargetPriority", "mindustry.entities.Units", "mindustry.entities.bullet.ArtilleryBulletType", "mindustry.entities.bullet.BasicBulletType", "mindustry.entities.bullet.BombBulletType", "mindustry.entities.bullet.BulletType", "mindustry.entities.bullet.FlakBulletType", "mindustry.entities.bullet.HealBulletType", "mindustry.entities.bullet.LiquidBulletType", "mindustry.entities.bullet.MassDriverBolt", "mindustry.entities.bullet.MissileBulletType", "mindustry.entities.effect.Decal", "mindustry.entities.effect.Fire", "mindustry.entities.effect.GroundEffectEntity", "mindustry.entities.effect.GroundEffectEntity$GroundEffect", "mindustry.entities.effect.ItemTransfer", "mindustry.entities.effect.Lightning", "mindustry.entities.effect.Puddle", "mindustry.entities.effect.RubbleDecal", "mindustry.entities.effect.ScorchDecal", "mindustry.entities.traits.AbsorbTrait", "mindustry.entities.traits.BelowLiquidTrait", "mindustry.entities.traits.BuilderMinerTrait", "mindustry.entities.traits.BuilderTrait", "mindustry.entities.traits.BuilderTrait$BuildDataStatic", "mindustry.entities.traits.BuilderTrait$BuildRequest", "mindustry.entities.traits.DamageTrait", "mindustry.entities.traits.DrawTrait", "mindustry.entities.traits.Entity", "mindustry.entities.traits.HealthTrait", "mindustry.entities.traits.KillerTrait", "mindustry.entities.traits.MinerTrait", "mindustry.entities.traits.MoveTrait", "mindustry.entities.traits.SaveTrait", "mindustry.entities.traits.Saveable", "mindustry.entities.traits.ScaleTrait", "mindustry.entities.traits.ShooterTrait", "mindustry.entities.traits.SolidTrait", "mindustry.entities.traits.SpawnerTrait", "mindustry.entities.traits.SyncTrait", "mindustry.entities.traits.TargetTrait", "mindustry.entities.traits.TeamTrait", "mindustry.entities.traits.TimeTrait", "mindustry.entities.traits.TypeTrait", "mindustry.entities.traits.VelocityTrait", "mindustry.entities.type.BaseEntity", "mindustry.entities.type.BaseUnit", "mindustry.entities.type.Bullet", "mindustry.entities.type.DestructibleEntity", "mindustry.entities.type.EffectEntity", "mindustry.entities.type.Player", "mindustry.entities.type.SolidEntity", "mindustry.entities.type.TileEntity", "mindustry.entities.type.TimedEntity", "mindustry.entities.type.Unit", "mindustry.entities.type.base.BaseDrone", "mindustry.entities.type.base.BuilderDrone", "mindustry.entities.type.base.FlyingUnit", "mindustry.entities.type.base.GroundUnit", "mindustry.entities.type.base.HoverUnit", "mindustry.entities.type.base.MinerDrone", "mindustry.entities.type.base.RepairDrone", "mindustry.entities.units.StateMachine", "mindustry.entities.units.Statuses", "mindustry.entities.units.Statuses$StatusEntry", "mindustry.entities.units.UnitCommand", "mindustry.entities.units.UnitDrops", "mindustry.entities.units.UnitState", "mindustry.game.DefaultWaves", "mindustry.game.Difficulty", "mindustry.game.EventType", "mindustry.game.EventType$BlockBuildBeginEvent", "mindustry.game.EventType$BlockBuildEndEvent", "mindustry.game.EventType$BlockDestroyEvent", "mindustry.game.EventType$BlockInfoEvent", "mindustry.game.EventType$BuildSelectEvent", "mindustry.game.EventType$ClientLoadEvent", "mindustry.game.EventType$CommandIssueEvent", "mindustry.game.EventType$ContentReloadEvent", "mindustry.game.EventType$CoreItemDeliverEvent", "mindustry.game.EventType$DepositEvent", "mindustry.game.EventType$DisposeEvent", "mindustry.game.EventType$GameOverEvent", "mindustry.game.EventType$LaunchEvent", "mindustry.game.EventType$LaunchItemEvent", "mindustry.game.EventType$LineConfirmEvent", "mindustry.game.EventType$LoseEvent", "mindustry.game.EventType$MapMakeEvent", "mindustry.game.EventType$MapPublishEvent", "mindustry.game.EventType$MechChangeEvent", "mindustry.game.EventType$PlayEvent", "mindustry.game.EventType$PlayerBanEvent", "mindustry.game.EventType$PlayerChatEvent", "mindustry.game.EventType$PlayerConnect", "mindustry.game.EventType$PlayerIpBanEvent", "mindustry.game.EventType$PlayerIpUnbanEvent", "mindustry.game.EventType$PlayerJoin", "mindustry.game.EventType$PlayerLeave", "mindustry.game.EventType$PlayerUnbanEvent", "mindustry.game.EventType$ResearchEvent", "mindustry.game.EventType$ResetEvent", "mindustry.game.EventType$ResizeEvent", "mindustry.game.EventType$ServerLoadEvent", "mindustry.game.EventType$StateChangeEvent", "mindustry.game.EventType$TapConfigEvent", "mindustry.game.EventType$TapEvent", "mindustry.game.EventType$TileChangeEvent", "mindustry.game.EventType$Trigger", "mindustry.game.EventType$TurretAmmoDeliverEvent", "mindustry.game.EventType$UnitCreateEvent", "mindustry.game.EventType$UnitDestroyEvent", "mindustry.game.EventType$UnlockEvent", "mindustry.game.EventType$WaveEvent", "mindustry.game.EventType$WinEvent", "mindustry.game.EventType$WithdrawEvent", "mindustry.game.EventType$WorldLoadEvent", "mindustry.game.EventType$ZoneConfigureCompleteEvent", "mindustry.game.EventType$ZoneRequireCompleteEvent", "mindustry.game.Gamemode", "mindustry.game.GlobalData", "mindustry.game.LoopControl", "mindustry.game.MusicControl", "mindustry.game.Objective", "mindustry.game.Objectives", "mindustry.game.Objectives$Launched", "mindustry.game.Objectives$Unlock", "mindustry.game.Objectives$Wave", "mindustry.game.Objectives$ZoneObjective", "mindustry.game.Objectives$ZoneWave", "mindustry.game.Rules", "mindustry.game.Saves", "mindustry.game.Saves$SaveSlot", "mindustry.game.Schematic", "mindustry.game.Schematic$Stile", "mindustry.game.Schematics", "mindustry.game.SoundLoop", "mindustry.game.SpawnGroup", "mindustry.game.Stats", "mindustry.game.Stats$Rank", "mindustry.game.Stats$RankResult", "mindustry.game.Team", "mindustry.game.Teams", "mindustry.game.Teams$BrokenBlock", "mindustry.game.Teams$TeamData", "mindustry.game.Tutorial", "mindustry.game.Tutorial$TutorialStage", "mindustry.gen.BufferItem", "mindustry.gen.Call", "mindustry.gen.Call", "mindustry.gen.Icon", "mindustry.gen.Icon", "mindustry.gen.MethodHash", "mindustry.gen.Musics", "mindustry.gen.Musics", "mindustry.gen.PathTile", "mindustry.gen.PropCell", "mindustry.gen.RemoteReadClient", "mindustry.gen.RemoteReadServer", "mindustry.gen.Serialization", "mindustry.gen.Sounds", "mindustry.gen.Sounds", "mindustry.gen.Tex", "mindustry.gen.Tex", "mindustry.gen.TileOp", "mindustry.graphics.BlockRenderer", "mindustry.graphics.Bloom", "mindustry.graphics.CacheLayer", "mindustry.graphics.Drawf", "mindustry.graphics.FloorRenderer", "mindustry.graphics.IndexedRenderer", "mindustry.graphics.Layer", "mindustry.graphics.LightRenderer", "mindustry.graphics.MenuRenderer", "mindustry.graphics.MinimapRenderer", "mindustry.graphics.MultiPacker", "mindustry.graphics.MultiPacker$PageType", "mindustry.graphics.OverlayRenderer", "mindustry.graphics.Pal", "mindustry.graphics.Pixelator", "mindustry.graphics.Shaders", "mindustry.input.Binding", "mindustry.input.DesktopInput", "mindustry.input.InputHandler", "mindustry.input.InputHandler$PlaceLine", "mindustry.input.MobileInput", "mindustry.input.PlaceMode", "mindustry.input.Placement", "mindustry.input.Placement$DistanceHeuristic", "mindustry.input.Placement$NormalizeDrawResult", "mindustry.input.Placement$NormalizeResult", "mindustry.input.Placement$TileHueristic", "mindustry.maps.Map", "mindustry.maps.Maps", "mindustry.maps.Maps$MapProvider", "mindustry.maps.Maps$ShuffleMode", "mindustry.maps.Maps$ShuffleMode", "mindustry.maps.filters.BlendFilter", "mindustry.maps.filters.ClearFilter", "mindustry.maps.filters.DistortFilter", "mindustry.maps.filters.FilterOption", "mindustry.maps.filters.FilterOption$BlockOption", "mindustry.maps.filters.FilterOption$SliderOption", "mindustry.maps.filters.GenerateFilter", "mindustry.maps.filters.GenerateFilter$GenerateInput", "mindustry.maps.filters.GenerateFilter$GenerateInput$TileProvider", "mindustry.maps.filters.MedianFilter", "mindustry.maps.filters.MirrorFilter", "mindustry.maps.filters.NoiseFilter", "mindustry.maps.filters.OreFilter", "mindustry.maps.filters.OreMedianFilter", "mindustry.maps.filters.RiverNoiseFilter", "mindustry.maps.filters.ScatterFilter", "mindustry.maps.filters.TerrainFilter", "mindustry.maps.generators.BasicGenerator", "mindustry.maps.generators.BasicGenerator$DistanceHeuristic", "mindustry.maps.generators.BasicGenerator$TileHueristic", "mindustry.maps.generators.Generator", "mindustry.maps.generators.MapGenerator", "mindustry.maps.generators.MapGenerator$Decoration", "mindustry.maps.generators.RandomGenerator", "mindustry.maps.zonegen.DesertWastesGenerator", "mindustry.maps.zonegen.OvergrowthGenerator", "mindustry.type.Category", "mindustry.type.ErrorContent", "mindustry.type.Item", "mindustry.type.ItemStack", "mindustry.type.ItemType", "mindustry.type.Liquid", "mindustry.type.LiquidStack", "mindustry.type.Mech", "mindustry.type.Publishable", "mindustry.type.StatusEffect", "mindustry.type.StatusEffect$TransitionHandler", "mindustry.type.TypeID", "mindustry.type.UnitType", "mindustry.type.Weapon", "mindustry.type.WeatherEvent", "mindustry.type.Zone", "mindustry.ui.Bar", "mindustry.ui.BorderImage", "mindustry.ui.Cicon", "mindustry.ui.ContentDisplay", "mindustry.ui.Fonts", "mindustry.ui.GridImage", "mindustry.ui.IconSize", "mindustry.ui.IntFormat", "mindustry.ui.ItemDisplay", "mindustry.ui.ItemImage", "mindustry.ui.ItemsDisplay", "mindustry.ui.Links", "mindustry.ui.Links$LinkEntry", "mindustry.ui.LiquidDisplay", "mindustry.ui.Minimap", "mindustry.ui.MobileButton", "mindustry.ui.MultiReqImage", "mindustry.ui.ReqImage", "mindustry.ui.Styles", "mindustry.ui.dialogs.AboutDialog", "mindustry.ui.dialogs.AdminsDialog", "mindustry.ui.dialogs.BansDialog", "mindustry.ui.dialogs.ColorPicker", "mindustry.ui.dialogs.ContentInfoDialog", "mindustry.ui.dialogs.ControlsDialog", "mindustry.ui.dialogs.CustomGameDialog", "mindustry.ui.dialogs.CustomRulesDialog", "mindustry.ui.dialogs.DatabaseDialog", "mindustry.ui.dialogs.DeployDialog", "mindustry.ui.dialogs.DeployDialog$View", "mindustry.ui.dialogs.DeployDialog$ZoneNode", "mindustry.ui.dialogs.DiscordDialog", "mindustry.ui.dialogs.FileChooser", "mindustry.ui.dialogs.FileChooser$FileHistory", "mindustry.ui.dialogs.FloatingDialog", "mindustry.ui.dialogs.GameOverDialog", "mindustry.ui.dialogs.HostDialog", "mindustry.ui.dialogs.JoinDialog", "mindustry.ui.dialogs.JoinDialog$Server", "mindustry.ui.dialogs.LanguageDialog", "mindustry.ui.dialogs.LoadDialog", "mindustry.ui.dialogs.LoadoutDialog", "mindustry.ui.dialogs.MapPlayDialog", "mindustry.ui.dialogs.MapsDialog", "mindustry.ui.dialogs.MinimapDialog", "mindustry.ui.dialogs.ModsDialog", "mindustry.ui.dialogs.PaletteDialog", "mindustry.ui.dialogs.PausedDialog", "mindustry.ui.dialogs.SaveDialog", "mindustry.ui.dialogs.SchematicsDialog", "mindustry.ui.dialogs.SchematicsDialog$SchematicImage", "mindustry.ui.dialogs.SchematicsDialog$SchematicInfoDialog", "mindustry.ui.dialogs.SettingsMenuDialog", "mindustry.ui.dialogs.TechTreeDialog", "mindustry.ui.dialogs.TechTreeDialog$LayoutNode", "mindustry.ui.dialogs.TechTreeDialog$TechTreeNode", "mindustry.ui.dialogs.TechTreeDialog$View", "mindustry.ui.dialogs.TraceDialog", "mindustry.ui.dialogs.ZoneInfoDialog", "mindustry.ui.fragments.BlockConfigFragment", "mindustry.ui.fragments.BlockInventoryFragment", "mindustry.ui.fragments.ChatFragment", "mindustry.ui.fragments.FadeInFragment", "mindustry.ui.fragments.Fragment", "mindustry.ui.fragments.HudFragment", "mindustry.ui.fragments.LoadingFragment", "mindustry.ui.fragments.MenuFragment", "mindustry.ui.fragments.OverlayFragment", "mindustry.ui.fragments.PlacementFragment", "mindustry.ui.fragments.PlayerListFragment", "mindustry.ui.fragments.ScriptConsoleFragment", "mindustry.ui.layout.BranchTreeLayout", "mindustry.ui.layout.BranchTreeLayout$TreeAlignment", "mindustry.ui.layout.BranchTreeLayout$TreeLocation", "mindustry.ui.layout.RadialTreeLayout", "mindustry.ui.layout.TreeLayout", "mindustry.ui.layout.TreeLayout$TreeNode", "mindustry.world.Block", "mindustry.world.BlockStorage", "mindustry.world.Build", "mindustry.world.CachedTile", "mindustry.world.DirectionalItemBuffer", "mindustry.world.DirectionalItemBuffer$BufferItemStruct", "mindustry.world.Edges", "mindustry.world.ItemBuffer", "mindustry.world.LegacyColorMapper", "mindustry.world.LegacyColorMapper$LegacyBlock", "mindustry.world.Pos", "mindustry.world.StaticTree", "mindustry.world.Tile", "mindustry.world.WorldContext", "mindustry.world.blocks.Attributes", "mindustry.world.blocks.Autotiler", "mindustry.world.blocks.Autotiler$AutotilerHolder", "mindustry.world.blocks.BlockPart", "mindustry.world.blocks.BuildBlock", "mindustry.world.blocks.BuildBlock$BuildEntity", "mindustry.world.blocks.DoubleOverlayFloor", "mindustry.world.blocks.Floor", "mindustry.world.blocks.ItemSelection", "mindustry.world.blocks.LiquidBlock", "mindustry.world.blocks.OreBlock", "mindustry.world.blocks.OverlayFloor", "mindustry.world.blocks.PowerBlock", "mindustry.world.blocks.RespawnBlock", "mindustry.world.blocks.Rock", "mindustry.world.blocks.StaticWall", "mindustry.world.blocks.TreeBlock", "mindustry.world.blocks.defense.DeflectorWall", "mindustry.world.blocks.defense.DeflectorWall$DeflectorEntity", "mindustry.world.blocks.defense.Door", "mindustry.world.blocks.defense.Door$DoorEntity", "mindustry.world.blocks.defense.ForceProjector", "mindustry.world.blocks.defense.ForceProjector$ForceEntity", "mindustry.world.blocks.defense.ForceProjector$ShieldEntity", "mindustry.world.blocks.defense.MendProjector", "mindustry.world.blocks.defense.MendProjector$MendEntity", "mindustry.world.blocks.defense.OverdriveProjector", "mindustry.world.blocks.defense.OverdriveProjector$OverdriveEntity", "mindustry.world.blocks.defense.ShockMine", "mindustry.world.blocks.defense.SurgeWall", "mindustry.world.blocks.defense.Wall", "mindustry.world.blocks.defense.turrets.ArtilleryTurret", "mindustry.world.blocks.defense.turrets.BurstTurret", "mindustry.world.blocks.defense.turrets.ChargeTurret", "mindustry.world.blocks.defense.turrets.ChargeTurret$LaserTurretEntity", "mindustry.world.blocks.defense.turrets.CooledTurret", "mindustry.world.blocks.defense.turrets.DoubleTurret", "mindustry.world.blocks.defense.turrets.ItemTurret", "mindustry.world.blocks.defense.turrets.ItemTurret$ItemEntry", "mindustry.world.blocks.defense.turrets.ItemTurret$ItemTurretEntity", "mindustry.world.blocks.defense.turrets.LaserTurret", "mindustry.world.blocks.defense.turrets.LaserTurret$LaserTurretEntity", "mindustry.world.blocks.defense.turrets.LiquidTurret", "mindustry.world.blocks.defense.turrets.PowerTurret", "mindustry.world.blocks.defense.turrets.Turret", "mindustry.world.blocks.defense.turrets.Turret$AmmoEntry", "mindustry.world.blocks.defense.turrets.Turret$TurretEntity", "mindustry.world.blocks.distribution.ArmoredConveyor", "mindustry.world.blocks.distribution.BufferedItemBridge", "mindustry.world.blocks.distribution.BufferedItemBridge$BufferedItemBridgeEntity", "mindustry.world.blocks.distribution.Conveyor", "mindustry.world.blocks.distribution.Conveyor$ConveyorEntity", "mindustry.world.blocks.distribution.Conveyor$ItemPos", "mindustry.world.blocks.distribution.ExtendingItemBridge", "mindustry.world.blocks.distribution.ItemBridge", "mindustry.world.blocks.distribution.ItemBridge$ItemBridgeEntity", "mindustry.world.blocks.distribution.Junction", "mindustry.world.blocks.distribution.Junction$JunctionEntity", "mindustry.world.blocks.distribution.MassDriver", "mindustry.world.blocks.distribution.MassDriver$DriverBulletData", "mindustry.world.blocks.distribution.MassDriver$DriverState", "mindustry.world.blocks.distribution.MassDriver$MassDriverEntity", "mindustry.world.blocks.distribution.OverflowGate", "mindustry.world.blocks.distribution.OverflowGate$OverflowGateEntity", "mindustry.world.blocks.distribution.Router", "mindustry.world.blocks.distribution.Router$RouterEntity", "mindustry.world.blocks.distribution.Sorter", "mindustry.world.blocks.distribution.Sorter$SorterEntity", "mindustry.world.blocks.liquid.ArmoredConduit", "mindustry.world.blocks.liquid.Conduit", "mindustry.world.blocks.liquid.Conduit$ConduitEntity", "mindustry.world.blocks.liquid.LiquidBridge", "mindustry.world.blocks.liquid.LiquidExtendingBridge", "mindustry.world.blocks.liquid.LiquidJunction", "mindustry.world.blocks.liquid.LiquidOverflowGate", "mindustry.world.blocks.liquid.LiquidRouter", "mindustry.world.blocks.liquid.LiquidTank", "mindustry.world.blocks.logic.LogicBlock", "mindustry.world.blocks.logic.MessageBlock", "mindustry.world.blocks.logic.MessageBlock$MessageBlockEntity", "mindustry.world.blocks.power.Battery", "mindustry.world.blocks.power.BurnerGenerator", "mindustry.world.blocks.power.ConditionalConsumePower", "mindustry.world.blocks.power.DecayGenerator", "mindustry.world.blocks.power.ImpactReactor", "mindustry.world.blocks.power.ImpactReactor$FusionReactorEntity", "mindustry.world.blocks.power.ItemLiquidGenerator", "mindustry.world.blocks.power.ItemLiquidGenerator$ItemLiquidGeneratorEntity", "mindustry.world.blocks.power.LightBlock", "mindustry.world.blocks.power.LightBlock$LightEntity", "mindustry.world.blocks.power.NuclearReactor", "mindustry.world.blocks.power.NuclearReactor$NuclearReactorEntity", "mindustry.world.blocks.power.PowerDiode", "mindustry.world.blocks.power.PowerDistributor", "mindustry.world.blocks.power.PowerGenerator", "mindustry.world.blocks.power.PowerGenerator$GeneratorEntity", "mindustry.world.blocks.power.PowerGraph", "mindustry.world.blocks.power.PowerNode", "mindustry.world.blocks.power.SingleTypeGenerator", "mindustry.world.blocks.power.SolarGenerator", "mindustry.world.blocks.power.ThermalGenerator", "mindustry.world.blocks.production.Cultivator", "mindustry.world.blocks.production.Cultivator$CultivatorEntity", "mindustry.world.blocks.production.Drill", "mindustry.world.blocks.production.Drill$DrillEntity", "mindustry.world.blocks.production.Fracker", "mindustry.world.blocks.production.Fracker$FrackerEntity", "mindustry.world.blocks.production.GenericCrafter", "mindustry.world.blocks.production.GenericCrafter$GenericCrafterEntity", "mindustry.world.blocks.production.GenericSmelter", "mindustry.world.blocks.production.Incinerator", "mindustry.world.blocks.production.Incinerator$IncineratorEntity", "mindustry.world.blocks.production.LiquidConverter", "mindustry.world.blocks.production.Pump", "mindustry.world.blocks.production.Separator", "mindustry.world.blocks.production.SolidPump", "mindustry.world.blocks.production.SolidPump$SolidPumpEntity", "mindustry.world.blocks.sandbox.ItemSource", "mindustry.world.blocks.sandbox.ItemSource$ItemSourceEntity", "mindustry.world.blocks.sandbox.ItemVoid", "mindustry.world.blocks.sandbox.LiquidSource", "mindustry.world.blocks.sandbox.LiquidSource$LiquidSourceEntity", "mindustry.world.blocks.sandbox.PowerSource", "mindustry.world.blocks.sandbox.PowerVoid", "mindustry.world.blocks.storage.CoreBlock", "mindustry.world.blocks.storage.CoreBlock$CoreEntity", "mindustry.world.blocks.storage.LaunchPad", "mindustry.world.blocks.storage.StorageBlock", "mindustry.world.blocks.storage.StorageBlock$StorageBlockEntity", "mindustry.world.blocks.storage.Unloader", "mindustry.world.blocks.storage.Unloader$UnloaderEntity", "mindustry.world.blocks.storage.Vault", "mindustry.world.blocks.units.CommandCenter", "mindustry.world.blocks.units.CommandCenter$CommandCenterEntity", "mindustry.world.blocks.units.MechPad", "mindustry.world.blocks.units.MechPad$MechFactoryEntity", "mindustry.world.blocks.units.RallyPoint", "mindustry.world.blocks.units.RepairPoint", "mindustry.world.blocks.units.RepairPoint$RepairPointEntity", "mindustry.world.blocks.units.UnitFactory", "mindustry.world.blocks.units.UnitFactory$UnitFactoryEntity", "mindustry.world.consumers.Consume", "mindustry.world.consumers.ConsumeItemFilter", "mindustry.world.consumers.ConsumeItems", "mindustry.world.consumers.ConsumeLiquid", "mindustry.world.consumers.ConsumeLiquidBase", "mindustry.world.consumers.ConsumeLiquidFilter", "mindustry.world.consumers.ConsumePower", "mindustry.world.consumers.ConsumeType", "mindustry.world.consumers.Consumers", "mindustry.world.meta.Attribute", "mindustry.world.meta.BlockBars", "mindustry.world.meta.BlockFlag", "mindustry.world.meta.BlockGroup", "mindustry.world.meta.BlockStat", "mindustry.world.meta.BlockStats", "mindustry.world.meta.BuildVisibility", "mindustry.world.meta.PowerType", "mindustry.world.meta.Producers", "mindustry.world.meta.StatCategory", "mindustry.world.meta.StatUnit", "mindustry.world.meta.StatValue", "mindustry.world.meta.values.AmmoListValue", "mindustry.world.meta.values.BooleanValue", "mindustry.world.meta.values.BoosterListValue", "mindustry.world.meta.values.ItemFilterValue", "mindustry.world.meta.values.ItemListValue", "mindustry.world.meta.values.LiquidFilterValue", "mindustry.world.meta.values.LiquidValue", "mindustry.world.meta.values.NumberValue", "mindustry.world.meta.values.StringValue", "mindustry.world.modules.BlockModule", "mindustry.world.modules.ConsumeModule", "mindustry.world.modules.ItemModule", "mindustry.world.modules.ItemModule$ItemCalculator", "mindustry.world.modules.ItemModule$ItemConsumer", "mindustry.world.modules.LiquidModule", "mindustry.world.modules.LiquidModule$LiquidCalculator", "mindustry.world.modules.LiquidModule$LiquidConsumer", "mindustry.world.modules.PowerModule", "mindustry.world.producers.Produce", "mindustry.world.producers.ProduceItem");
+ public static final ObjectSet allowedClassNames = ObjectSet.with("arc.Core", "arc.func.Boolc", "arc.func.Boolf", "arc.func.Boolf2", "arc.func.Boolp", "arc.func.Cons", "arc.func.Cons2", "arc.func.Floatc", "arc.func.Floatc2", "arc.func.Floatc4", "arc.func.Floatf", "arc.func.Floatp", "arc.func.Func", "arc.func.Func2", "arc.func.Func3", "arc.func.Intc", "arc.func.Intc2", "arc.func.Intc4", "arc.func.Intf", "arc.func.Intp", "arc.func.Prov", "arc.graphics.Color", "arc.graphics.Pixmap", "arc.graphics.Texture", "arc.graphics.TextureData", "arc.graphics.g2d.Draw", "arc.graphics.g2d.Fill", "arc.graphics.g2d.Lines", "arc.graphics.g2d.TextureAtlas", "arc.graphics.g2d.TextureAtlas$AtlasRegion", "arc.graphics.g2d.TextureRegion", "arc.math.Affine2", "arc.math.Angles", "arc.math.Angles", "arc.math.Angles$ParticleConsumer", "arc.math.CumulativeDistribution", "arc.math.CumulativeDistribution$CumulativeValue", "arc.math.DelaunayTriangulator", "arc.math.EarClippingTriangulator", "arc.math.Extrapolator", "arc.math.FloatCounter", "arc.math.Interpolation", "arc.math.Interpolation$Bounce", "arc.math.Interpolation$BounceIn", "arc.math.Interpolation$BounceOut", "arc.math.Interpolation$Elastic", "arc.math.Interpolation$ElasticIn", "arc.math.Interpolation$ElasticOut", "arc.math.Interpolation$Exp", "arc.math.Interpolation$ExpIn", "arc.math.Interpolation$ExpOut", "arc.math.Interpolation$Pow", "arc.math.Interpolation$PowIn", "arc.math.Interpolation$PowOut", "arc.math.Interpolation$Swing", "arc.math.Interpolation$SwingIn", "arc.math.Interpolation$SwingOut", "arc.math.Mathf", "arc.math.Mathf", "arc.math.Matrix3", "arc.math.WindowedMean", "arc.math.geom.BSpline", "arc.math.geom.Bezier", "arc.math.geom.Bresenham2", "arc.math.geom.CatmullRomSpline", "arc.math.geom.Circle", "arc.math.geom.ConvexHull", "arc.math.geom.Ellipse", "arc.math.geom.FixedPosition", "arc.math.geom.Geometry", "arc.math.geom.Geometry$Raycaster", "arc.math.geom.Geometry$SolidChecker", "arc.math.geom.Intersector", "arc.math.geom.Intersector$MinimumTranslationVector", "arc.math.geom.Path", "arc.math.geom.Point2", "arc.math.geom.Point3", "arc.math.geom.Polygon", "arc.math.geom.Polyline", "arc.math.geom.Position", "arc.math.geom.QuadTree", "arc.math.geom.QuadTree$QuadTreeObject", "arc.math.geom.Rect", "arc.math.geom.Shape2D", "arc.math.geom.Spring1D", "arc.math.geom.Spring2D", "arc.math.geom.Vec2", "arc.math.geom.Vec3", "arc.math.geom.Vector", "arc.scene.Action", "arc.scene.Element", "arc.scene.Group", "arc.scene.Scene", "arc.scene.actions.Actions", "arc.scene.actions.AddAction", "arc.scene.actions.AddListenerAction", "arc.scene.actions.AfterAction", "arc.scene.actions.AlphaAction", "arc.scene.actions.ColorAction", "arc.scene.actions.DelayAction", "arc.scene.actions.DelegateAction", "arc.scene.actions.FloatAction", "arc.scene.actions.IntAction", "arc.scene.actions.LayoutAction", "arc.scene.actions.MoveByAction", "arc.scene.actions.MoveToAction", "arc.scene.actions.OriginAction", "arc.scene.actions.ParallelAction", "arc.scene.actions.RelativeTemporalAction", "arc.scene.actions.RemoveAction", "arc.scene.actions.RemoveActorAction", "arc.scene.actions.RemoveListenerAction", "arc.scene.actions.RepeatAction", "arc.scene.actions.RotateByAction", "arc.scene.actions.RotateToAction", "arc.scene.actions.RunnableAction", "arc.scene.actions.ScaleByAction", "arc.scene.actions.ScaleToAction", "arc.scene.actions.SequenceAction", "arc.scene.actions.SizeByAction", "arc.scene.actions.SizeToAction", "arc.scene.actions.TemporalAction", "arc.scene.actions.TimeScaleAction", "arc.scene.actions.TouchableAction", "arc.scene.actions.TranslateByAction", "arc.scene.actions.VisibleAction", "arc.scene.event.ChangeListener", "arc.scene.event.ChangeListener$ChangeEvent", "arc.scene.event.ClickListener", "arc.scene.event.DragListener", "arc.scene.event.DragScrollListener", "arc.scene.event.ElementGestureListener", "arc.scene.event.EventListener", "arc.scene.event.FocusListener", "arc.scene.event.FocusListener$FocusEvent", "arc.scene.event.FocusListener$FocusEvent$Type", "arc.scene.event.HandCursorListener", "arc.scene.event.IbeamCursorListener", "arc.scene.event.InputEvent", "arc.scene.event.InputEvent$Type", "arc.scene.event.InputListener", "arc.scene.event.SceneEvent", "arc.scene.event.Touchable", "arc.scene.event.VisibilityEvent", "arc.scene.event.VisibilityListener", "arc.scene.style.BaseDrawable", "arc.scene.style.Drawable", "arc.scene.style.NinePatchDrawable", "arc.scene.style.ScaledNinePatchDrawable", "arc.scene.style.Style", "arc.scene.style.TextureRegionDrawable", "arc.scene.style.TiledDrawable", "arc.scene.style.TransformDrawable", "arc.scene.ui.Button", "arc.scene.ui.Button$ButtonStyle", "arc.scene.ui.ButtonGroup", "arc.scene.ui.CheckBox", "arc.scene.ui.CheckBox$CheckBoxStyle", "arc.scene.ui.ColorImage", "arc.scene.ui.Dialog", "arc.scene.ui.Dialog$DialogStyle", "arc.scene.ui.Image", "arc.scene.ui.ImageButton", "arc.scene.ui.ImageButton$ImageButtonStyle", "arc.scene.ui.KeybindDialog", "arc.scene.ui.KeybindDialog$KeybindDialogStyle", "arc.scene.ui.Label", "arc.scene.ui.Label$LabelStyle", "arc.scene.ui.ProgressBar", "arc.scene.ui.ProgressBar$ProgressBarStyle", "arc.scene.ui.ScrollPane", "arc.scene.ui.ScrollPane$ScrollPaneStyle", "arc.scene.ui.SettingsDialog", "arc.scene.ui.SettingsDialog$SettingsTable", "arc.scene.ui.SettingsDialog$SettingsTable$CheckSetting", "arc.scene.ui.SettingsDialog$SettingsTable$Setting", "arc.scene.ui.SettingsDialog$SettingsTable$SliderSetting", "arc.scene.ui.SettingsDialog$StringProcessor", "arc.scene.ui.Slider", "arc.scene.ui.Slider$SliderStyle", "arc.scene.ui.TextArea", "arc.scene.ui.TextArea$TextAreaListener", "arc.scene.ui.TextButton", "arc.scene.ui.TextButton$TextButtonStyle", "arc.scene.ui.TextField", "arc.scene.ui.TextField$DefaultOnscreenKeyboard", "arc.scene.ui.TextField$OnscreenKeyboard", "arc.scene.ui.TextField$TextFieldClickListener", "arc.scene.ui.TextField$TextFieldFilter", "arc.scene.ui.TextField$TextFieldListener", "arc.scene.ui.TextField$TextFieldStyle", "arc.scene.ui.TextField$TextFieldValidator", "arc.scene.ui.Tooltip", "arc.scene.ui.Tooltip$Tooltips", "arc.scene.ui.Touchpad", "arc.scene.ui.Touchpad$TouchpadStyle", "arc.scene.ui.TreeElement", "arc.scene.ui.TreeElement$Node", "arc.scene.ui.TreeElement$TreeStyle", "arc.scene.ui.layout.Cell", "arc.scene.ui.layout.Collapser", "arc.scene.ui.layout.HorizontalGroup", "arc.scene.ui.layout.Scl", "arc.scene.ui.layout.Stack", "arc.scene.ui.layout.Table", "arc.scene.ui.layout.Table$DrawRect", "arc.scene.ui.layout.VerticalGroup", "arc.scene.ui.layout.WidgetGroup", "arc.scene.utils.ArraySelection", "arc.scene.utils.Cullable", "arc.scene.utils.Disableable", "arc.scene.utils.DragAndDrop", "arc.scene.utils.DragAndDrop$Payload", "arc.scene.utils.DragAndDrop$Source", "arc.scene.utils.DragAndDrop$Target", "arc.scene.utils.Elements", "arc.scene.utils.Layout", "arc.scene.utils.Selection", "arc.struct.Array", "arc.struct.Array$ArrayIterable", "arc.struct.ArrayMap", "arc.struct.ArrayMap$Entries", "arc.struct.ArrayMap$Keys", "arc.struct.ArrayMap$Values", "arc.struct.AtomicQueue", "arc.struct.BinaryHeap", "arc.struct.BinaryHeap$Node", "arc.struct.Bits", "arc.struct.BooleanArray", "arc.struct.ByteArray", "arc.struct.CharArray", "arc.struct.ComparableTimSort", "arc.struct.DelayedRemovalArray", "arc.struct.EnumSet", "arc.struct.EnumSet$EnumSetIterator", "arc.struct.FloatArray", "arc.struct.GridBits", "arc.struct.GridMap", "arc.struct.IdentityMap", "arc.struct.IdentityMap$Entries", "arc.struct.IdentityMap$Entry", "arc.struct.IdentityMap$Keys", "arc.struct.IdentityMap$Values", "arc.struct.IntArray", "arc.struct.IntFloatMap", "arc.struct.IntFloatMap$Entries", "arc.struct.IntFloatMap$Entry", "arc.struct.IntFloatMap$Keys", "arc.struct.IntFloatMap$Values", "arc.struct.IntIntMap", "arc.struct.IntIntMap$Entries", "arc.struct.IntIntMap$Entry", "arc.struct.IntIntMap$Keys", "arc.struct.IntIntMap$Values", "arc.struct.IntMap", "arc.struct.IntMap$Entries", "arc.struct.IntMap$Entry", "arc.struct.IntMap$Keys", "arc.struct.IntMap$Values", "arc.struct.IntQueue", "arc.struct.IntSet", "arc.struct.IntSet$IntSetIterator", "arc.struct.LongArray", "arc.struct.LongMap", "arc.struct.LongMap$Entries", "arc.struct.LongMap$Entry", "arc.struct.LongMap$Keys", "arc.struct.LongMap$Values", "arc.struct.LongQueue", "arc.struct.ObjectFloatMap", "arc.struct.ObjectFloatMap$Entries", "arc.struct.ObjectFloatMap$Entry", "arc.struct.ObjectFloatMap$Keys", "arc.struct.ObjectFloatMap$Values", "arc.struct.ObjectIntMap", "arc.struct.ObjectIntMap$Entries", "arc.struct.ObjectIntMap$Entry", "arc.struct.ObjectIntMap$Keys", "arc.struct.ObjectIntMap$Values", "arc.struct.ObjectMap", "arc.struct.ObjectMap$Entries", "arc.struct.ObjectMap$Entry", "arc.struct.ObjectMap$Keys", "arc.struct.ObjectMap$Values", "arc.struct.ObjectSet", "arc.struct.ObjectSet$ObjectSetIterator", "arc.struct.OrderedMap", "arc.struct.OrderedMap$OrderedMapEntries", "arc.struct.OrderedMap$OrderedMapKeys", "arc.struct.OrderedMap$OrderedMapValues", "arc.struct.OrderedSet", "arc.struct.OrderedSet$OrderedSetIterator", "arc.struct.PooledLinkedList", "arc.struct.PooledLinkedList$Item", "arc.struct.Queue", "arc.struct.Queue$QueueIterable", "arc.struct.ShortArray", "arc.struct.SnapshotArray", "arc.struct.Sort", "arc.struct.SortedIntList", "arc.struct.SortedIntList$Iterator", "arc.struct.SortedIntList$Node", "arc.struct.StringMap", "arc.struct.TimSort", "arc.util.I18NBundle", "arc.util.Interval", "arc.util.Time", "java.io.DataInput", "java.io.DataInputStream", "java.io.DataOutput", "java.io.DataOutputStream", "java.io.PrintStream", "java.lang.Boolean", "java.lang.Byte", "java.lang.Character", "java.lang.Double", "java.lang.Float", "java.lang.Integer", "java.lang.Long", "java.lang.Object", "java.lang.Runnable", "java.lang.Short", "java.lang.String", "java.lang.System", "mindustry.Vars", "mindustry.ai.BlockIndexer", "mindustry.ai.Pathfinder", "mindustry.ai.Pathfinder$PathData", "mindustry.ai.Pathfinder$PathTarget", "mindustry.ai.Pathfinder$PathTileStruct", "mindustry.ai.WaveSpawner", "mindustry.content.Blocks", "mindustry.content.Bullets", "mindustry.content.Fx", "mindustry.content.Items", "mindustry.content.Liquids", "mindustry.content.Loadouts", "mindustry.content.Mechs", "mindustry.content.StatusEffects", "mindustry.content.TechTree", "mindustry.content.TechTree$TechNode", "mindustry.content.TypeIDs", "mindustry.content.UnitTypes", "mindustry.content.Zones", "mindustry.core.ContentLoader", "mindustry.core.Control", "mindustry.core.FileTree", "mindustry.core.GameState", "mindustry.core.GameState$State", "mindustry.core.Logic", "mindustry.core.NetServer$TeamAssigner", "mindustry.core.Platform", "mindustry.core.Renderer", "mindustry.core.UI", "mindustry.core.Version", "mindustry.core.World", "mindustry.core.World$Raycaster", "mindustry.ctype.Content", "mindustry.ctype.Content$ModContentInfo", "mindustry.ctype.ContentList", "mindustry.ctype.ContentType", "mindustry.ctype.MappableContent", "mindustry.ctype.UnlockableContent", "mindustry.editor.DrawOperation", "mindustry.editor.DrawOperation$OpType", "mindustry.editor.DrawOperation$TileOpStruct", "mindustry.editor.EditorTile", "mindustry.editor.EditorTool", "mindustry.editor.MapEditor", "mindustry.editor.MapEditor$Context", "mindustry.editor.MapEditorDialog", "mindustry.editor.MapGenerateDialog", "mindustry.editor.MapInfoDialog", "mindustry.editor.MapLoadDialog", "mindustry.editor.MapRenderer", "mindustry.editor.MapResizeDialog", "mindustry.editor.MapSaveDialog", "mindustry.editor.MapView", "mindustry.editor.OperationStack", "mindustry.editor.WaveInfoDialog", "mindustry.entities.Damage", "mindustry.entities.Damage$PropCellStruct", "mindustry.entities.Effects", "mindustry.entities.Effects$Effect", "mindustry.entities.Effects$EffectContainer", "mindustry.entities.Effects$EffectProvider", "mindustry.entities.Effects$EffectRenderer", "mindustry.entities.Effects$ScreenshakeProvider", "mindustry.entities.Entities", "mindustry.entities.EntityCollisions", "mindustry.entities.EntityGroup", "mindustry.entities.Predict", "mindustry.entities.TargetPriority", "mindustry.entities.Units", "mindustry.entities.bullet.ArtilleryBulletType", "mindustry.entities.bullet.BasicBulletType", "mindustry.entities.bullet.BombBulletType", "mindustry.entities.bullet.BulletType", "mindustry.entities.bullet.FlakBulletType", "mindustry.entities.bullet.HealBulletType", "mindustry.entities.bullet.LiquidBulletType", "mindustry.entities.bullet.MassDriverBolt", "mindustry.entities.bullet.MissileBulletType", "mindustry.entities.effect.Decal", "mindustry.entities.effect.Fire", "mindustry.entities.effect.GroundEffectEntity", "mindustry.entities.effect.GroundEffectEntity$GroundEffect", "mindustry.entities.effect.ItemTransfer", "mindustry.entities.effect.Lightning", "mindustry.entities.effect.Puddle", "mindustry.entities.effect.RubbleDecal", "mindustry.entities.effect.ScorchDecal", "mindustry.entities.traits.AbsorbTrait", "mindustry.entities.traits.BelowLiquidTrait", "mindustry.entities.traits.BuilderMinerTrait", "mindustry.entities.traits.BuilderTrait", "mindustry.entities.traits.BuilderTrait$BuildDataStatic", "mindustry.entities.traits.BuilderTrait$BuildRequest", "mindustry.entities.traits.DamageTrait", "mindustry.entities.traits.DrawTrait", "mindustry.entities.traits.Entity", "mindustry.entities.traits.HealthTrait", "mindustry.entities.traits.KillerTrait", "mindustry.entities.traits.MinerTrait", "mindustry.entities.traits.MoveTrait", "mindustry.entities.traits.SaveTrait", "mindustry.entities.traits.Saveable", "mindustry.entities.traits.ScaleTrait", "mindustry.entities.traits.ShooterTrait", "mindustry.entities.traits.SolidTrait", "mindustry.entities.traits.SpawnerTrait", "mindustry.entities.traits.SyncTrait", "mindustry.entities.traits.TargetTrait", "mindustry.entities.traits.TeamTrait", "mindustry.entities.traits.TimeTrait", "mindustry.entities.traits.TypeTrait", "mindustry.entities.traits.VelocityTrait", "mindustry.entities.type.BaseEntity", "mindustry.entities.type.BaseUnit", "mindustry.entities.type.Bullet", "mindustry.entities.type.DestructibleEntity", "mindustry.entities.type.EffectEntity", "mindustry.entities.type.Player", "mindustry.entities.type.SolidEntity", "mindustry.entities.type.TileEntity", "mindustry.entities.type.TimedEntity", "mindustry.entities.type.Unit", "mindustry.entities.type.base.BaseDrone", "mindustry.entities.type.base.BuilderDrone", "mindustry.entities.type.base.FlyingUnit", "mindustry.entities.type.base.GroundUnit", "mindustry.entities.type.base.HoverUnit", "mindustry.entities.type.base.MinerDrone", "mindustry.entities.type.base.RepairDrone", "mindustry.entities.units.StateMachine", "mindustry.entities.units.Statuses", "mindustry.entities.units.Statuses$StatusEntry", "mindustry.entities.units.UnitCommand", "mindustry.entities.units.UnitDrops", "mindustry.entities.units.UnitState", "mindustry.game.DefaultWaves", "mindustry.game.Difficulty", "mindustry.game.EventType", "mindustry.game.EventType$BlockBuildBeginEvent", "mindustry.game.EventType$BlockBuildEndEvent", "mindustry.game.EventType$BlockDestroyEvent", "mindustry.game.EventType$BlockInfoEvent", "mindustry.game.EventType$BuildSelectEvent", "mindustry.game.EventType$ClientLoadEvent", "mindustry.game.EventType$CommandIssueEvent", "mindustry.game.EventType$ContentReloadEvent", "mindustry.game.EventType$CoreItemDeliverEvent", "mindustry.game.EventType$DepositEvent", "mindustry.game.EventType$DisposeEvent", "mindustry.game.EventType$GameOverEvent", "mindustry.game.EventType$LaunchEvent", "mindustry.game.EventType$LaunchItemEvent", "mindustry.game.EventType$LineConfirmEvent", "mindustry.game.EventType$LoseEvent", "mindustry.game.EventType$MapMakeEvent", "mindustry.game.EventType$MapPublishEvent", "mindustry.game.EventType$MechChangeEvent", "mindustry.game.EventType$PlayEvent", "mindustry.game.EventType$PlayerBanEvent", "mindustry.game.EventType$PlayerChatEvent", "mindustry.game.EventType$PlayerConnect", "mindustry.game.EventType$PlayerIpBanEvent", "mindustry.game.EventType$PlayerIpUnbanEvent", "mindustry.game.EventType$PlayerJoin", "mindustry.game.EventType$PlayerLeave", "mindustry.game.EventType$PlayerUnbanEvent", "mindustry.game.EventType$ResearchEvent", "mindustry.game.EventType$ResetEvent", "mindustry.game.EventType$ResizeEvent", "mindustry.game.EventType$ServerLoadEvent", "mindustry.game.EventType$StateChangeEvent", "mindustry.game.EventType$TapConfigEvent", "mindustry.game.EventType$TapEvent", "mindustry.game.EventType$TileChangeEvent", "mindustry.game.EventType$Trigger", "mindustry.game.EventType$TurretAmmoDeliverEvent", "mindustry.game.EventType$UnitCreateEvent", "mindustry.game.EventType$UnitDestroyEvent", "mindustry.game.EventType$UnlockEvent", "mindustry.game.EventType$WaveEvent", "mindustry.game.EventType$WinEvent", "mindustry.game.EventType$WithdrawEvent", "mindustry.game.EventType$WorldLoadEvent", "mindustry.game.EventType$ZoneConfigureCompleteEvent", "mindustry.game.EventType$ZoneRequireCompleteEvent", "mindustry.game.Gamemode", "mindustry.game.GlobalData", "mindustry.game.LoopControl", "mindustry.game.MusicControl", "mindustry.game.Objective", "mindustry.game.Objectives", "mindustry.game.Objectives$Launched", "mindustry.game.Objectives$Unlock", "mindustry.game.Objectives$Wave", "mindustry.game.Objectives$ZoneObjective", "mindustry.game.Objectives$ZoneWave", "mindustry.game.Rules", "mindustry.game.Saves", "mindustry.game.Saves$SaveSlot", "mindustry.game.Schematic", "mindustry.game.Schematic$Stile", "mindustry.game.Schematics", "mindustry.game.SoundLoop", "mindustry.game.SpawnGroup", "mindustry.game.Stats", "mindustry.game.Stats$Rank", "mindustry.game.Stats$RankResult", "mindustry.game.Team", "mindustry.game.Teams", "mindustry.game.Teams$BrokenBlock", "mindustry.game.Teams$TeamData", "mindustry.game.Tutorial", "mindustry.game.Tutorial$TutorialStage", "mindustry.gen.BufferItem", "mindustry.gen.Call", "mindustry.gen.Call", "mindustry.gen.Icon", "mindustry.gen.Icon", "mindustry.gen.MethodHash", "mindustry.gen.Musics", "mindustry.gen.Musics", "mindustry.gen.PathTile", "mindustry.gen.PropCell", "mindustry.gen.RemoteReadClient", "mindustry.gen.RemoteReadServer", "mindustry.gen.Serialization", "mindustry.gen.Sounds", "mindustry.gen.Sounds", "mindustry.gen.Tex", "mindustry.gen.Tex", "mindustry.gen.TileOp", "mindustry.graphics.BlockRenderer", "mindustry.graphics.Bloom", "mindustry.graphics.CacheLayer", "mindustry.graphics.Drawf", "mindustry.graphics.FloorRenderer", "mindustry.graphics.IndexedRenderer", "mindustry.graphics.Layer", "mindustry.graphics.LightRenderer", "mindustry.graphics.MenuRenderer", "mindustry.graphics.MinimapRenderer", "mindustry.graphics.MultiPacker", "mindustry.graphics.MultiPacker$PageType", "mindustry.graphics.OverlayRenderer", "mindustry.graphics.Pal", "mindustry.graphics.Pixelator", "mindustry.graphics.Shaders", "mindustry.input.Binding", "mindustry.input.DesktopInput", "mindustry.input.InputHandler", "mindustry.input.InputHandler$PlaceLine", "mindustry.input.MobileInput", "mindustry.input.PlaceMode", "mindustry.input.Placement", "mindustry.input.Placement$DistanceHeuristic", "mindustry.input.Placement$NormalizeDrawResult", "mindustry.input.Placement$NormalizeResult", "mindustry.input.Placement$TileHueristic", "mindustry.maps.Map", "mindustry.maps.Maps", "mindustry.maps.Maps$MapProvider", "mindustry.maps.Maps$ShuffleMode", "mindustry.maps.Maps$ShuffleMode", "mindustry.maps.filters.BlendFilter", "mindustry.maps.filters.ClearFilter", "mindustry.maps.filters.DistortFilter", "mindustry.maps.filters.FilterOption", "mindustry.maps.filters.FilterOption$BlockOption", "mindustry.maps.filters.FilterOption$SliderOption", "mindustry.maps.filters.GenerateFilter", "mindustry.maps.filters.GenerateFilter$GenerateInput", "mindustry.maps.filters.GenerateFilter$GenerateInput$TileProvider", "mindustry.maps.filters.MedianFilter", "mindustry.maps.filters.MirrorFilter", "mindustry.maps.filters.NoiseFilter", "mindustry.maps.filters.OreFilter", "mindustry.maps.filters.OreMedianFilter", "mindustry.maps.filters.RiverNoiseFilter", "mindustry.maps.filters.ScatterFilter", "mindustry.maps.filters.TerrainFilter", "mindustry.maps.generators.BasicGenerator", "mindustry.maps.generators.BasicGenerator$DistanceHeuristic", "mindustry.maps.generators.BasicGenerator$TileHueristic", "mindustry.maps.generators.Generator", "mindustry.maps.generators.MapGenerator", "mindustry.maps.generators.MapGenerator$Decoration", "mindustry.maps.generators.RandomGenerator", "mindustry.maps.zonegen.DesertWastesGenerator", "mindustry.maps.zonegen.OvergrowthGenerator", "mindustry.type.Category", "mindustry.type.ErrorContent", "mindustry.type.Item", "mindustry.type.ItemStack", "mindustry.type.ItemType", "mindustry.type.Liquid", "mindustry.type.LiquidStack", "mindustry.type.Mech", "mindustry.type.Publishable", "mindustry.type.StatusEffect", "mindustry.type.StatusEffect$TransitionHandler", "mindustry.type.TypeID", "mindustry.type.UnitType", "mindustry.type.Weapon", "mindustry.type.WeatherEvent", "mindustry.type.Zone", "mindustry.ui.Bar", "mindustry.ui.BorderImage", "mindustry.ui.Cicon", "mindustry.ui.ContentDisplay", "mindustry.ui.Fonts", "mindustry.ui.GridImage", "mindustry.ui.IconSize", "mindustry.ui.IntFormat", "mindustry.ui.ItemDisplay", "mindustry.ui.ItemImage", "mindustry.ui.ItemsDisplay", "mindustry.ui.Links", "mindustry.ui.Links$LinkEntry", "mindustry.ui.LiquidDisplay", "mindustry.ui.Minimap", "mindustry.ui.MobileButton", "mindustry.ui.MultiReqImage", "mindustry.ui.ReqImage", "mindustry.ui.Styles", "mindustry.ui.dialogs.AboutDialog", "mindustry.ui.dialogs.AdminsDialog", "mindustry.ui.dialogs.BansDialog", "mindustry.ui.dialogs.ColorPicker", "mindustry.ui.dialogs.ContentInfoDialog", "mindustry.ui.dialogs.ControlsDialog", "mindustry.ui.dialogs.CustomGameDialog", "mindustry.ui.dialogs.CustomRulesDialog", "mindustry.ui.dialogs.DatabaseDialog", "mindustry.ui.dialogs.DeployDialog", "mindustry.ui.dialogs.DeployDialog$View", "mindustry.ui.dialogs.DeployDialog$ZoneNode", "mindustry.ui.dialogs.DiscordDialog", "mindustry.ui.dialogs.FileChooser", "mindustry.ui.dialogs.FileChooser$FileHistory", "mindustry.ui.dialogs.FloatingDialog", "mindustry.ui.dialogs.GameOverDialog", "mindustry.ui.dialogs.HostDialog", "mindustry.ui.dialogs.JoinDialog", "mindustry.ui.dialogs.JoinDialog$Server", "mindustry.ui.dialogs.LanguageDialog", "mindustry.ui.dialogs.LoadDialog", "mindustry.ui.dialogs.LoadoutDialog", "mindustry.ui.dialogs.MapPlayDialog", "mindustry.ui.dialogs.MapsDialog", "mindustry.ui.dialogs.MinimapDialog", "mindustry.ui.dialogs.ModsDialog", "mindustry.ui.dialogs.PaletteDialog", "mindustry.ui.dialogs.PausedDialog", "mindustry.ui.dialogs.SaveDialog", "mindustry.ui.dialogs.SchematicsDialog", "mindustry.ui.dialogs.SchematicsDialog$SchematicImage", "mindustry.ui.dialogs.SchematicsDialog$SchematicInfoDialog", "mindustry.ui.dialogs.SettingsMenuDialog", "mindustry.ui.dialogs.TechTreeDialog", "mindustry.ui.dialogs.TechTreeDialog$LayoutNode", "mindustry.ui.dialogs.TechTreeDialog$TechTreeNode", "mindustry.ui.dialogs.TechTreeDialog$View", "mindustry.ui.dialogs.TraceDialog", "mindustry.ui.dialogs.ZoneInfoDialog", "mindustry.ui.fragments.BlockConfigFragment", "mindustry.ui.fragments.BlockInventoryFragment", "mindustry.ui.fragments.ChatFragment", "mindustry.ui.fragments.FadeInFragment", "mindustry.ui.fragments.Fragment", "mindustry.ui.fragments.HudFragment", "mindustry.ui.fragments.LoadingFragment", "mindustry.ui.fragments.MenuFragment", "mindustry.ui.fragments.MinimapFragment", "mindustry.ui.fragments.OverlayFragment", "mindustry.ui.fragments.PlacementFragment", "mindustry.ui.fragments.PlayerListFragment", "mindustry.ui.fragments.ScriptConsoleFragment", "mindustry.ui.layout.BranchTreeLayout", "mindustry.ui.layout.BranchTreeLayout$TreeAlignment", "mindustry.ui.layout.BranchTreeLayout$TreeLocation", "mindustry.ui.layout.RadialTreeLayout", "mindustry.ui.layout.TreeLayout", "mindustry.ui.layout.TreeLayout$TreeNode", "mindustry.world.Block", "mindustry.world.BlockStorage", "mindustry.world.Build", "mindustry.world.CachedTile", "mindustry.world.DirectionalItemBuffer", "mindustry.world.DirectionalItemBuffer$BufferItemStruct", "mindustry.world.Edges", "mindustry.world.ItemBuffer", "mindustry.world.LegacyColorMapper", "mindustry.world.LegacyColorMapper$LegacyBlock", "mindustry.world.Pos", "mindustry.world.StaticTree", "mindustry.world.Tile", "mindustry.world.WorldContext", "mindustry.world.blocks.Attributes", "mindustry.world.blocks.Autotiler", "mindustry.world.blocks.Autotiler$AutotilerHolder", "mindustry.world.blocks.BlockPart", "mindustry.world.blocks.BuildBlock", "mindustry.world.blocks.BuildBlock$BuildEntity", "mindustry.world.blocks.DoubleOverlayFloor", "mindustry.world.blocks.Floor", "mindustry.world.blocks.ItemSelection", "mindustry.world.blocks.LiquidBlock", "mindustry.world.blocks.OreBlock", "mindustry.world.blocks.OverlayFloor", "mindustry.world.blocks.PowerBlock", "mindustry.world.blocks.RespawnBlock", "mindustry.world.blocks.Rock", "mindustry.world.blocks.StaticWall", "mindustry.world.blocks.TreeBlock", "mindustry.world.blocks.defense.DeflectorWall", "mindustry.world.blocks.defense.DeflectorWall$DeflectorEntity", "mindustry.world.blocks.defense.Door", "mindustry.world.blocks.defense.Door$DoorEntity", "mindustry.world.blocks.defense.ForceProjector", "mindustry.world.blocks.defense.ForceProjector$ForceEntity", "mindustry.world.blocks.defense.ForceProjector$ShieldEntity", "mindustry.world.blocks.defense.MendProjector", "mindustry.world.blocks.defense.MendProjector$MendEntity", "mindustry.world.blocks.defense.OverdriveProjector", "mindustry.world.blocks.defense.OverdriveProjector$OverdriveEntity", "mindustry.world.blocks.defense.ShockMine", "mindustry.world.blocks.defense.SurgeWall", "mindustry.world.blocks.defense.Wall", "mindustry.world.blocks.defense.turrets.ArtilleryTurret", "mindustry.world.blocks.defense.turrets.BurstTurret", "mindustry.world.blocks.defense.turrets.ChargeTurret", "mindustry.world.blocks.defense.turrets.ChargeTurret$LaserTurretEntity", "mindustry.world.blocks.defense.turrets.CooledTurret", "mindustry.world.blocks.defense.turrets.DoubleTurret", "mindustry.world.blocks.defense.turrets.ItemTurret", "mindustry.world.blocks.defense.turrets.ItemTurret$ItemEntry", "mindustry.world.blocks.defense.turrets.ItemTurret$ItemTurretEntity", "mindustry.world.blocks.defense.turrets.LaserTurret", "mindustry.world.blocks.defense.turrets.LaserTurret$LaserTurretEntity", "mindustry.world.blocks.defense.turrets.LiquidTurret", "mindustry.world.blocks.defense.turrets.PowerTurret", "mindustry.world.blocks.defense.turrets.Turret", "mindustry.world.blocks.defense.turrets.Turret$AmmoEntry", "mindustry.world.blocks.defense.turrets.Turret$TurretEntity", "mindustry.world.blocks.distribution.ArmoredConveyor", "mindustry.world.blocks.distribution.BufferedItemBridge", "mindustry.world.blocks.distribution.BufferedItemBridge$BufferedItemBridgeEntity", "mindustry.world.blocks.distribution.Conveyor", "mindustry.world.blocks.distribution.Conveyor$ConveyorEntity", "mindustry.world.blocks.distribution.Conveyor$ItemPos", "mindustry.world.blocks.distribution.ExtendingItemBridge", "mindustry.world.blocks.distribution.ItemBridge", "mindustry.world.blocks.distribution.ItemBridge$ItemBridgeEntity", "mindustry.world.blocks.distribution.Junction", "mindustry.world.blocks.distribution.Junction$JunctionEntity", "mindustry.world.blocks.distribution.MassDriver", "mindustry.world.blocks.distribution.MassDriver$DriverBulletData", "mindustry.world.blocks.distribution.MassDriver$DriverState", "mindustry.world.blocks.distribution.MassDriver$MassDriverEntity", "mindustry.world.blocks.distribution.OverflowGate", "mindustry.world.blocks.distribution.OverflowGate$OverflowGateEntity", "mindustry.world.blocks.distribution.Router", "mindustry.world.blocks.distribution.Router$RouterEntity", "mindustry.world.blocks.distribution.Sorter", "mindustry.world.blocks.distribution.Sorter$SorterEntity", "mindustry.world.blocks.liquid.ArmoredConduit", "mindustry.world.blocks.liquid.Conduit", "mindustry.world.blocks.liquid.Conduit$ConduitEntity", "mindustry.world.blocks.liquid.LiquidBridge", "mindustry.world.blocks.liquid.LiquidExtendingBridge", "mindustry.world.blocks.liquid.LiquidJunction", "mindustry.world.blocks.liquid.LiquidOverflowGate", "mindustry.world.blocks.liquid.LiquidRouter", "mindustry.world.blocks.liquid.LiquidTank", "mindustry.world.blocks.logic.LogicBlock", "mindustry.world.blocks.logic.MessageBlock", "mindustry.world.blocks.logic.MessageBlock$MessageBlockEntity", "mindustry.world.blocks.power.Battery", "mindustry.world.blocks.power.BurnerGenerator", "mindustry.world.blocks.power.ConditionalConsumePower", "mindustry.world.blocks.power.DecayGenerator", "mindustry.world.blocks.power.ImpactReactor", "mindustry.world.blocks.power.ImpactReactor$FusionReactorEntity", "mindustry.world.blocks.power.ItemLiquidGenerator", "mindustry.world.blocks.power.ItemLiquidGenerator$ItemLiquidGeneratorEntity", "mindustry.world.blocks.power.LightBlock", "mindustry.world.blocks.power.LightBlock$LightEntity", "mindustry.world.blocks.power.NuclearReactor", "mindustry.world.blocks.power.NuclearReactor$NuclearReactorEntity", "mindustry.world.blocks.power.PowerDiode", "mindustry.world.blocks.power.PowerDistributor", "mindustry.world.blocks.power.PowerGenerator", "mindustry.world.blocks.power.PowerGenerator$GeneratorEntity", "mindustry.world.blocks.power.PowerGraph", "mindustry.world.blocks.power.PowerNode", "mindustry.world.blocks.power.SingleTypeGenerator", "mindustry.world.blocks.power.SolarGenerator", "mindustry.world.blocks.power.ThermalGenerator", "mindustry.world.blocks.production.Cultivator", "mindustry.world.blocks.production.Cultivator$CultivatorEntity", "mindustry.world.blocks.production.Drill", "mindustry.world.blocks.production.Drill$DrillEntity", "mindustry.world.blocks.production.Fracker", "mindustry.world.blocks.production.Fracker$FrackerEntity", "mindustry.world.blocks.production.GenericCrafter", "mindustry.world.blocks.production.GenericCrafter$GenericCrafterEntity", "mindustry.world.blocks.production.GenericSmelter", "mindustry.world.blocks.production.Incinerator", "mindustry.world.blocks.production.Incinerator$IncineratorEntity", "mindustry.world.blocks.production.LiquidConverter", "mindustry.world.blocks.production.Pump", "mindustry.world.blocks.production.Separator", "mindustry.world.blocks.production.SolidPump", "mindustry.world.blocks.production.SolidPump$SolidPumpEntity", "mindustry.world.blocks.sandbox.ItemSource", "mindustry.world.blocks.sandbox.ItemSource$ItemSourceEntity", "mindustry.world.blocks.sandbox.ItemVoid", "mindustry.world.blocks.sandbox.LiquidSource", "mindustry.world.blocks.sandbox.LiquidSource$LiquidSourceEntity", "mindustry.world.blocks.sandbox.PowerSource", "mindustry.world.blocks.sandbox.PowerVoid", "mindustry.world.blocks.storage.CoreBlock", "mindustry.world.blocks.storage.CoreBlock$CoreEntity", "mindustry.world.blocks.storage.LaunchPad", "mindustry.world.blocks.storage.StorageBlock", "mindustry.world.blocks.storage.StorageBlock$StorageBlockEntity", "mindustry.world.blocks.storage.Unloader", "mindustry.world.blocks.storage.Unloader$UnloaderEntity", "mindustry.world.blocks.storage.Vault", "mindustry.world.blocks.units.CommandCenter", "mindustry.world.blocks.units.CommandCenter$CommandCenterEntity", "mindustry.world.blocks.units.MechPad", "mindustry.world.blocks.units.MechPad$MechFactoryEntity", "mindustry.world.blocks.units.RallyPoint", "mindustry.world.blocks.units.RepairPoint", "mindustry.world.blocks.units.RepairPoint$RepairPointEntity", "mindustry.world.blocks.units.UnitFactory", "mindustry.world.blocks.units.UnitFactory$UnitFactoryEntity", "mindustry.world.consumers.Consume", "mindustry.world.consumers.ConsumeItemFilter", "mindustry.world.consumers.ConsumeItems", "mindustry.world.consumers.ConsumeLiquid", "mindustry.world.consumers.ConsumeLiquidBase", "mindustry.world.consumers.ConsumeLiquidFilter", "mindustry.world.consumers.ConsumePower", "mindustry.world.consumers.ConsumeType", "mindustry.world.consumers.Consumers", "mindustry.world.meta.Attribute", "mindustry.world.meta.BlockBars", "mindustry.world.meta.BlockFlag", "mindustry.world.meta.BlockGroup", "mindustry.world.meta.BlockStat", "mindustry.world.meta.BlockStats", "mindustry.world.meta.BuildVisibility", "mindustry.world.meta.PowerType", "mindustry.world.meta.Producers", "mindustry.world.meta.StatCategory", "mindustry.world.meta.StatUnit", "mindustry.world.meta.StatValue", "mindustry.world.meta.values.AmmoListValue", "mindustry.world.meta.values.BooleanValue", "mindustry.world.meta.values.BoosterListValue", "mindustry.world.meta.values.ItemFilterValue", "mindustry.world.meta.values.ItemListValue", "mindustry.world.meta.values.LiquidFilterValue", "mindustry.world.meta.values.LiquidValue", "mindustry.world.meta.values.NumberValue", "mindustry.world.meta.values.StringValue", "mindustry.world.modules.BlockModule", "mindustry.world.modules.ConsumeModule", "mindustry.world.modules.ItemModule", "mindustry.world.modules.ItemModule$ItemCalculator", "mindustry.world.modules.ItemModule$ItemConsumer", "mindustry.world.modules.LiquidModule", "mindustry.world.modules.LiquidModule$LiquidCalculator", "mindustry.world.modules.LiquidModule$LiquidConsumer", "mindustry.world.modules.PowerModule", "mindustry.world.producers.Produce", "mindustry.world.producers.ProduceItem");
}
\ No newline at end of file
diff --git a/core/src/mindustry/mod/ContentParser.java b/core/src/mindustry/mod/ContentParser.java
index 3ea54d6160..aa6048d833 100644
--- a/core/src/mindustry/mod/ContentParser.java
+++ b/core/src/mindustry/mod/ContentParser.java
@@ -333,8 +333,8 @@ public class ContentParser{
}
private void readBundle(ContentType type, String name, JsonValue value){
- UnlockableContent cont = Vars.content.getByName(type, name) instanceof UnlockableContent ?
- Vars.content.getByName(type, name) : null;
+ UnlockableContent cont = locate(type, name) instanceof UnlockableContent ?
+ locate(type, name) : null;
String entryName = cont == null ? type + "." + currentMod.name + "-" + name + "." : type + "." + cont.name + ".";
I18NBundle bundle = Core.bundle;
diff --git a/core/src/mindustry/mod/ModListing.java b/core/src/mindustry/mod/ModListing.java
new file mode 100644
index 0000000000..d0c1d80094
--- /dev/null
+++ b/core/src/mindustry/mod/ModListing.java
@@ -0,0 +1,19 @@
+package mindustry.mod;
+
+/** Mod listing as a data class. */
+public class ModListing{
+ public String repo, name, author, lastUpdated, description;
+ public int stars;
+
+ @Override
+ public String toString(){
+ return "ModListing{" +
+ "repo='" + repo + '\'' +
+ ", name='" + name + '\'' +
+ ", author='" + author + '\'' +
+ ", lastUpdated='" + lastUpdated + '\'' +
+ ", description='" + description + '\'' +
+ ", stars=" + stars +
+ '}';
+ }
+}
diff --git a/core/src/mindustry/mod/Mods.java b/core/src/mindustry/mod/Mods.java
index 5eeec915ba..5a87489db4 100644
--- a/core/src/mindustry/mod/Mods.java
+++ b/core/src/mindustry/mod/Mods.java
@@ -512,10 +512,8 @@ public class Mods implements Loadable{
for(ContentType type : ContentType.all){
Fi folder = contentRoot.child(type.name().toLowerCase() + "s");
if(folder.exists()){
- for(Fi file : folder.list()){
- if(file.extension().equals("json") || file.extension().equals("hjson")){
- runs.add(new LoadRun(type, file, mod));
- }
+ for(Fi file : folder.findAll(f -> f.extension().equals("json") || f.extension().equals("hjson"))){
+ runs.add(new LoadRun(type, file, mod));
}
}
}
diff --git a/core/src/mindustry/mod/Scripts.java b/core/src/mindustry/mod/Scripts.java
index 7a39b774a7..5ac96fbb0a 100644
--- a/core/src/mindustry/mod/Scripts.java
+++ b/core/src/mindustry/mod/Scripts.java
@@ -21,7 +21,8 @@ public class Scripts implements Disposable{
context.setClassShutter(type -> (ClassAccess.allowedClassNames.contains(type) || type.startsWith("$Proxy") ||
type.startsWith("adapter") || type.contains("PrintStream") ||
type.startsWith("mindustry")) && !type.equals("mindustry.mod.ClassAccess"));
-
+ context.getWrapFactory().setJavaPrimitiveWrap(false);
+
scope = new ImporterTopLevel(context);
wrapper = Core.files.internal("scripts/wrapper.js").readString();
diff --git a/core/src/mindustry/net/Administration.java b/core/src/mindustry/net/Administration.java
index dabf679d34..aa36705c39 100644
--- a/core/src/mindustry/net/Administration.java
+++ b/core/src/mindustry/net/Administration.java
@@ -1,11 +1,17 @@
package mindustry.net;
import arc.*;
+import arc.func.*;
import arc.struct.*;
import arc.util.ArcAnnotate.*;
+import arc.util.*;
+import arc.util.pooling.*;
+import arc.util.pooling.Pool.*;
import mindustry.*;
import mindustry.annotations.Annotations.*;
import mindustry.entities.type.*;
+import mindustry.type.*;
+import mindustry.world.*;
import static mindustry.Vars.headless;
import static mindustry.game.EventType.*;
@@ -16,14 +22,61 @@ public class Administration{
private Array bannedIPs = new Array<>();
private Array whitelist = new Array<>();
private Array chatFilters = new Array<>();
+ private Array actionFilters = new Array<>();
+ private Array subnetBans = new Array<>();
public Administration(){
- Core.settings.defaults(
- "strict", true,
- "servername", "Server"
- );
-
load();
+
+ //anti-spam
+ addChatFilter((player, message) -> {
+ long resetTime = Config.messageRateLimit.num() * 1000;
+ if(Config.antiSpam.bool() && !player.isLocal && !player.isAdmin){
+ //prevent people from spamming messages quickly
+ if(resetTime > 0 && Time.timeSinceMillis(player.getInfo().lastMessageTime) < resetTime){
+ //supress message
+ player.sendMessage("[scarlet]You may only send messages every " + Config.messageRateLimit.num() + " seconds.");
+ player.getInfo().messageInfractions ++;
+ //kick player for spamming and prevent connection if they've done this several times
+ if(player.getInfo().messageInfractions >= Config.messageSpamKick.num() && Config.messageSpamKick.num() != 0){
+ player.con.kick("You have been kicked for spamming.", 1000 * 60 * 2);
+ }
+ player.getInfo().lastSentMessage = message;
+ return null;
+ }else{
+ player.getInfo().messageInfractions = 0;
+ }
+
+ //prevent players from sending the same message twice in the span of 50 seconds
+ if(message.equals(player.getInfo().lastSentMessage) && Time.timeSinceMillis(player.getInfo().lastMessageTime) < 1000 * 50){
+ player.sendMessage("[scarlet]You may not send the same message twice.");
+ return null;
+ }
+
+ player.getInfo().lastSentMessage = message;
+ player.getInfo().lastMessageTime = Time.millis();
+ }
+
+ return message;
+ });
+ }
+
+ public Array getSubnetBans(){
+ return subnetBans;
+ }
+
+ public void removeSubnetBan(String ip){
+ subnetBans.remove(ip);
+ save();
+ }
+
+ public void addSubnetBan(String ip){
+ subnetBans.add(ip);
+ save();
+ }
+
+ public boolean isSubnetBanned(String ip){
+ return subnetBans.contains(ip::startsWith);
}
/** Adds a chat filter. This will transform the chat messages of every player.
@@ -43,6 +96,25 @@ public class Administration{
return current;
}
+ /** Add a filter to actions, preventing things such as breaking or configuring blocks. */
+ public void addActionFilter(ActionFilter filter){
+ actionFilters.add(filter);
+ }
+
+ /** @return whether this action is allowed by the action filters. */
+ public boolean allowAction(Player player, ActionType type, Tile tile, Cons setter){
+ PlayerAction act = Pools.obtain(PlayerAction.class, PlayerAction::new);
+ setter.get(act.set(player, type, tile));
+ for(ActionFilter filter : actionFilters){
+ if(!filter.allow(act)){
+ Pools.free(act);
+ return false;
+ }
+ }
+ Pools.free(act);
+ return true;
+ }
+
public int getPlayerLimit(){
return Core.settings.getInt("playerlimit", 0);
}
@@ -51,21 +123,12 @@ public class Administration{
Core.settings.putSave("playerlimit", limit);
}
- public void setStrict(boolean on){
- Core.settings.putSave("strict", on);
- }
-
public boolean getStrict(){
- return Core.settings.getBool("strict");
+ return Config.strict.bool();
}
public boolean allowsCustomClients(){
- return Core.settings.getBool("allow-custom", !headless);
- }
-
- public void setCustomClients(boolean allowed){
- Core.settings.put("allow-custom", allowed);
- Core.settings.save();
+ return Config.allowCustomClients.bool();
}
/** Call when a player joins to update their information here. */
@@ -219,11 +282,7 @@ public class Administration{
}
public boolean isWhitelistEnabled(){
- return Core.settings.getBool("whitelist", false);
- }
-
- public void setWhitelist(boolean enabled){
- Core.settings.putSave("whitelist", enabled);
+ return Config.whitelist.bool();
}
public boolean isWhitelisted(String id, String usid){
@@ -323,6 +382,7 @@ public class Administration{
Core.settings.putObject("player-info", playerInfo);
Core.settings.putObject("banned-ips", bannedIPs);
Core.settings.putObject("whitelisted", whitelist);
+ Core.settings.putObject("subnet-bans", subnetBans);
Core.settings.save();
}
@@ -331,6 +391,87 @@ public class Administration{
playerInfo = Core.settings.getObject("player-info", ObjectMap.class, ObjectMap::new);
bannedIPs = Core.settings.getObject("banned-ips", Array.class, Array::new);
whitelist = Core.settings.getObject("whitelisted", Array.class, Array::new);
+ subnetBans = Core.settings.getObject("subnet-bans", Array.class, Array::new);
+ }
+
+ /** Server configuration definition. Each config value can be a string, boolean or number. */
+ public enum Config{
+ name("The server name as displayed on clients.", "Server", "servername"),
+ port("The port to host on.", Vars.port),
+ autoUpdate("Whether to auto-update and exit when a new bleeding-edge update arrives.", false),
+ showConnectMessages("Whether to display connect/disconnect messages.", true),
+ enableVotekick("Whether votekick is enabled.", true),
+ startCommands("Commands run at startup. This should be a comma-separated list.", ""),
+ crashReport("Whether to send crash reports.", false, "crashreport"),
+ logging("Whether to log everything to files.", true),
+ strict("Whether strict mode is on - corrects positions and prevents duplicate UUIDs.", true),
+ antiSpam("Whether spammers are automatically kicked and rate-limited.", true),
+ messageRateLimit("Message rate limit in seconds. 0 to disable.", 0),
+ messageSpamKick("How many times a player must send a message before the cooldown to get kicked. 0 to disable.", 3),
+ socketInput("Allows a local application to control this server through a local TCP socket.", false, "socket", () -> Events.fire(Trigger.socketConfigChanged)),
+ socketInputPort("The port for socket input.", 6859, () -> Events.fire(Trigger.socketConfigChanged)),
+ socketInputAddress("The bind address for socket input.", "localhost", () -> Events.fire(Trigger.socketConfigChanged)),
+ allowCustomClients("Whether custom clients are allowed to connect.", !headless, "allow-custom"),
+ whitelist("Whether the whitelist is used.", false),
+ motd("The message displayed to people on connection.", "off");
+
+ public static final Config[] all = values();
+
+ public final Object defaultValue;
+ public final String key, description;
+ final Runnable changed;
+
+ Config(String description, Object def){
+ this(description, def, null, null);
+ }
+
+ Config(String description, Object def, String key){
+ this(description, def, key, null);
+ }
+
+ Config(String description, Object def, Runnable changed){
+ this(description, def, null, changed);
+ }
+
+ Config(String description, Object def, String key, Runnable changed){
+ this.description = description;
+ this.key = key == null ? name() : key;
+ this.defaultValue = def;
+ this.changed = changed == null ? () -> {} : changed;
+ }
+
+ public boolean isNum(){
+ return defaultValue instanceof Integer;
+ }
+
+ public boolean isBool(){
+ return defaultValue instanceof Boolean;
+ }
+
+ public boolean isString(){
+ return defaultValue instanceof String;
+ }
+
+ public Object get(){
+ return Core.settings.get(key, defaultValue);
+ }
+
+ public boolean bool(){
+ return Core.settings.getBool(key, (Boolean)defaultValue);
+ }
+
+ public int num(){
+ return Core.settings.getInt(key, (Integer)defaultValue);
+ }
+
+ public String string(){
+ return Core.settings.getString(key, (String)defaultValue);
+ }
+
+ public void set(Object value){
+ Core.settings.putSave(key, value);
+ changed.run();
+ }
}
@Serialize
@@ -343,7 +484,11 @@ public class Administration{
public int timesKicked;
public int timesJoined;
public boolean banned, admin;
- public long lastKicked; //last kicked timestamp
+ public long lastKicked; //last kicked time to expiration
+
+ public transient long lastMessageTime, lastSyncTime;
+ public transient String lastSentMessage;
+ public transient int messageInfractions;
PlayerInfo(String id){
this.id = id;
@@ -353,11 +498,18 @@ public class Administration{
}
}
+ /** Handles chat messages from players and changes their contents. */
public interface ChatFilter{
/** @return the filtered message; a null string signals that the message should not be sent. */
@Nullable String filter(Player player, String message);
}
+ /** Allows or disallows player actions. */
+ public interface ActionFilter{
+ /** @return whether this action should be permitted. if applicable, make sure to send this player a message specify why the action was prohibited. */
+ boolean allow(PlayerAction action);
+ }
+
public static class TraceInfo{
public String ip, uuid;
public boolean modded, mobile;
@@ -370,4 +522,39 @@ public class Administration{
}
}
+ /** Defines a (potentially dangerous) action that a player has done in the world.
+ * These objects are pooled; do not cache them! */
+ public static class PlayerAction implements Poolable{
+ public @NonNull Player player;
+ public @NonNull ActionType type;
+ public @NonNull Tile tile;
+
+ /** valid for configure and rotation-type events only. */
+ public int config;
+
+ /** valid for item-type events only. */
+ public @Nullable Item item;
+ public int itemAmount;
+
+ public PlayerAction set(Player player, ActionType type, Tile tile){
+ this.player = player;
+ this.type = type;
+ this.tile = tile;
+ return this;
+ }
+
+ @Override
+ public void reset(){
+ item = null;
+ itemAmount = config = 0;
+ player = null;
+ type = null;
+ tile = null;
+ }
+ }
+
+ public enum ActionType{
+ breakBlock, placeBlock, rotate, configure, withdrawItem, depositItem
+ }
+
}
diff --git a/core/src/mindustry/net/BeControl.java b/core/src/mindustry/net/BeControl.java
new file mode 100644
index 0000000000..ee084f743a
--- /dev/null
+++ b/core/src/mindustry/net/BeControl.java
@@ -0,0 +1,173 @@
+package mindustry.net;
+
+import arc.*;
+import arc.Net.*;
+import arc.files.*;
+import arc.func.*;
+import arc.util.*;
+import arc.util.async.*;
+import arc.util.serialization.*;
+import mindustry.core.*;
+import mindustry.gen.*;
+import mindustry.graphics.*;
+import mindustry.net.Administration.*;
+import mindustry.net.Packets.*;
+import mindustry.ui.*;
+import mindustry.ui.dialogs.*;
+
+import java.io.*;
+import java.net.*;
+
+import static mindustry.Vars.*;
+
+/** Handles control of bleeding edge builds. */
+public class BeControl{
+ private static final int updateInterval = 60 * 2;
+
+ private AsyncExecutor executor = new AsyncExecutor(1);
+ private boolean checkUpdates = true;
+ private boolean updateAvailable;
+ private String updateUrl;
+ private int updateBuild;
+
+ /** @return whether this is a bleeding edge build. */
+ public boolean active(){
+ return Version.type.equals("bleeding-edge");
+ }
+
+ public BeControl(){
+ if(active()){
+ Timer.schedule(() -> {
+ if(checkUpdates && !mobile){
+ checkUpdate(t -> {});
+ }
+ }, 1, updateInterval);
+ }
+ }
+
+ /** asynchronously checks for updates. */
+ public void checkUpdate(Boolc done){
+ Core.net.httpGet("https://api.github.com/repos/Anuken/MindustryBuilds/releases/latest", res -> {
+ if(res.getStatus() == HttpStatus.OK){
+ Jval val = Jval.read(res.getResultAsString());
+ int newBuild = Strings.parseInt(val.getString("tag_name", "0"));
+ if(newBuild > Version.build){
+ Jval asset = val.get("assets").asArray().find(v -> v.getString("name", "").startsWith(headless ? "Mindustry-BE-Server" : "Mindustry-BE-Desktop"));
+ String url = asset.getString("browser_download_url", "");
+ updateAvailable = true;
+ updateBuild = newBuild;
+ updateUrl = url;
+ showUpdateDialog();
+ Core.app.post(() -> done.get(true));
+ }else{
+ Core.app.post(() -> done.get(false));
+ }
+ }else{
+ Core.app.post(() -> done.get(false));
+ }
+ }, error -> {
+ if(!headless){
+ ui.showException(error);
+ }else{
+ error.printStackTrace();
+ }
+ });
+ }
+
+ /** @return whether a new update is available */
+ public boolean isUpdateAvailable(){
+ return updateAvailable;
+ }
+
+ /** shows the dialog for updating the game on desktop, or a prompt for doing so on the server */
+ public void showUpdateDialog(){
+ if(!updateAvailable) return;
+
+ if(!headless){
+ checkUpdates = false;
+ ui.showCustomConfirm(Core.bundle.format("be.update", "") + " " + updateBuild, "$be.update.confirm", "$ok", "$be.ignore", () -> {
+ boolean[] cancel = {false};
+ float[] progress = {0};
+ int[] length = {0};
+ Fi file = bebuildDirectory.child("client-be-" + updateBuild + ".jar");
+
+ FloatingDialog dialog = new FloatingDialog("$be.updating");
+ download(updateUrl, file, i -> length[0] = i, v -> progress[0] = v, () -> cancel[0], () -> {
+ try{
+ Runtime.getRuntime().exec(new String[]{"java", "-DlastBuild=" + Version.build, "-Dberestart", "-jar", file.absolutePath()});
+ System.exit(0);
+ }catch(IOException e){
+ ui.showException(e);
+ }
+ }, e -> {
+ dialog.hide();
+ ui.showException(e);
+ });
+
+ dialog.cont.add(new Bar(() -> length[0] == 0 ? Core.bundle.get("be.updating") : (int)(progress[0] * length[0]) / 1024/ 1024 + "/" + length[0]/1024/1024 + " MB", () -> Pal.accent, () -> progress[0])).width(400f).height(70f);
+ dialog.buttons.addImageTextButton("$cancel", Icon.cancelSmall, () -> {
+ cancel[0] = true;
+ dialog.hide();
+ }).size(210f, 64f);
+ dialog.setFillParent(false);
+ dialog.show();
+ }, () -> checkUpdates = false);
+ }else{
+ Log.info("&lcA new update is available: &lyBleeding Edge build {0}", updateBuild);
+ if(Config.autoUpdate.bool()){
+ Log.info("&lcAuto-downloading next version...");
+
+ try{
+ //download new file from github
+ Fi source = Fi.get(BeControl.class.getProtectionDomain().getCodeSource().getLocation().toURI().getPath());
+ Fi dest = source.sibling("server-be-" + updateBuild + ".jar");
+
+ download(updateUrl, dest,
+ len -> Core.app.post(() -> Log.info("&ly| Size: {0} MB.", Strings.fixed((float)len / 1024 / 1024, 2))),
+ progress -> {},
+ () -> false,
+ () -> Core.app.post(() -> {
+ netServer.kickAll(KickReason.serverRestarting);
+ Threads.sleep(32);
+
+ Log.info("&lcVersion downloaded, exiting. Note that if you are not using a auto-restart script, the server will not restart automatically.");
+ //replace old file with new
+ dest.copyTo(source);
+ dest.delete();
+ System.exit(2); //this will cause a restart if using the script
+ }),
+ Throwable::printStackTrace);
+ }catch(Exception e){
+ e.printStackTrace();
+ }
+ }
+ checkUpdates = false;
+ }
+ }
+
+ private void download(String furl, Fi dest, Intc length, Floatc progressor, Boolp canceled, Runnable done, Cons error){
+ executor.submit(() -> {
+ try{
+ HttpURLConnection con = (HttpURLConnection)new URL(furl).openConnection();
+ BufferedInputStream in = new BufferedInputStream(con.getInputStream());
+ OutputStream out = dest.write(false, 4096);
+
+ byte[] data = new byte[4096];
+ long size = con.getContentLength();
+ long counter = 0;
+ length.get((int)size);
+ int x;
+ while((x = in.read(data, 0, data.length)) >= 0 && !canceled.get()){
+ counter += x;
+ progressor.get((float)counter / (float)size);
+ out.write(data, 0, x);
+ }
+ out.close();
+ in.close();
+ if(!canceled.get()) done.run();
+ }catch(Throwable e){
+ error.get(e);
+ }
+ });
+ }
+}
diff --git a/core/src/mindustry/net/CrashSender.java b/core/src/mindustry/net/CrashSender.java
index 43692c77d6..1b24b2af3a 100644
--- a/core/src/mindustry/net/CrashSender.java
+++ b/core/src/mindustry/net/CrashSender.java
@@ -27,7 +27,9 @@ public class CrashSender{
exception.printStackTrace();
//don't create crash logs for custom builds, as it's expected
- if(Version.build == -1 || (System.getProperty("user.name").equals("anuke") && "release".equals(Version.modifier))) return;
+ if(Version.build == -1 || (System.getProperty("user.name").equals("anuke") && "release".equals(Version.modifier))){
+ ret();
+ }
//attempt to load version regardless
if(Version.number == 0){
@@ -63,7 +65,7 @@ public class CrashSender{
try{
//check crash report setting
if(!Core.settings.getBool("crashreport", true)){
- return;
+ ret();
}
}catch(Throwable ignored){
//if there's no settings init we don't know what the user wants but chances are it's an important crash, so send it anyway
@@ -72,14 +74,14 @@ public class CrashSender{
try{
//check any mods - if there are any, don't send reports
if(Vars.mods != null && !Vars.mods.list().isEmpty()){
- return;
+ ret();
}
}catch(Throwable ignored){
}
//do not send exceptions that occur for versions that can't be parsed
if(Version.number == 0){
- return;
+ ret();
}
boolean netActive = false, netServer = false;
@@ -130,12 +132,16 @@ public class CrashSender{
while(!sent[0]){
Thread.sleep(30);
}
- }catch(InterruptedException ignored){
- }
+ }catch(InterruptedException ignored){}
}catch(Throwable death){
death.printStackTrace();
- System.exit(1);
}
+
+ ret();
+ }
+
+ private static void ret(){
+ System.exit(1);
}
private static void httpPost(String url, String content, Cons success, Cons failure){
diff --git a/core/src/mindustry/net/Host.java b/core/src/mindustry/net/Host.java
index 387fafc043..5c3b010c45 100644
--- a/core/src/mindustry/net/Host.java
+++ b/core/src/mindustry/net/Host.java
@@ -1,5 +1,6 @@
package mindustry.net;
+import mindustry.*;
import mindustry.game.*;
public class Host{
@@ -11,7 +12,7 @@ public class Host{
public final int version;
public final String versionType;
public final Gamemode mode;
- public int ping;
+ public int ping, port = Vars.port;
public Host(String name, String address, String mapname, int wave, int players, int version, String versionType, Gamemode mode, int playerLimit){
this.name = name;
diff --git a/core/src/mindustry/net/NetConnection.java b/core/src/mindustry/net/NetConnection.java
index a09ab097ba..104ed2d431 100644
--- a/core/src/mindustry/net/NetConnection.java
+++ b/core/src/mindustry/net/NetConnection.java
@@ -15,8 +15,7 @@ import static mindustry.Vars.netServer;
public abstract class NetConnection{
public final String address;
public boolean mobile, modclient;
- public @Nullable
- Player player;
+ public @Nullable Player player;
/** ID of last recieved client snapshot. */
public int lastRecievedClientSnapshot = -1;
@@ -37,7 +36,7 @@ public abstract class NetConnection{
if(player != null && (reason == KickReason.kick || reason == KickReason.banned || reason == KickReason.vote) && player.uuid != null){
PlayerInfo info = netServer.admins.getInfo(player.uuid);
info.timesKicked++;
- info.lastKicked = Math.max(Time.millis(), info.lastKicked);
+ info.lastKicked = Math.max(Time.millis() + 30 * 1000, info.lastKicked);
}
Call.onKick(this, reason);
@@ -49,12 +48,17 @@ public abstract class NetConnection{
/** Kick with an arbitrary reason. */
public void kick(String reason){
+ kick(reason, 30 * 1000);
+ }
+
+ /** Kick with an arbitrary reason, and a kick duration in milliseconds. */
+ public void kick(String reason, int kickDuration){
Log.info("Kicking connection {0}; Reason: {1}", address, reason.replace("\n", " "));
if(player != null && player.uuid != null){
PlayerInfo info = netServer.admins.getInfo(player.uuid);
info.timesKicked++;
- info.lastKicked = Math.max(Time.millis(), info.lastKicked);
+ info.lastKicked = Math.max(Time.millis() + kickDuration, info.lastKicked);
}
Call.onKick(this, reason);
diff --git a/core/src/mindustry/net/NetworkIO.java b/core/src/mindustry/net/NetworkIO.java
index d877ac6e3a..1c6e1acba2 100644
--- a/core/src/mindustry/net/NetworkIO.java
+++ b/core/src/mindustry/net/NetworkIO.java
@@ -1,12 +1,12 @@
package mindustry.net;
-import arc.*;
import arc.util.*;
import mindustry.core.*;
import mindustry.entities.type.*;
import mindustry.game.*;
import mindustry.io.*;
import mindustry.maps.Map;
+import mindustry.net.Administration.*;
import java.io.*;
import java.nio.*;
@@ -62,7 +62,7 @@ public class NetworkIO{
}
public static ByteBuffer writeServerData(){
- String name = (headless ? Core.settings.getString("servername") : player.name);
+ String name = (headless ? Config.name.string() : player.name);
String map = world.getMap() == null ? "None" : world.getMap().name();
ByteBuffer buffer = ByteBuffer.allocate(256);
diff --git a/core/src/mindustry/net/Packets.java b/core/src/mindustry/net/Packets.java
index 683983d69b..98a3bad857 100644
--- a/core/src/mindustry/net/Packets.java
+++ b/core/src/mindustry/net/Packets.java
@@ -15,7 +15,8 @@ public class Packets{
public enum KickReason{
kick, clientOutdated, serverOutdated, banned, gameover(true), recentKick,
- nameInUse, idInUse, nameEmpty, customClient, serverClose, vote, typeMismatch, whitelist, playerLimit;
+ nameInUse, idInUse, nameEmpty, customClient, serverClose, vote, typeMismatch,
+ whitelist, playerLimit, serverRestarting;
public final boolean quiet;
diff --git a/core/src/mindustry/type/Mech.java b/core/src/mindustry/type/Mech.java
index 49745ba129..ba05db464c 100644
--- a/core/src/mindustry/type/Mech.java
+++ b/core/src/mindustry/type/Mech.java
@@ -1,17 +1,19 @@
package mindustry.type;
-import arc.Core;
-import arc.graphics.Color;
-import arc.graphics.g2d.TextureRegion;
-import arc.scene.ui.layout.Table;
+import arc.*;
+import arc.graphics.*;
+import arc.graphics.g2d.*;
+import arc.math.*;
+import arc.scene.ui.layout.*;
import arc.util.ArcAnnotate.*;
-import mindustry.ctype.ContentType;
-import mindustry.entities.type.Player;
-import mindustry.ctype.UnlockableContent;
-import mindustry.graphics.Pal;
-import mindustry.ui.ContentDisplay;
+import arc.util.*;
+import mindustry.ctype.*;
+import mindustry.entities.type.*;
+import mindustry.graphics.*;
+import mindustry.ui.*;
-public class Mech extends UnlockableContent{
+public class Mech extends UnitDef{
+ /*
public boolean flying;
public float speed = 1.1f;
public float maxSpeed = 10f;
@@ -32,7 +34,14 @@ public class Mech extends UnlockableContent{
public boolean canHeal = false;
public float compoundSpeed, compoundSpeedBoost;
- public float weaponOffsetX, weaponOffsetY, engineOffset = 5f, engineSize = 2.5f;
+ /** draw the health and team indicator
+ public boolean drawCell = true;
+ /** draw the items on its back
+ public boolean drawItems = true;
+ /** draw the engine light if it's flying/boosting
+ public boolean drawLight = true;
+
+ public float weaponOffsetX, weaponOffsetY, engineOffset = 5f, engineSize = 2.5f;*/
public @NonNull Weapon weapon;
public TextureRegion baseRegion, legRegion, region;
@@ -46,12 +55,28 @@ public class Mech extends UnlockableContent{
this(name, false);
}
- public void updateAlt(Player player){
+ public void update(Player player){
}
public void draw(Player player){
}
+ public void drawStats(Player player){
+ if(drawCell){
+ float health = player.healthf();
+ Draw.color(Color.black, player.getTeam().color, health + Mathf.absin(Time.time(), health * 5f, 1f - health));
+ Draw.rect(player.getPowerCellRegion(),
+ player.x + Angles.trnsx(player.rotation, cellOffsetY, cellOffsetX),
+ player.y + Angles.trnsy(player.rotation, cellOffsetY, cellOffsetX),
+ player.rotation - 90);
+ Draw.reset();
+ }
+
+ if(drawItems){
+ player.drawBackItems();
+ }
+ }
+
public float getExtraArmor(Player player){
return 0f;
}
diff --git a/core/src/mindustry/type/UnitDef.java b/core/src/mindustry/type/UnitDef.java
new file mode 100644
index 0000000000..438fc08cde
--- /dev/null
+++ b/core/src/mindustry/type/UnitDef.java
@@ -0,0 +1,37 @@
+package mindustry.type;
+
+import arc.audio.*;
+import arc.graphics.*;
+import arc.struct.*;
+import mindustry.ctype.*;
+import mindustry.gen.*;
+import mindustry.graphics.*;
+
+public abstract class UnitDef extends UnlockableContent{
+ public boolean flying;
+ public float speed = 1.1f, boostSpeed = 0.75f;
+ public float drag = 0.4f, mass = 1f;
+ public float health = 200f;
+
+ public int itemCapacity = 30;
+ public int drillTier = -1;
+ public float buildPower = 1f, minePower = 1f;
+
+ public Color engineColor = Pal.boostTo;
+ public float engineOffset = 5f, engineSize = 2.5f;
+
+ public float hitsize = 6f, hitsizeTile = 4f;
+ public float cellOffsetX = 0f, cellOffsetY = 0f;
+ public float lightRadius = 60f;
+ public Color lightColor = Pal.powerLight;
+ public boolean drawCell = true, drawItems = true;
+
+ public ObjectSet immunities = new ObjectSet<>();
+ public Sound deathSound = Sounds.bang;
+
+ public Array weapons = new Array<>();
+
+ public UnitDef(String name){
+ super(name);
+ }
+}
diff --git a/core/src/mindustry/type/UnitType.java b/core/src/mindustry/type/UnitType.java
index af0e8d5746..9251c06392 100644
--- a/core/src/mindustry/type/UnitType.java
+++ b/core/src/mindustry/type/UnitType.java
@@ -2,23 +2,23 @@ package mindustry.type;
import arc.*;
import arc.audio.*;
-import arc.struct.*;
import arc.func.*;
import arc.graphics.g2d.*;
import arc.scene.ui.layout.*;
+import arc.struct.*;
import arc.util.ArcAnnotate.*;
import mindustry.content.*;
-import mindustry.ctype.ContentType;
-import mindustry.ctype.UnlockableContent;
+import mindustry.ctype.*;
import mindustry.entities.type.*;
import mindustry.game.*;
import mindustry.gen.*;
import mindustry.ui.*;
-public class UnitType extends UnlockableContent{
+public class UnitType extends UnitDef{
public @NonNull TypeID typeID;
public @NonNull Prov extends BaseUnit> constructor;
+ /*
public float health = 60;
public float hitsize = 7f;
public float hitsizeTile = 4f;
@@ -40,7 +40,7 @@ public class UnitType extends UnlockableContent{
public @NonNull Weapon weapon;
public float weaponOffsetY, engineOffset = 6f, engineSize = 2f;
public ObjectSet immunities = new ObjectSet<>();
- public Sound deathSound = Sounds.bang;
+ public Sound deathSound = Sounds.bang;*/
public TextureRegion legRegion, baseRegion, region;
diff --git a/core/src/mindustry/type/Weapon.java b/core/src/mindustry/type/Weapon.java
index 47003220db..5b0e0d488c 100644
--- a/core/src/mindustry/type/Weapon.java
+++ b/core/src/mindustry/type/Weapon.java
@@ -55,6 +55,8 @@ public class Weapon{
public float shotDelay = 0;
/** whether shooter rotation is ignored when shooting. */
public boolean ignoreRotation = false;
+ /** if turnCursor is false for a mech, how far away will the weapon target. */
+ public float targetDistance = 1f;
public Sound shootSound = Sounds.pew;
diff --git a/core/src/mindustry/ui/Minimap.java b/core/src/mindustry/ui/Minimap.java
index b724f4dd39..bbb81a7f00 100644
--- a/core/src/mindustry/ui/Minimap.java
+++ b/core/src/mindustry/ui/Minimap.java
@@ -36,7 +36,7 @@ public class Minimap extends Table{
Draw.rect(renderer.minimap.getRegion(), x + width / 2f, y + height / 2f, width, height);
if(renderer.minimap.getTexture() != null){
- renderer.minimap.drawEntities(x, y, width, height, false);
+ renderer.minimap.drawEntities(x, y, width, height, 0.75f, false);
}
}
}).size(140f);
@@ -83,7 +83,7 @@ public class Minimap extends Table{
@Override
public void clicked(InputEvent event, float x, float y){
- ui.minimap.show();
+ ui.minimapfrag.toggle();
}
});
diff --git a/core/src/mindustry/ui/dialogs/AboutDialog.java b/core/src/mindustry/ui/dialogs/AboutDialog.java
index 06a753a38a..7b64fdaf3a 100644
--- a/core/src/mindustry/ui/dialogs/AboutDialog.java
+++ b/core/src/mindustry/ui/dialogs/AboutDialog.java
@@ -95,7 +95,7 @@ public class AboutDialog extends FloatingDialog{
public void showCredits(){
FloatingDialog dialog = new FloatingDialog("$credits");
dialog.addCloseButton();
- dialog.cont.add("$credits.text");
+ dialog.cont.add("$credits.text").fillX().wrap().get().setAlignment(Align.center);
dialog.cont.row();
if(!contributors.isEmpty()){
dialog.cont.addImage().color(Pal.accent).fillX().height(3f).pad(3f);
diff --git a/core/src/mindustry/ui/dialogs/CustomRulesDialog.java b/core/src/mindustry/ui/dialogs/CustomRulesDialog.java
index 54e4720d65..73eb5a9efa 100644
--- a/core/src/mindustry/ui/dialogs/CustomRulesDialog.java
+++ b/core/src/mindustry/ui/dialogs/CustomRulesDialog.java
@@ -142,6 +142,7 @@ public class CustomRulesDialog extends FloatingDialog{
check("$rules.reactorexplosions", b -> rules.reactorExplosions = b, () -> rules.reactorExplosions);
number("$rules.buildcostmultiplier", false, f -> rules.buildCostMultiplier = f, () -> rules.buildCostMultiplier, () -> !rules.infiniteResources);
number("$rules.buildspeedmultiplier", f -> rules.buildSpeedMultiplier = f, () -> rules.buildSpeedMultiplier);
+ number("$rules.blockhealthmultiplier", f -> rules.blockHealthMultiplier = f, () -> rules.blockHealthMultiplier);
main.addButton("$configure",
() -> loadoutDialog.show(Blocks.coreShard.itemCapacity, rules.loadout,
diff --git a/core/src/mindustry/ui/dialogs/JoinDialog.java b/core/src/mindustry/ui/dialogs/JoinDialog.java
index 4c8ae3cc58..d3e154b3b1 100644
--- a/core/src/mindustry/ui/dialogs/JoinDialog.java
+++ b/core/src/mindustry/ui/dialogs/JoinDialog.java
@@ -288,7 +288,12 @@ public class JoinDialog extends FloatingDialog{
local.table(Tex.button, t -> t.label(() -> "[accent]" + Core.bundle.get("hosts.discovering.any") + Strings.animated(Time.time(), 4, 10f, ".")).pad(10f)).growX();
net.discoverServers(this::addLocalHost, this::finishLocalHosts);
for(String host : defaultServers){
- net.pingHost(host, port, this::addLocalHost, e -> {});
+ String resaddress = host.contains(":") ? host.split(":")[0] : host;
+ int resport = host.contains(":") ? Strings.parseInt(host.split(":")[1]) : port;
+ net.pingHost(resaddress, resport, res -> {
+ res.port = resport;
+ addLocalHost(res);
+ }, e -> {});
}
}
@@ -314,7 +319,7 @@ public class JoinDialog extends FloatingDialog{
local.row();
- TextButton button = local.addButton("", Styles.cleart, () -> safeConnect(host.address, port, host.version))
+ TextButton button = local.addButton("", Styles.cleart, () -> safeConnect(host.address, host.port, host.version))
.width(w).pad(5f).get();
button.clearChildren();
buildServer(host, button);
@@ -362,7 +367,7 @@ public class JoinDialog extends FloatingDialog{
servers = Core.settings.getObject("server-list", Array.class, Array::new);
//get servers
- Core.net.httpGet(serverJsonURL, result -> {
+ Core.net.httpGet(becontrol.active() ? serverJsonBeURL : serverJsonURL, result -> {
try{
Jval val = Jval.read(result.getResultAsString());
Core.app.post(() -> {
diff --git a/core/src/mindustry/ui/dialogs/ModsDialog.java b/core/src/mindustry/ui/dialogs/ModsDialog.java
index 96b71b6861..4b42f64d80 100644
--- a/core/src/mindustry/ui/dialogs/ModsDialog.java
+++ b/core/src/mindustry/ui/dialogs/ModsDialog.java
@@ -32,7 +32,7 @@ public class ModsDialog extends FloatingDialog{
buttons.row();
- buttons.addImageTextButton("$mods.guide", Icon.wiki,
+ buttons.addImageTextButton("$mods.guide", Icon.link,
() -> Core.net.openURI(modGuideURL))
.size(210, 64f);
diff --git a/core/src/mindustry/ui/dialogs/SchematicsDialog.java b/core/src/mindustry/ui/dialogs/SchematicsDialog.java
index d12bc4af54..1747cdf2a0 100644
--- a/core/src/mindustry/ui/dialogs/SchematicsDialog.java
+++ b/core/src/mindustry/ui/dialogs/SchematicsDialog.java
@@ -163,7 +163,7 @@ public class SchematicsDialog extends FloatingDialog{
setup();
ui.showInfoFade("$schematic.saved");
showInfo(s);
- }catch(Exception e){
+ }catch(Throwable e){
ui.showException(e);
}
}).marginLeft(12f).disabled(b -> Core.app.getClipboardText() == null || !Core.app.getClipboardText().startsWith(schematicBaseStart));
diff --git a/core/src/mindustry/ui/dialogs/SettingsMenuDialog.java b/core/src/mindustry/ui/dialogs/SettingsMenuDialog.java
index 4c01c10abb..ea9210f695 100644
--- a/core/src/mindustry/ui/dialogs/SettingsMenuDialog.java
+++ b/core/src/mindustry/ui/dialogs/SettingsMenuDialog.java
@@ -229,6 +229,7 @@ public class SettingsMenuDialog extends SettingsDialog{
game.checkPref("savecreate", true);
game.checkPref("blockreplace", true);
game.checkPref("conveyorpathfinding", true);
+ game.checkPref("coreselect", false);
game.checkPref("hints", true);
if(!mobile){
game.checkPref("buildautopause", false);
@@ -267,6 +268,7 @@ public class SettingsMenuDialog extends SettingsDialog{
}
return s + "%";
});
+ graphics.sliderPref("bridgeopacity", 75, 0, 100, 5, s -> s + "%");
if(!mobile){
graphics.checkPref("vsync", true, b -> Core.graphics.setVSync(b));
diff --git a/core/src/mindustry/ui/fragments/BlockInventoryFragment.java b/core/src/mindustry/ui/fragments/BlockInventoryFragment.java
index e77a240e36..c4cc71cc5a 100644
--- a/core/src/mindustry/ui/fragments/BlockInventoryFragment.java
+++ b/core/src/mindustry/ui/fragments/BlockInventoryFragment.java
@@ -36,7 +36,7 @@ public class BlockInventoryFragment extends Fragment{
@Remote(called = Loc.server, targets = Loc.both, forward = true)
public static void requestItem(Player player, Tile tile, Item item, int amount){
- if(player == null || tile == null || !player.timer.get(Player.timerTransfer, 20) || !tile.interactable(player.getTeam())) return;
+ if(player == null || tile == null || !tile.interactable(player.getTeam())) return;
if(!Units.canInteract(player, tile)) return;
int removed = tile.block().removeStack(tile, item, amount);
diff --git a/core/src/mindustry/ui/fragments/MenuFragment.java b/core/src/mindustry/ui/fragments/MenuFragment.java
index 535f4d6046..8737db0d9a 100644
--- a/core/src/mindustry/ui/fragments/MenuFragment.java
+++ b/core/src/mindustry/ui/fragments/MenuFragment.java
@@ -59,6 +59,18 @@ public class MenuFragment extends Fragment{
if(mobile){
parent.fill(c -> c.bottom().left().addButton("", Styles.infot, ui.about::show).size(84, 45));
parent.fill(c -> c.bottom().right().addButton("", Styles.discordt, ui.discord::show).size(84, 45));
+ }else if(becontrol.active()){
+ parent.fill(c -> c.bottom().right().addImageTextButton("$be.check", Icon.refreshSmall, () -> {
+ ui.loadfrag.show();
+ becontrol.checkUpdate(result -> {
+ ui.loadfrag.hide();
+ if(!result){
+ ui.showInfo("$be.noupdates");
+ }
+ });
+ }).size(200, 60).update(t -> {
+ t.getLabel().setColor(becontrol.isUpdateAvailable() ? Tmp.c1.set(Color.white).lerp(Pal.accent, Mathf.absin(5f, 1f)) : Color.white);
+ }));
}
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));
diff --git a/core/src/mindustry/ui/fragments/MinimapFragment.java b/core/src/mindustry/ui/fragments/MinimapFragment.java
new file mode 100644
index 0000000000..d13fed8936
--- /dev/null
+++ b/core/src/mindustry/ui/fragments/MinimapFragment.java
@@ -0,0 +1,114 @@
+package mindustry.ui.fragments;
+
+import arc.*;
+import arc.graphics.*;
+import arc.graphics.g2d.*;
+import arc.input.*;
+import arc.math.*;
+import arc.scene.*;
+import arc.scene.event.*;
+import arc.scene.ui.layout.*;
+import mindustry.gen.*;
+import mindustry.input.*;
+import mindustry.ui.*;
+
+import static mindustry.Vars.*;
+
+public class MinimapFragment extends Fragment{
+ private boolean shown;
+ private float panx, pany, zoom = 1f, lastZoom = -1;
+ private float baseSize = Scl.scl(5f);
+ private Element elem;
+
+ @Override
+ public void build(Group parent){
+ elem = parent.fill((x, y, w, h) -> {
+ w = Core.graphics.getWidth();
+ h = Core.graphics.getHeight();
+ float size = baseSize * zoom * world.width();
+
+ Draw.color(Color.black);
+ Fill.crect(x, y, w, h);
+
+ if(renderer.minimap.getTexture() != null){
+ Draw.color();
+ float ratio = (float)renderer.minimap.getTexture().getHeight() / renderer.minimap.getTexture().getWidth();
+ TextureRegion reg = Draw.wrap(renderer.minimap.getTexture());
+ Draw.rect(reg, w/2f + panx*zoom, h/2f + pany*zoom, size, size * ratio);
+ renderer.minimap.drawEntities(w/2f + panx*zoom - size/2f, h/2f + pany*zoom - size/2f * ratio, size, size * ratio, zoom, true);
+ }
+
+ Draw.reset();
+ });
+
+ elem.visible(() -> shown);
+ elem.update(() -> {
+ elem.requestKeyboard();
+ elem.requestScroll();
+ elem.setFillParent(true);
+ elem.setBounds(0, 0, Core.graphics.getWidth(), Core.graphics.getHeight());
+
+ if(Core.input.keyTap(Binding.menu)){
+ shown = false;
+ }
+ });
+ elem.touchable(Touchable.enabled);
+
+ elem.addListener(new ElementGestureListener(){
+
+ @Override
+ public void zoom(InputEvent event, float initialDistance, float distance){
+ if(lastZoom < 0){
+ lastZoom = zoom;
+ }
+
+ zoom = Mathf.clamp(distance / initialDistance * lastZoom, 0.25f, 10f);
+ }
+
+ @Override
+ public void pan(InputEvent event, float x, float y, float deltaX, float deltaY){
+ panx += deltaX / zoom;
+ pany += deltaY / zoom;
+ }
+
+ @Override
+ public void touchDown(InputEvent event, float x, float y, int pointer, KeyCode button){
+ super.touchDown(event, x, y, pointer, button);
+ }
+
+ @Override
+ public void touchUp(InputEvent event, float x, float y, int pointer, KeyCode button){
+ lastZoom = zoom;
+ }
+ });
+
+ elem.addListener(new InputListener(){
+
+ @Override
+ public boolean scrolled(InputEvent event, float x, float y, float amountX, float amountY){
+ zoom = Mathf.clamp(zoom - amountY / 10f * zoom, 0.25f, 10f);
+ return true;
+ }
+ });
+
+ parent.fill(t -> {
+ t.setFillParent(true);
+ t.visible(() -> shown);
+ t.update(() -> t.setBounds(0, 0, Core.graphics.getWidth(), Core.graphics.getHeight()));
+
+ t.add("$minimap").style(Styles.outlineLabel).pad(10f);
+ t.row();
+ t.add().growY();
+ t.row();
+ t.addImageTextButton("$back", Icon.backSmall, () -> shown = false).size(220f, 60f).pad(10f);
+ });
+ }
+
+ public boolean shown(){
+ return shown;
+ }
+
+ public void toggle(){
+ shown = !shown;
+ }
+}
diff --git a/core/src/mindustry/ui/fragments/PlayerListFragment.java b/core/src/mindustry/ui/fragments/PlayerListFragment.java
index a9cca9fb85..ea6f6087c1 100644
--- a/core/src/mindustry/ui/fragments/PlayerListFragment.java
+++ b/core/src/mindustry/ui/fragments/PlayerListFragment.java
@@ -130,7 +130,7 @@ public class PlayerListFragment extends Fragment{
t.addImageButton(Icon.zoomSmall, Styles.clearPartiali, () -> Call.onAdminRequest(user, AdminAction.trace));
}).padRight(12).size(bs + 10f, bs);
- }else if((!user.isLocal && !user.isAdmin) && net.client() && playerGroup.size() >= 3){ //votekick
+ }else if((!user.isLocal && !user.isAdmin) && net.client() && playerGroup.size() >= 3 && player.getTeam() != user.getTeam()){ //votekick
button.add().growY();
button.addImageButton(Icon.banSmall, Styles.clearPartiali,
diff --git a/core/src/mindustry/ui/fragments/ScriptConsoleFragment.java b/core/src/mindustry/ui/fragments/ScriptConsoleFragment.java
index 1f667602de..378359f631 100644
--- a/core/src/mindustry/ui/fragments/ScriptConsoleFragment.java
+++ b/core/src/mindustry/ui/fragments/ScriptConsoleFragment.java
@@ -45,7 +45,7 @@ public class ScriptConsoleFragment extends Table{
font = Fonts.def;
visible(() -> {
- if(input.keyTap(Binding.console) && !Vars.net.client() && (scene.getKeyboardFocus() == chatfield || scene.getKeyboardFocus() == null)){
+ if(input.keyTap(Binding.console) && (scene.getKeyboardFocus() == chatfield || scene.getKeyboardFocus() == null)){
shown = !shown;
if(shown && !open && enableConsole){
toggle();
@@ -53,7 +53,7 @@ public class ScriptConsoleFragment extends Table{
clearChatInput();
}
- return shown && !Vars.net.active();
+ return shown && Vars.net.active();
});
update(() -> {
diff --git a/core/src/mindustry/world/Block.java b/core/src/mindustry/world/Block.java
index 9bec4cd0f6..a0294013ad 100644
--- a/core/src/mindustry/world/Block.java
+++ b/core/src/mindustry/world/Block.java
@@ -55,6 +55,8 @@ public class Block extends BlockStorage{
public boolean rotate;
/** whether you can break this with rightclick */
public boolean breakable;
+ /** whether to add this block to brokenblocks */
+ public boolean rebuildable = true;
/** whether this floor can be placed on. */
public boolean placeableOn = true;
/** whether this block has insulating properties. */
diff --git a/core/src/mindustry/world/Tile.java b/core/src/mindustry/world/Tile.java
index 0572c74286..fe319fd02e 100644
--- a/core/src/mindustry/world/Tile.java
+++ b/core/src/mindustry/world/Tile.java
@@ -257,7 +257,7 @@ public class Tile implements Position, TargetTrait{
}
public boolean solid(){
- return block.solid || block.isSolidFor(this) || (isLinked() && link().solid());
+ return block.solid || block.isSolidFor(this) || (isLinked() && link() != this && link().solid());
}
public boolean breakable(){
@@ -376,7 +376,7 @@ public class Tile implements Position, TargetTrait{
return state.teams.canInteract(team, getTeam());
}
- public Item drop(){
+ public @Nullable Item drop(){
return overlay == Blocks.air || overlay.itemDrop == null ? floor.itemDrop : overlay.itemDrop;
}
diff --git a/core/src/mindustry/world/blocks/BuildBlock.java b/core/src/mindustry/world/blocks/BuildBlock.java
index 79061db553..14187850ba 100644
--- a/core/src/mindustry/world/blocks/BuildBlock.java
+++ b/core/src/mindustry/world/blocks/BuildBlock.java
@@ -171,9 +171,9 @@ public class BuildBlock extends Block{
return;
}
- if(entity.previous == null) return;
+ if(entity.previous == null || entity.cblock == null) return;
- if(Core.atlas.isFound(entity.previous.icon(mindustry.ui.Cicon.full))){
+ if(Core.atlas.isFound(entity.previous.icon(Cicon.full))){
Draw.rect(entity.previous.icon(Cicon.full), tile.drawx(), tile.drawy(), entity.previous.rotate ? tile.rotation() * 90 : 0);
}
}
@@ -257,7 +257,7 @@ public class BuildBlock extends Block{
if(cblock != null){
ItemStack[] requirements = cblock.requirements;
if(requirements.length != accumulator.length || totalAccumulator.length != requirements.length){
- setDeconstruct(previous);
+ setDeconstruct(cblock);
}
//make sure you take into account that you can't deconstruct more than there is deconstructed
@@ -342,12 +342,12 @@ public class BuildBlock extends Block{
this.progress = 1f;
if(previous.buildCost >= 0.01f){
this.cblock = previous;
- this.accumulator = new float[previous.requirements.length];
- this.totalAccumulator = new float[previous.requirements.length];
this.buildCost = previous.buildCost * state.rules.buildCostMultiplier;
}else{
this.buildCost = 20f; //default no-requirement build cost is 20
}
+ this.accumulator = new float[previous.requirements.length];
+ this.totalAccumulator = new float[previous.requirements.length];
}
@Override
diff --git a/core/src/mindustry/world/blocks/RespawnBlock.java b/core/src/mindustry/world/blocks/RespawnBlock.java
index 581dec8b21..b27b0af621 100644
--- a/core/src/mindustry/world/blocks/RespawnBlock.java
+++ b/core/src/mindustry/world/blocks/RespawnBlock.java
@@ -5,6 +5,7 @@ import arc.math.*;
import mindustry.entities.type.*;
import mindustry.graphics.*;
import mindustry.type.*;
+import mindustry.ui.*;
import mindustry.world.*;
import static mindustry.Vars.net;
@@ -20,7 +21,7 @@ public class RespawnBlock{
Draw.reset();
if(player != null){
- TextureRegion region = player.getIconRegion();
+ TextureRegion region = to.icon(Cicon.full);
Draw.color(0f, 0f, 0f, 0.4f * progress);
Draw.rect("circle-shadow", tile.drawx(), tile.drawy(), region.getWidth() / 3f, region.getWidth() / 3f);
diff --git a/core/src/mindustry/world/blocks/defense/ForceProjector.java b/core/src/mindustry/world/blocks/defense/ForceProjector.java
index a417c2b9e5..36ed812b5d 100644
--- a/core/src/mindustry/world/blocks/defense/ForceProjector.java
+++ b/core/src/mindustry/world/blocks/defense/ForceProjector.java
@@ -5,6 +5,7 @@ import arc.func.*;
import arc.graphics.*;
import arc.graphics.g2d.*;
import arc.math.*;
+import arc.math.geom.*;
import arc.util.*;
import mindustry.content.*;
import mindustry.entities.*;
@@ -37,7 +38,7 @@ public class ForceProjector extends Block{
private static ForceProjector paramBlock;
private static ForceEntity paramEntity;
private static Cons shieldConsumer = trait -> {
- if(trait.canBeAbsorbed() && trait.getTeam() != paramTile.getTeam() && paramBlock.isInsideHexagon(trait.getX(), trait.getY(), paramBlock.realRadius(paramEntity) * 2f, paramTile.drawx(), paramTile.drawy())){
+ if(trait.canBeAbsorbed() && trait.getTeam() != paramTile.getTeam() && Intersector.isInsideHexagon(trait.getX(), trait.getY(), paramBlock.realRadius(paramEntity) * 2f, paramTile.drawx(), paramTile.drawy())){
trait.absorb();
Effects.effect(Fx.absorb, trait);
paramEntity.hit = 1f;
@@ -111,17 +112,6 @@ public class ForceProjector extends Block{
entity.warmup = Mathf.lerpDelta(entity.warmup, entity.efficiency(), 0.1f);
-/*
- if(entity.power.status < relativePowerDraw){
- entity.warmup = Mathf.lerpDelta(entity.warmup, 0f, 0.15f);
- entity.power.status = 0f;
- if(entity.warmup <= 0.09f){
- entity.broken = true;
- }
- }else{
- entity.warmup = Mathf.lerpDelta(entity.warmup, 1f, 0.1f);
- }*/
-
if(entity.buildup > 0){
float scale = !entity.broken ? cooldownNormal : cooldownBrokenBase;
ConsumeLiquidFilter cons = consumes.get(ConsumeType.liquid);
@@ -159,13 +149,6 @@ public class ForceProjector extends Block{
return (radius + entity.phaseHeat * phaseRadiusBoost) * entity.radscl;
}
- boolean isInsideHexagon(float x0, float y0, float d, float x, float y){
- float dx = Math.abs(x - x0) / d;
- float dy = Math.abs(y - y0) / d;
- float a = 0.25f * Mathf.sqrt3;
- return (dy <= a) && (a * dx + 0.25 * dy <= 0.5 * a);
- }
-
@Override
public void draw(Tile tile){
super.draw(tile);
diff --git a/core/src/mindustry/world/blocks/defense/ShockMine.java b/core/src/mindustry/world/blocks/defense/ShockMine.java
index 4a2381e8ed..61864556b8 100644
--- a/core/src/mindustry/world/blocks/defense/ShockMine.java
+++ b/core/src/mindustry/world/blocks/defense/ShockMine.java
@@ -26,6 +26,7 @@ public class ShockMine extends Block{
solid = false;
targetable = false;
layer = Layer.overlay;
+ rebuildable = false;
}
@Override
diff --git a/core/src/mindustry/world/blocks/distribution/ExtendingItemBridge.java b/core/src/mindustry/world/blocks/distribution/ExtendingItemBridge.java
index d5aa4494a7..6fe691d117 100644
--- a/core/src/mindustry/world/blocks/distribution/ExtendingItemBridge.java
+++ b/core/src/mindustry/world/blocks/distribution/ExtendingItemBridge.java
@@ -1,9 +1,10 @@
package mindustry.world.blocks.distribution;
+import arc.*;
import arc.graphics.g2d.*;
-import arc.math.Mathf;
-import arc.math.geom.Geometry;
-import mindustry.world.Tile;
+import arc.math.*;
+import arc.math.geom.*;
+import mindustry.world.*;
import static mindustry.Vars.*;
@@ -31,6 +32,10 @@ public class ExtendingItemBridge extends ItemBridge{
ex *= uptime;
ey *= uptime;
+ float opacity = Core.settings.getInt("bridgeopacity") / 100f;
+ if(Mathf.zero(opacity)) return;
+ Draw.alpha(opacity);
+
Lines.stroke(8f);
Lines.line(bridgeRegion,
tile.worldx() + Geometry.d4[i].x * tilesize / 2f,
@@ -50,7 +55,7 @@ public class ExtendingItemBridge extends ItemBridge{
Draw.color();
for(int a = 0; a < arrows; a++){
- Draw.alpha(Mathf.absin(a / (float)arrows - entity.time / 100f, 0.1f, 1f) * uptime);
+ Draw.alpha(Mathf.absin(a / (float)arrows - entity.time / 100f, 0.1f, 1f) * uptime * opacity);
Draw.rect(arrowRegion,
tile.worldx() + Geometry.d4[i].x * (tilesize / 2f + a * 6f + 2) * uptime,
tile.worldy() + Geometry.d4[i].y * (tilesize / 2f + a * 6f + 2) * uptime, i * 90f);
diff --git a/core/src/mindustry/world/blocks/distribution/ItemBridge.java b/core/src/mindustry/world/blocks/distribution/ItemBridge.java
index 0dd4320e7d..5d16ec69ee 100644
--- a/core/src/mindustry/world/blocks/distribution/ItemBridge.java
+++ b/core/src/mindustry/world/blocks/distribution/ItemBridge.java
@@ -219,10 +219,13 @@ public class ItemBridge extends Block{
Tile other = world.tile(entity.link);
if(!linkValid(tile, other)) return;
+ float opacity = Core.settings.getInt("bridgeopacity") / 100f;
+ if(Mathf.zero(opacity)) return;
+
int i = tile.absoluteRelativeTo(other.x, other.y);
Draw.color(Color.white, Color.black, Mathf.absin(Time.time(), 6f, 0.07f));
- Draw.alpha(Math.max(entity.uptime, 0.25f));
+ Draw.alpha(Math.max(entity.uptime, 0.25f) * opacity);
Draw.rect(endRegion, tile.drawx(), tile.drawy(), i * 90 + 90);
Draw.rect(endRegion, other.drawx(), other.drawy(), i * 90 + 270);
@@ -242,7 +245,7 @@ public class ItemBridge extends Block{
Draw.color();
for(int a = 0; a < arrows; a++){
- Draw.alpha(Mathf.absin(a / (float)arrows - entity.time / 100f, 0.1f, 1f) * entity.uptime);
+ Draw.alpha(Mathf.absin(a / (float)arrows - entity.time / 100f, 0.1f, 1f) * entity.uptime * opacity);
Draw.rect(arrowRegion,
tile.worldx() + Geometry.d4[i].x * (tilesize / 2f + a * 4f + time % 4f),
tile.worldy() + Geometry.d4[i].y * (tilesize / 2f + a * 4f + time % 4f), i * 90f);
diff --git a/core/src/mindustry/world/blocks/distribution/Junction.java b/core/src/mindustry/world/blocks/distribution/Junction.java
index 43356ca939..99c22057e1 100644
--- a/core/src/mindustry/world/blocks/distribution/Junction.java
+++ b/core/src/mindustry/world/blocks/distribution/Junction.java
@@ -58,7 +58,7 @@ public class Junction extends Block{
if(dest != null) dest = dest.link();
//skip blocks that don't want the item, keep waiting until they do
- if(dest == null || !dest.block().acceptItem(item, dest, tile)){
+ if(dest == null || !dest.block().acceptItem(item, dest, tile) || dest.getTeam() != tile.getTeam()){
continue;
}
@@ -82,10 +82,9 @@ public class Junction extends Block{
JunctionEntity entity = tile.ent();
int relative = source.relativeTo(tile.x, tile.y);
- if(entity == null || relative == -1 || !entity.buffer.accepts(relative))
- return false;
+ if(entity == null || relative == -1 || !entity.buffer.accepts(relative)) return false;
Tile to = tile.getNearby(relative);
- return to != null && to.link().entity != null;
+ return to != null && to.link().entity != null && to.getTeam() == tile.getTeam();
}
class JunctionEntity extends TileEntity{
diff --git a/core/src/mindustry/world/blocks/distribution/MassDriver.java b/core/src/mindustry/world/blocks/distribution/MassDriver.java
index 1156857289..eacef7d0eb 100644
--- a/core/src/mindustry/world/blocks/distribution/MassDriver.java
+++ b/core/src/mindustry/world/blocks/distribution/MassDriver.java
@@ -162,6 +162,24 @@ public class MassDriver extends Block{
@Override
public void drawPlace(int x, int y, int rotation, boolean valid){
Drawf.dashCircle(x * tilesize, y*tilesize, range, Pal.accent);
+
+ //check if a mass driver is selected while placing this driver
+ if(!control.input.frag.config.isShown()) return;
+ Tile selected = control.input.frag.config.getSelectedTile();
+ if(selected == null || !(selected.block() instanceof MassDriver) || !(selected.dst(x * tilesize, y * tilesize) <= range)) return;
+
+ //if so, draw a dotted line towards it while it is in range
+ float sin = Mathf.absin(Time.time(), 6f, 1f);
+ Tmp.v1.set(x * tilesize + offset(), y * tilesize + offset()).sub(selected.drawx(), selected.drawy()).limit((size / 2f + 1) * tilesize + sin + 0.5f);
+ float x2 = x * tilesize - Tmp.v1.x, y2 = y * tilesize - Tmp.v1.y,
+ x1 = selected.drawx() + Tmp.v1.x, y1 = selected.drawy() + Tmp.v1.y;
+ int segs = (int)(selected.dst(x * tilesize, y * tilesize) / tilesize);
+
+ Lines.stroke(4f, Pal.gray);
+ Lines.dashLine(x1, y1, x2, y2, segs);
+ Lines.stroke(2f, Pal.placing);
+ Lines.dashLine(x1, y1, x2, y2, segs);
+ Draw.reset();
}
@Override
@@ -262,6 +280,7 @@ public class MassDriver extends Block{
}
protected boolean shooterValid(Tile tile, Tile other){
+
if(other == null) return true;
if(!(other.block() instanceof MassDriver)) return false;
MassDriverEntity entity = other.ent();
@@ -274,7 +293,7 @@ public class MassDriver extends Block{
if(entity == null || entity.link == -1) return false;
Tile link = world.tile(entity.link);
- return link != null && link.block() instanceof MassDriver && tile.dst(link) <= range;
+ return link != null && link.block() instanceof MassDriver && link.getTeam() == tile.getTeam() && tile.dst(link) <= range;
}
public static class DriverBulletData implements Poolable{
diff --git a/core/src/mindustry/world/blocks/distribution/OverflowGate.java b/core/src/mindustry/world/blocks/distribution/OverflowGate.java
index 185fdf7834..b07ae8c7be 100644
--- a/core/src/mindustry/world/blocks/distribution/OverflowGate.java
+++ b/core/src/mindustry/world/blocks/distribution/OverflowGate.java
@@ -81,11 +81,11 @@ public class OverflowGate extends Block{
if(to == null) return null;
Tile edge = Edges.getFacingEdge(tile, to);
- if(!to.block().acceptItem(item, to, edge) || (to.block() instanceof OverflowGate)){
+ if(!to.block().acceptItem(item, to, edge) || to.getTeam() != tile.getTeam() || (to.block() instanceof OverflowGate)){
Tile a = tile.getNearby(Mathf.mod(from - 1, 4));
Tile b = tile.getNearby(Mathf.mod(from + 1, 4));
- boolean ac = a != null && a.block().acceptItem(item, a, edge) && !(a.block() instanceof OverflowGate);
- boolean bc = b != null && b.block().acceptItem(item, b, edge) && !(b.block() instanceof OverflowGate);
+ boolean ac = a != null && a.block().acceptItem(item, a, edge) && !(a.block() instanceof OverflowGate) && a.getTeam() == tile.getTeam();
+ boolean bc = b != null && b.block().acceptItem(item, b, edge) && !(b.block() instanceof OverflowGate) && b.getTeam() == tile.getTeam();
if(!ac && !bc){
return null;
diff --git a/core/src/mindustry/world/blocks/distribution/Sorter.java b/core/src/mindustry/world/blocks/distribution/Sorter.java
index 89228d02de..1df5fe75e5 100644
--- a/core/src/mindustry/world/blocks/distribution/Sorter.java
+++ b/core/src/mindustry/world/blocks/distribution/Sorter.java
@@ -74,7 +74,7 @@ public class Sorter extends Block{
public boolean acceptItem(Item item, Tile tile, Tile source){
Tile to = getTileTarget(item, tile, source, false);
- return to != null && to.block().acceptItem(item, to, tile);
+ return to != null && to.block().acceptItem(item, to, tile) && to.getTeam() == tile.getTeam();
}
@Override
diff --git a/core/src/mindustry/world/blocks/power/NuclearReactor.java b/core/src/mindustry/world/blocks/power/NuclearReactor.java
index 31f95f10a6..b583b3cfdf 100644
--- a/core/src/mindustry/world/blocks/power/NuclearReactor.java
+++ b/core/src/mindustry/world/blocks/power/NuclearReactor.java
@@ -46,6 +46,7 @@ public class NuclearReactor extends PowerGenerator{
hasItems = true;
hasLiquids = true;
entityType = NuclearReactorEntity::new;
+ rebuildable = false;
}
@Override
diff --git a/core/src/mindustry/world/blocks/power/PowerDiode.java b/core/src/mindustry/world/blocks/power/PowerDiode.java
index 282e716286..eea5b46d72 100644
--- a/core/src/mindustry/world/blocks/power/PowerDiode.java
+++ b/core/src/mindustry/world/blocks/power/PowerDiode.java
@@ -27,7 +27,7 @@ public class PowerDiode extends Block{
public void update(Tile tile){
super.update(tile);
- if(tile.front() == null || tile.back() == null || !tile.back().block().hasPower || !tile.front().block().hasPower) return;
+ if(tile.front() == null || tile.back() == null || !tile.back().block().hasPower || !tile.front().block().hasPower || tile.back().getTeam() != tile.front().getTeam()) return;
PowerGraph backGraph = tile.back().entity.power.graph;
PowerGraph frontGraph = tile.front().entity.power.graph;
diff --git a/core/src/mindustry/world/blocks/production/GenericCrafter.java b/core/src/mindustry/world/blocks/production/GenericCrafter.java
index 7261effb4c..ee0e9a3c30 100644
--- a/core/src/mindustry/world/blocks/production/GenericCrafter.java
+++ b/core/src/mindustry/world/blocks/production/GenericCrafter.java
@@ -149,14 +149,6 @@ public class GenericCrafter extends Block{
return itemCapacity;
}
- public Item outputItem(){
- return outputItem == null ? null : outputItem.item;
- }
-
- public Liquid outputLiquid(){
- return outputLiquid == null ? null : outputLiquid.liquid;
- }
-
public static class GenericCrafterEntity extends TileEntity{
public float progress;
public float totalProgress;
diff --git a/core/src/mindustry/world/blocks/production/SolidPump.java b/core/src/mindustry/world/blocks/production/SolidPump.java
index 854d4be010..ac199c7b27 100644
--- a/core/src/mindustry/world/blocks/production/SolidPump.java
+++ b/core/src/mindustry/world/blocks/production/SolidPump.java
@@ -4,6 +4,7 @@ import arc.Core;
import arc.graphics.g2d.Draw;
import arc.graphics.g2d.TextureRegion;
import arc.math.Mathf;
+import arc.util.*;
import mindustry.content.Fx;
import mindustry.content.Liquids;
import mindustry.entities.Effects;
@@ -51,8 +52,8 @@ public class SolidPump extends Pump{
public void setBars(){
super.setBars();
bars.add("efficiency", entity -> new Bar(() ->
- Core.bundle.formatFloat("bar.efficiency",
- ((((SolidPumpEntity)entity).boost + 1f) * ((SolidPumpEntity)entity).warmup) * 100 * percentSolid(entity.tile.x, entity.tile.y), 1),
+ Core.bundle.formatFloat("bar.pumpspeed",
+ ((SolidPumpEntity)entity).lastPump / Time.delta() * 60, 1),
() -> Pal.ammo,
() -> ((SolidPumpEntity)entity).warmup));
}
@@ -104,11 +105,13 @@ public class SolidPump extends Pump{
if(tile.entity.cons.valid() && typeLiquid(tile) < liquidCapacity - 0.001f){
float maxPump = Math.min(liquidCapacity - typeLiquid(tile), pumpAmount * entity.delta() * fraction * entity.efficiency());
tile.entity.liquids.add(result, maxPump);
+ entity.lastPump = maxPump;
entity.warmup = Mathf.lerpDelta(entity.warmup, 1f, 0.02f);
if(Mathf.chance(entity.delta() * updateEffectChance))
Effects.effect(updateEffect, entity.x + Mathf.range(size * 2f), entity.y + Mathf.range(size * 2f));
}else{
entity.warmup = Mathf.lerpDelta(entity.warmup, 0f, 0.02f);
+ entity.lastPump = 0f;
}
entity.pumpTime += entity.warmup * entity.delta();
@@ -153,5 +156,6 @@ public class SolidPump extends Pump{
public float warmup;
public float pumpTime;
public float boost;
+ public float lastPump;
}
}
diff --git a/core/src/mindustry/world/blocks/sandbox/LiquidVoid.java b/core/src/mindustry/world/blocks/sandbox/LiquidVoid.java
new file mode 100644
index 0000000000..dbdc766dcf
--- /dev/null
+++ b/core/src/mindustry/world/blocks/sandbox/LiquidVoid.java
@@ -0,0 +1,29 @@
+package mindustry.world.blocks.sandbox;
+
+import mindustry.type.*;
+import mindustry.world.*;
+
+public class LiquidVoid extends Block{
+
+ public LiquidVoid(String name){
+ super(name);
+ hasLiquids = true;
+ solid = true;
+ update = true;
+ }
+
+ @Override
+ public void setBars(){
+ super.setBars();
+ bars.remove("liquid");
+ }
+
+ @Override
+ public boolean acceptLiquid(Tile tile, Tile source, Liquid liquid, float amount){
+ return true;
+ }
+
+ @Override
+ public void handleLiquid(Tile tile, Tile source, Liquid liquid, float amount){}
+
+}
diff --git a/core/src/mindustry/world/blocks/storage/CoreBlock.java b/core/src/mindustry/world/blocks/storage/CoreBlock.java
index f9a5cf6c9b..4a8f500d77 100644
--- a/core/src/mindustry/world/blocks/storage/CoreBlock.java
+++ b/core/src/mindustry/world/blocks/storage/CoreBlock.java
@@ -151,7 +151,7 @@ public class CoreBlock extends StorageBlock{
@Override
public void removed(Tile tile){
CoreEntity entity = tile.ent();
- int total = tile.entity.proximity().count(e -> e.entity.items == tile.entity.items);
+ int total = tile.entity.proximity().count(e -> e.entity != null && e.entity.items != null && e.entity.items == tile.entity.items);
float fract = 1f / total / state.teams.cores(tile.getTeam()).size;
tile.entity.proximity().each(e -> isContainer(e) && e.entity.items == tile.entity.items, t -> {
diff --git a/core/src/mindustry/world/blocks/storage/LaunchPad.java b/core/src/mindustry/world/blocks/storage/LaunchPad.java
index ea0a257e84..02cb9bbd29 100644
--- a/core/src/mindustry/world/blocks/storage/LaunchPad.java
+++ b/core/src/mindustry/world/blocks/storage/LaunchPad.java
@@ -73,7 +73,7 @@ public class LaunchPad extends StorageBlock{
public void update(Tile tile){
TileEntity entity = tile.entity;
- if(world.isZone() && entity.cons.valid() && world.isZone() && entity.items.total() >= itemCapacity && entity.timer.get(timerLaunch, launchTime / entity.timeScale)){
+ if(world.isZone() && entity.cons.valid() && entity.items.total() >= itemCapacity && entity.timer.get(timerLaunch, launchTime / entity.timeScale)){
for(Item item : Vars.content.items()){
Events.fire(Trigger.itemLaunch);
Effects.effect(Fx.padlaunch, tile);
diff --git a/core/src/mindustry/world/blocks/units/MechPad.java b/core/src/mindustry/world/blocks/units/MechPad.java
index 9ff7223dc6..0dadebc018 100644
--- a/core/src/mindustry/world/blocks/units/MechPad.java
+++ b/core/src/mindustry/world/blocks/units/MechPad.java
@@ -112,7 +112,7 @@ public class MechPad extends Block{
MechFactoryEntity entity = tile.ent();
if(entity.player != null){
- RespawnBlock.drawRespawn(tile, entity.heat, entity.progress, entity.time, entity.player, (!entity.sameMech && entity.player.mech == mech ? mech : Mechs.starter));
+ RespawnBlock.drawRespawn(tile, entity.heat, entity.progress, entity.time, entity.player, (!entity.sameMech && entity.player.mech == mech ? Mechs.starter : mech));
}
}
diff --git a/fastlane/metadata/android/en-US/changelogs/102.1.txt b/fastlane/metadata/android/en-US/changelogs/102.1.txt
new file mode 100644
index 0000000000..f8244a4b0b
--- /dev/null
+++ b/fastlane/metadata/android/en-US/changelogs/102.1.txt
@@ -0,0 +1,5 @@
+- Added new map view w/ panning and scrolling
+- Added block health rule
+- Added more internal teams for alternative gamemodes
+- Added features for improved server modding
+- Major internal change: package is now "mindustry" instead of "io.anuke.mindustry" (will break plugins)
diff --git a/fastlane/metadata/android/en-US/changelogs/102.2.txt b/fastlane/metadata/android/en-US/changelogs/102.2.txt
new file mode 100644
index 0000000000..f8244a4b0b
--- /dev/null
+++ b/fastlane/metadata/android/en-US/changelogs/102.2.txt
@@ -0,0 +1,5 @@
+- Added new map view w/ panning and scrolling
+- Added block health rule
+- Added more internal teams for alternative gamemodes
+- Added features for improved server modding
+- Major internal change: package is now "mindustry" instead of "io.anuke.mindustry" (will break plugins)
diff --git a/fastlane/metadata/android/en-US/changelogs/102.txt b/fastlane/metadata/android/en-US/changelogs/102.txt
new file mode 100644
index 0000000000..f8244a4b0b
--- /dev/null
+++ b/fastlane/metadata/android/en-US/changelogs/102.txt
@@ -0,0 +1,5 @@
+- Added new map view w/ panning and scrolling
+- Added block health rule
+- Added more internal teams for alternative gamemodes
+- Added features for improved server modding
+- Major internal change: package is now "mindustry" instead of "io.anuke.mindustry" (will break plugins)
diff --git a/fastlane/metadata/android/en-US/changelogs/29561.txt b/fastlane/metadata/android/en-US/changelogs/29561.txt
new file mode 100644
index 0000000000..f8244a4b0b
--- /dev/null
+++ b/fastlane/metadata/android/en-US/changelogs/29561.txt
@@ -0,0 +1,5 @@
+- Added new map view w/ panning and scrolling
+- Added block health rule
+- Added more internal teams for alternative gamemodes
+- Added features for improved server modding
+- Major internal change: package is now "mindustry" instead of "io.anuke.mindustry" (will break plugins)
diff --git a/fastlane/metadata/android/en-US/changelogs/29564.txt b/fastlane/metadata/android/en-US/changelogs/29564.txt
new file mode 100644
index 0000000000..f8244a4b0b
--- /dev/null
+++ b/fastlane/metadata/android/en-US/changelogs/29564.txt
@@ -0,0 +1,5 @@
+- Added new map view w/ panning and scrolling
+- Added block health rule
+- Added more internal teams for alternative gamemodes
+- Added features for improved server modding
+- Major internal change: package is now "mindustry" instead of "io.anuke.mindustry" (will break plugins)
diff --git a/fastlane/metadata/android/en-US/changelogs/29567.txt b/fastlane/metadata/android/en-US/changelogs/29567.txt
new file mode 100644
index 0000000000..f8244a4b0b
--- /dev/null
+++ b/fastlane/metadata/android/en-US/changelogs/29567.txt
@@ -0,0 +1,5 @@
+- Added new map view w/ panning and scrolling
+- Added block health rule
+- Added more internal teams for alternative gamemodes
+- Added features for improved server modding
+- Major internal change: package is now "mindustry" instead of "io.anuke.mindustry" (will break plugins)
diff --git a/fastlane/metadata/android/en-US/changelogs/29570.txt b/fastlane/metadata/android/en-US/changelogs/29570.txt
new file mode 100644
index 0000000000..f8244a4b0b
--- /dev/null
+++ b/fastlane/metadata/android/en-US/changelogs/29570.txt
@@ -0,0 +1,5 @@
+- Added new map view w/ panning and scrolling
+- Added block health rule
+- Added more internal teams for alternative gamemodes
+- Added features for improved server modding
+- Major internal change: package is now "mindustry" instead of "io.anuke.mindustry" (will break plugins)
diff --git a/fastlane/metadata/android/en-US/changelogs/29573.txt b/fastlane/metadata/android/en-US/changelogs/29573.txt
new file mode 100644
index 0000000000..f8244a4b0b
--- /dev/null
+++ b/fastlane/metadata/android/en-US/changelogs/29573.txt
@@ -0,0 +1,5 @@
+- Added new map view w/ panning and scrolling
+- Added block health rule
+- Added more internal teams for alternative gamemodes
+- Added features for improved server modding
+- Major internal change: package is now "mindustry" instead of "io.anuke.mindustry" (will break plugins)
diff --git a/fastlane/metadata/android/es-ES/video.txt b/fastlane/metadata/android/es-ES/video.txt
deleted file mode 100644
index 8b13789179..0000000000
--- a/fastlane/metadata/android/es-ES/video.txt
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/fastlane/metadata/android/it-IT/changelogs/102.2.txt b/fastlane/metadata/android/it-IT/changelogs/102.2.txt
new file mode 100644
index 0000000000..db62ea93f9
--- /dev/null
+++ b/fastlane/metadata/android/it-IT/changelogs/102.2.txt
@@ -0,0 +1,5 @@
+- Aggiunta una nuova modalità di visualizzazione della mappa con panoramica e scorrimento
+- Aggiunta regola della salute dei blocchi
+- Aggiunte ulteriori squadre interne per modalità di gioco alternative
+- Aggiunte funzionalità per migliorare il server modding
+- Cambiamenti interni: il package ora è "mindustry" invece di "io.anuke.mindustry" (i plugin non funzioneranno)
\ No newline at end of file
diff --git a/fastlane/metadata/android/it-IT/full_description.txt b/fastlane/metadata/android/it-IT/full_description.txt
new file mode 100644
index 0000000000..1cf2ed8e9c
--- /dev/null
+++ b/fastlane/metadata/android/it-IT/full_description.txt
@@ -0,0 +1,14 @@
+Crea elaborate catene di nastri trasportatori per rifornire di ammonizioni le tue torrette, produci materiali per la costruzione e difendi le tue strutture contro le ondate nemiche. Gioca con i tuoi amici con la modalità multigiocatore cross-platform o sfidali in partite PvP a squadre.
+
+Funzionalità:
+- 24 mappe incluse
+- Modalità campagna, completa con albero delle scoperte e aree sbloccabili
+- 4 potenti ondate con boss da sconfiggere
+- Sistemi di trasporto di energia, liquidi e oggetti
+- 19 tipi di droni, mechs e navi
+- 120+ blocchi tecnologici da padroneggiare
+- 75+ blocchi ambientali
+- Modalità multigiocatore cross-platform attraverso la rete locale o i server dedicati
+- Regole di gioco personalizzate: modifica i costi dei blocchi, le statistiche nemiche, gli oggetti di partenza, i tempi tra le ondate e molto altro
+- Un editor potente, con strumenti che permettono di generare i minerali in modo casuale, il terreno, le decorazioni e applicare simmetria alle mappe
+- Ondate delle mappe completamente personalizzabili
\ No newline at end of file
diff --git a/fastlane/metadata/android/it-IT/short_description.txt b/fastlane/metadata/android/it-IT/short_description.txt
new file mode 100644
index 0000000000..92c1aa2e38
--- /dev/null
+++ b/fastlane/metadata/android/it-IT/short_description.txt
@@ -0,0 +1 @@
+Un gioco sandbox basato sulla produzione e sulla difesa.
\ No newline at end of file
diff --git a/fastlane/metadata/android/it-IT/summary.txt b/fastlane/metadata/android/it-IT/summary.txt
new file mode 100644
index 0000000000..92c1aa2e38
--- /dev/null
+++ b/fastlane/metadata/android/it-IT/summary.txt
@@ -0,0 +1 @@
+Un gioco sandbox basato sulla produzione e sulla difesa.
\ No newline at end of file
diff --git a/fastlane/metadata/android/it-IT/title.txt b/fastlane/metadata/android/it-IT/title.txt
new file mode 100644
index 0000000000..2beb939017
--- /dev/null
+++ b/fastlane/metadata/android/it-IT/title.txt
@@ -0,0 +1 @@
+Mindustry
\ No newline at end of file
diff --git a/fastlane/metadata/android/en-US/video.txt b/fastlane/metadata/android/it-IT/video.txt
similarity index 100%
rename from fastlane/metadata/android/en-US/video.txt
rename to fastlane/metadata/android/it-IT/video.txt
diff --git a/fastlane/metadata/android/ja-JP/video.txt b/fastlane/metadata/android/ja-JP/video.txt
deleted file mode 100644
index e69de29bb2..0000000000
diff --git a/fastlane/metadata/android/ru-RU/video.txt b/fastlane/metadata/android/ru-RU/video.txt
deleted file mode 100644
index e69de29bb2..0000000000
diff --git a/fastlane/metadata/android/uk/video.txt b/fastlane/metadata/android/uk/video.txt
deleted file mode 100644
index e69de29bb2..0000000000
diff --git a/fastlane/metadata/steam/Traditional Chinese/achievements.vdf b/fastlane/metadata/steam/Traditional Chinese/achievements.vdf
new file mode 100644
index 0000000000..09ef921316
--- /dev/null
+++ b/fastlane/metadata/steam/Traditional Chinese/achievements.vdf
@@ -0,0 +1,109 @@
+"lang"
+{
+ "Language" "tchinese"
+ "Tokens"
+ {
+ "NEW_ACHIEVEMENT_20_0_NAME" "驗證通過"
+ "NEW_ACHIEVEMENT_20_0_DESC" "完成新手教學。"
+ "NEW_ACHIEVEMENT_20_1_NAME" "千人斬"
+ "NEW_ACHIEVEMENT_20_1_DESC" "累計擊敗 1000 名敵人。"
+ "NEW_ACHIEVEMENT_20_2_NAME" "十萬青年十萬肝"
+ "NEW_ACHIEVEMENT_20_2_DESC" "累計擊敗 100,000 名敵人。"
+ "NEW_ACHIEVEMENT_20_3_NAME" "大氣輸送"
+ "NEW_ACHIEVEMENT_20_3_DESC" "累計發射 10,000 個物品。"
+ "NEW_ACHIEVEMENT_20_5_NAME" "出貨出不完"
+ "NEW_ACHIEVEMENT_20_5_DESC" "累計發射 1,000,000 個物品。"
+ "NEW_ACHIEVEMENT_20_6_NAME" "征服者"
+ "NEW_ACHIEVEMENT_20_6_DESC" "在 10 場攻擊模式中獲勝。"
+ "NEW_ACHIEVEMENT_20_7_NAME" "冠軍"
+ "NEW_ACHIEVEMENT_20_7_DESC" "在 10 場多人 PvP 遊戲中獲勝。"
+ "NEW_ACHIEVEMENT_20_8_NAME" "速戰速決"
+ "NEW_ACHIEVEMENT_20_8_DESC" "在攻擊區域中於 5 波或更少波數摧毀敵人核心。"
+ "NEW_ACHIEVEMENT_20_9_NAME" "核心雨"
+ "NEW_ACHIEVEMENT_20_9_DESC" "將您的核心發射到一個區域 30 次。"
+ "NEW_ACHIEVEMENT_20_10_NAME" "頑強抵抗"
+ "NEW_ACHIEVEMENT_20_10_DESC" "活過 100 波。"
+ "NEW_ACHIEVEMENT_20_11_NAME" "不可征服"
+ "NEW_ACHIEVEMENT_20_11_DESC" "活過 500 波。"
+ "NEW_ACHIEVEMENT_20_12_NAME" "研究者"
+ "NEW_ACHIEVEMENT_20_12_DESC" "研究所有科技。"
+ "NEW_ACHIEVEMENT_20_13_NAME" "變形金剛"
+ "NEW_ACHIEVEMENT_20_13_DESC" "解鎖並變形成所有機甲。"
+ "NEW_ACHIEVEMENT_20_14_NAME" "超載"
+ "NEW_ACHIEVEMENT_20_14_DESC" "以電力攻擊被水覆蓋的敵人。"
+ "NEW_ACHIEVEMENT_20_15_NAME" "以子之矛,攻子之盾"
+ "NEW_ACHIEVEMENT_20_15_DESC" "用敵人的子彈摧毀它自己。"
+ "NEW_ACHIEVEMENT_20_17_NAME" "嚴重的錯誤"
+ "NEW_ACHIEVEMENT_20_17_DESC" "研究路由器。"
+ "NEW_ACHIEVEMENT_20_18_NAME" "大興土木"
+ "NEW_ACHIEVEMENT_20_18_DESC" "放置 10,000 個方塊。"
+ "NEW_ACHIEVEMENT_20_19_NAME" "夷為平地"
+ "NEW_ACHIEVEMENT_20_19_DESC" "摧毀 1,000 個敵方的方塊。"
+ "NEW_ACHIEVEMENT_20_20_NAME" "壯觀的災難"
+ "NEW_ACHIEVEMENT_20_20_DESC" "造成釷反應爐過熱爆炸。"
+ "NEW_ACHIEVEMENT_20_21_NAME" "製圖者"
+ "NEW_ACHIEVEMENT_20_21_DESC" "製作 10 張新地圖。"
+ "NEW_ACHIEVEMENT_20_22_NAME" "瀏覽器"
+ "NEW_ACHIEVEMENT_20_22_DESC" "從工作坊下載地圖。"
+ "NEW_ACHIEVEMENT_20_23_NAME" "創作者"
+ "NEW_ACHIEVEMENT_20_23_DESC" "在工作坊上發佈地圖。"
+ "NEW_ACHIEVEMENT_20_24_NAME" "殺手"
+ "NEW_ACHIEVEMENT_20_24_DESC" "擊敗一次 Boss。"
+ "NEW_ACHIEVEMENT_20_25_NAME" "探索者"
+ "NEW_ACHIEVEMENT_20_25_DESC" "解鎖戰役模式中的所有區域。"
+ "NEW_ACHIEVEMENT_20_26_NAME" "強迫症"
+ "NEW_ACHIEVEMENT_20_26_DESC" "完成所有區域的任務。"
+ "NEW_ACHIEVEMENT_20_29_NAME" "第二材料"
+ "NEW_ACHIEVEMENT_20_29_DESC" "解鎖釷。"
+ "NEW_ACHIEVEMENT_20_31_NAME" "第一材料"
+ "NEW_ACHIEVEMENT_20_31_DESC" "解鎖鈦。"
+ "NEW_ACHIEVEMENT_21_0_NAME" "神風特攻隊"
+ "NEW_ACHIEVEMENT_21_0_DESC" "將您的機甲裝滿爆炸性物質並自爆。"
+ "NEW_ACHIEVEMENT_21_1_NAME" "開始了"
+ "NEW_ACHIEVEMENT_21_1_DESC" "建造尖刀機甲工廠。"
+ "NEW_ACHIEVEMENT_21_2_NAME" "突擊"
+ "NEW_ACHIEVEMENT_21_2_DESC" "用指揮中心發出攻擊指令。"
+ "NEW_ACHIEVEMENT_21_3_NAME" "蜂群"
+ "NEW_ACHIEVEMENT_21_3_DESC" "同時擁有 100 個單位。"
+ "NEW_ACHIEVEMENT_21_4_NAME" "建造大隊"
+ "NEW_ACHIEVEMENT_21_4_DESC" "同時擁有 10 個鬼怪無人機。"
+ "NEW_ACHIEVEMENT_21_5_NAME" "不穩定軍隊"
+ "NEW_ACHIEVEMENT_21_5_DESC" "同時擁有 50 個爬行者。"
+ "NEW_ACHIEVEMENT_21_6_NAME" "軍團"
+ "NEW_ACHIEVEMENT_21_6_DESC" "總共建造 1000 個單位。"
+ "NEW_ACHIEVEMENT_21_7_NAME" "Super"
+ "NEW_ACHIEVEMENT_21_7_DESC" "在任意區域達到 S 等級。"
+ "NEW_ACHIEVEMENT_21_8_NAME" "Super Super"
+ "NEW_ACHIEVEMENT_21_8_DESC" "在任意區域達到 SS 等級。"
+ "NEW_ACHIEVEMENT_21_9_NAME" "誰叫你不聽?"
+ "NEW_ACHIEVEMENT_21_9_DESC" "在敵人出生點死亡。"
+ "NEW_ACHIEVEMENT_21_10_NAME" "只要按 Shift"
+ "NEW_ACHIEVEMENT_21_10_DESC" "被淹死。"
+ "NEW_ACHIEVEMENT_21_11_NAME" "蒐集者"
+ "NEW_ACHIEVEMENT_21_11_DESC" "將核心填滿所有類型的資源。"
+ "NEW_ACHIEVEMENT_21_12_NAME" "人群"
+ "NEW_ACHIEVEMENT_21_12_DESC" "建立一個有 10 個玩家的伺服器。"
+ "NEW_ACHIEVEMENT_21_13_NAME" "無懈可擊"
+ "NEW_ACHIEVEMENT_21_13_DESC" "建造 Meltdown 與 Spectre。"
+ "NEW_ACHIEVEMENT_21_14_NAME" "起飛"
+ "NEW_ACHIEVEMENT_21_14_DESC" "使用發射臺。"
+ "NEW_ACHIEVEMENT_21_15_NAME" "自業自得"
+ "NEW_ACHIEVEMENT_21_15_DESC" "跳過兩次發射機會後,核心被敵人摧毀。"
+ "NEW_ACHIEVEMENT_21_16_NAME" "異端邪說"
+ "NEW_ACHIEVEMENT_21_16_DESC" "建造兩個彼此相鄰的路由器。"
+ "NEW_ACHIEVEMENT_21_17_NAME" "孤獨的守護者"
+ "NEW_ACHIEVEMENT_21_17_DESC" "在任意區域不放置任何方塊的情況下存活 10 波。"
+ "NEW_ACHIEVEMENT_21_18_NAME" "焚化"
+ "NEW_ACHIEVEMENT_21_18_DESC" "在任意砲塔中使用黃鐵礦做為彈藥。"
+ "NEW_ACHIEVEMENT_21_19_NAME" "效率"
+ "NEW_ACHIEVEMENT_21_19_DESC" "用水或冷卻液冷卻砲塔。"
+ "NEW_ACHIEVEMENT_21_20_NAME" "經典模式"
+ "NEW_ACHIEVEMENT_21_20_DESC" "啟用像素化。"
+ "NEW_ACHIEVEMENT_21_21_NAME" "學者"
+ "NEW_ACHIEVEMENT_21_21_DESC" "從遊戲中開啟 Wiki。"
+ "NEW_ACHIEVEMENT_21_22_NAME" "領先"
+ "NEW_ACHIEVEMENT_21_22_DESC" "攜帶 10,000 或更多的資源進入一個地區。"
+ "NEW_ACHIEVEMENT_21_23_NAME" "點火"
+ "NEW_ACHIEVEMENT_21_23_DESC" "啟動衝擊反應器。"
+ }
+}
diff --git a/fastlane/metadata/steam/Traditional Chinese/description.txt b/fastlane/metadata/steam/Traditional Chinese/description.txt
new file mode 100644
index 0000000000..2bb1ea20f2
--- /dev/null
+++ b/fastlane/metadata/steam/Traditional Chinese/description.txt
@@ -0,0 +1,61 @@
+建立精密的輸送帶供應鏈,提供砲塔彈藥,生產建築原料,保護您的建築物並抵禦入侵的敵人。在跨平臺的多人合作遊戲中和朋友一起玩,或在團隊 PvP 比賽中向他們挑戰。
+
+[img]{STEAM_APP_IMAGE}/extras/ezgif-4-0e70c282f775.gif[/img]
+
+[h2]基本遊戲操作[/h2]
+
+[list]
+[*] 建造精心設計的鑽頭與輸送帶,將資源轉移到您的核心。
+[*] 使用方塊製作進階原料。
+[*] 製作無人機以自動採礦、協助建造與保護您的基地。
+[*] 分配液體並撲滅突發的火災。
+[*] 選擇性使用冷卻液與潤滑劑來提升砲塔與生產方塊的效率。
+[/list]
+
+[h2]戰役[/h2]
+
+[list]
+[*] 在 12 張可重複遊玩,並有隨機生成點的內建區域中前進
+[*] 採集並發射資源
+[*] 研究新科技以持續進步
+[*] 攜帶資源到每個區域
+[*] 多樣化的任務與目標
+[*] 邀請朋友一起完成關卡
+[*] 研究 120 種以上的科技
+[*] 19 種不同類型的無人機、機甲與飛船
+[*] 達成 50 種以上的成就
+[/list]
+
+[h2][h2]遊戲模式[/h2][/h2]
+
+[list]
+[*] [b]生存[/b]:建造砲塔來抵禦敵人入侵。生存愈久愈好,選擇發射您的核心並將您採集的資源用來研究新科技。為 Boss 的到來做好準備。
+[*] [b]攻擊[/b]:建造工廠並生產部隊來摧毀敵人的核心,同時保護自己的基地不受敵方單位的攻擊。建立各種不同類型的支援與攻擊單位來協助實現您的目標。
+[*] [b]PvP[/b]:與最多四個不同團隊的玩家競爭摧毀其他人的核心。建立單位或直接用您的飛船攻擊其他人的基地。
+[*] [b]沙盒[/b]:資源無限,且無敵人威脅。使用僅在沙盒模式中才有的物品與液體來源以測試設計,並根據需要生成敵人。
+[/list]
+
+[h2]自訂遊戲與跨平臺多人遊戲[/h2]
+
+[list]
+[*] 除了戰役以外,還有 12 個內建地圖可用於自訂遊戲
+[*] 玩合作、PvP 或沙盒模式
+[*] 加入公開的專用伺服器,或邀請朋友加入您的私人伺服器
+[*] 自訂遊戲規則:變更方塊花費、敵方屬性、起始物品、敵人來襲的間隔時間等
+[*] 混搭遊戲模式:結合 PvP 與 PvE 遊戲模式
+[/list]
+
+[h2]自訂地圖編輯器[/h2]
+
+[list]
+[*] 使用編輯器來繪製地圖
+[*] 在遊戲中編輯並預覽建築
+[*] 可設定的工具模式:變更每個工具的功能
+[*] 強大的地圖生成系統,有許多不同類型的過濾器,可用於地形的可程式化處理
+[*] 將噪音、變形、平滑、腐蝕、對稱、礦物生成與隨機地形套用到您的地圖上
+[*] 隨機設定礦物生成,並放置河流與資源
+[*] 設定敵人攻擊佈局
+[*] 在 Steam 工作坊上分享匯出的地圖
+[*] 自訂地圖的基礎規則
+[*] 使用 75 種以上不同的環境方塊
+[/list]
diff --git a/fastlane/metadata/steam/Traditional Chinese/short-description.txt b/fastlane/metadata/steam/Traditional Chinese/short-description.txt
new file mode 100644
index 0000000000..76738a4a74
--- /dev/null
+++ b/fastlane/metadata/steam/Traditional Chinese/short-description.txt
@@ -0,0 +1 @@
+一款側重資源管理的開放式塔防遊戲。
diff --git a/fastlane/metadata/steam/italian/achievements.vdf b/fastlane/metadata/steam/italian/achievements.vdf
index a000858b27..dc2a1f78d3 100644
--- a/fastlane/metadata/steam/italian/achievements.vdf
+++ b/fastlane/metadata/steam/italian/achievements.vdf
@@ -91,7 +91,7 @@
"NEW_ACHIEVEMENT_21_15_DESC" "Salta il decollo due volte e perdi il nucleo per mano nemica."
"NEW_ACHIEVEMENT_21_16_NAME" "Eresia"
"NEW_ACHIEVEMENT_21_16_DESC" "Costruisci due distributori uno affianco all'altro."
- "NEW_ACHIEVEMENT_21_17_NAME" "Guardiano dell'amore"
+ "NEW_ACHIEVEMENT_21_17_NAME" "Guardiano Solitario"
"NEW_ACHIEVEMENT_21_17_DESC" "Sopravvivi a 10 ondate in qualsiasi zona senza piazzare blocchi."
"NEW_ACHIEVEMENT_21_18_NAME" "Incenerimento"
"NEW_ACHIEVEMENT_21_18_DESC" "Usa la Pirite in una torretta qualsiasi."
diff --git a/fastlane/metadata/steam/spanish/achievements.vdf b/fastlane/metadata/steam/spanish/achievements.vdf
new file mode 100644
index 0000000000..fb67d82c9d
--- /dev/null
+++ b/fastlane/metadata/steam/spanish/achievements.vdf
@@ -0,0 +1,109 @@
+"lang"
+{
+ "Language" "spanish"
+ "Tokens"
+ {
+ "NEW_ACHIEVEMENT_20_0_NAME" "Verificado"
+ "NEW_ACHIEVEMENT_20_0_DESC" "Completa el tutorial."
+ "NEW_ACHIEVEMENT_20_1_NAME" "Scrapper"
+ "NEW_ACHIEVEMENT_20_1_DESC" "Destruye 1,000 unidades enemigas."
+ "NEW_ACHIEVEMENT_20_2_NAME" "Purga"
+ "NEW_ACHIEVEMENT_20_2_DESC" "Destruye 100,000 unidades enemigas."
+ "NEW_ACHIEVEMENT_20_3_NAME" "Transporte Atmosférico"
+ "NEW_ACHIEVEMENT_20_3_DESC" "Lanza 10,000 items en total."
+ "NEW_ACHIEVEMENT_20_5_NAME" "Envíos Sin Fin"
+ "NEW_ACHIEVEMENT_20_5_DESC" "Lanza un total de 1,000,000 ítems."
+ "NEW_ACHIEVEMENT_20_6_NAME" "Conquistador"
+ "NEW_ACHIEVEMENT_20_6_DESC" "Gana 10 partidas en modo Invasión"
+ "NEW_ACHIEVEMENT_20_7_NAME" "Campeón"
+ "NEW_ACHIEVEMENT_20_7_DESC" "Gana 10 partidas PvP Multijugador."
+ "NEW_ACHIEVEMENT_20_8_NAME" "Rápido"
+ "NEW_ACHIEVEMENT_20_8_DESC" "Destruye el núcleo enemigo en 5 oleadas o menos."
+ "NEW_ACHIEVEMENT_20_9_NAME" "Lluvia de núcleos"
+ "NEW_ACHIEVEMENT_20_9_DESC" "Lanza tu núcleo a una zona 30 veces."
+ "NEW_ACHIEVEMENT_20_10_NAME" "Tenaz"
+ "NEW_ACHIEVEMENT_20_10_DESC" "Sobrevive 100 oleadas."
+ "NEW_ACHIEVEMENT_20_11_NAME" "Unvanquished"
+ "NEW_ACHIEVEMENT_20_11_DESC" "Sobrevive 500 oleadas."
+ "NEW_ACHIEVEMENT_20_12_NAME" "Investigador"
+ "NEW_ACHIEVEMENT_20_12_DESC" "Investiga todo el árbol de tecnologías."
+ "NEW_ACHIEVEMENT_20_13_NAME" "Cambiaformas"
+ "NEW_ACHIEVEMENT_20_13_DESC" "Desbloquea y transformate en todos los mecanoides del juego."
+ "NEW_ACHIEVEMENT_20_14_NAME" "Sobrecarga"
+ "NEW_ACHIEVEMENT_20_14_DESC" "Ataca a un enemigo con electricidad mientras este recibe agua."
+ "NEW_ACHIEVEMENT_20_15_NAME" "Desviación"
+ "NEW_ACHIEVEMENT_20_15_DESC" "Destruye una unidad haciendo rebotar su propia bala."
+ "NEW_ACHIEVEMENT_20_17_NAME" "Un grave, grave error"
+ "NEW_ACHIEVEMENT_20_17_DESC" "Investiga el enrutador."
+ "NEW_ACHIEVEMENT_20_18_NAME" "Creador"
+ "NEW_ACHIEVEMENT_20_18_DESC" "Coloca 10,000 bloques."
+ "NEW_ACHIEVEMENT_20_19_NAME" "Raze"
+ "NEW_ACHIEVEMENT_20_19_DESC" "Destruye 1,000 bloques enemigos."
+ "NEW_ACHIEVEMENT_20_20_NAME" "Un desastre espectacular"
+ "NEW_ACHIEVEMENT_20_20_DESC" "Causa que un reactor de torio se sobre caliente y explote."
+ "NEW_ACHIEVEMENT_20_21_NAME" "Mapper"
+ "NEW_ACHIEVEMENT_20_21_DESC" "Crea un nuevo mapa 10 veces."
+ "NEW_ACHIEVEMENT_20_22_NAME" "Buscador"
+ "NEW_ACHIEVEMENT_20_22_DESC" "Descarga un mapa de la Workshop."
+ "NEW_ACHIEVEMENT_20_23_NAME" "Creador"
+ "NEW_ACHIEVEMENT_20_23_DESC" "Publca un mapa en la Workshop."
+ "NEW_ACHIEVEMENT_20_24_NAME" "Slayer"
+ "NEW_ACHIEVEMENT_20_24_DESC" "Derrota un boss."
+ "NEW_ACHIEVEMENT_20_25_NAME" "Explorador"
+ "NEW_ACHIEVEMENT_20_25_DESC" "Desbloquea todas las zonas de la campaña."
+ "NEW_ACHIEVEMENT_20_26_NAME" "Minucioso"
+ "NEW_ACHIEVEMENT_20_26_DESC" "Alcanza el requisito de configuración en todas las zonas."
+ "NEW_ACHIEVEMENT_20_29_NAME" "Material II"
+ "NEW_ACHIEVEMENT_20_29_DESC" "Desbloquea el Torio."
+ "NEW_ACHIEVEMENT_20_31_NAME" "Material I"
+ "NEW_ACHIEVEMENT_20_31_DESC" "Desbloquea el Titanio."
+ "NEW_ACHIEVEMENT_21_0_NAME" "Kamikaze"
+ "NEW_ACHIEVEMENT_21_0_DESC" "LLena tu mecanoide de explosivos y muere, creando una explosión."
+ "NEW_ACHIEVEMENT_21_1_NAME" "Así comienza"
+ "NEW_ACHIEVEMENT_21_1_DESC" "Construye una fábrica de drones Daga."
+ "NEW_ACHIEVEMENT_21_2_NAME" "Asalto Directo"
+ "NEW_ACHIEVEMENT_21_2_DESC" "Utiliza el comando ataque desde el centro de comando."
+ "NEW_ACHIEVEMENT_21_3_NAME" "Swarm"
+ "NEW_ACHIEVEMENT_21_3_DESC" "Consigue 100 unidades activas al mismo tiempo."
+ "NEW_ACHIEVEMENT_21_4_NAME" "Flock"
+ "NEW_ACHIEVEMENT_21_4_DESC" "Consigue 10 drones fantasmales activos al mismo tiempo."
+ "NEW_ACHIEVEMENT_21_5_NAME" "Ejército volátil"
+ "NEW_ACHIEVEMENT_21_5_DESC" "Consigue 50 Crawlers activos al mismo tiempo."
+ "NEW_ACHIEVEMENT_21_6_NAME" "Legiones"
+ "NEW_ACHIEVEMENT_21_6_DESC" "Construye 1,000 unidades en total."
+ "NEW_ACHIEVEMENT_21_7_NAME" "Super"
+ "NEW_ACHIEVEMENT_21_7_DESC" "Consigue el rango S en cualquier zona."
+ "NEW_ACHIEVEMENT_21_8_NAME" "Super Super"
+ "NEW_ACHIEVEMENT_21_8_DESC" "Consigue el rango SS en cualquier zona."
+ "NEW_ACHIEVEMENT_21_9_NAME" "Deberías haber hecho caso"
+ "NEW_ACHIEVEMENT_21_9_DESC" "Muere en la zona del punto de exclusión."
+ "NEW_ACHIEVEMENT_21_10_NAME" "Solo aprieta Shift"
+ "NEW_ACHIEVEMENT_21_10_DESC" "Muere ahogado, como sea."
+ "NEW_ACHIEVEMENT_21_11_NAME" "Coleccionista"
+ "NEW_ACHIEVEMENT_21_11_DESC" "Llena el núcleo con la máxima cantidad de todos los recursos."
+ "NEW_ACHIEVEMENT_21_12_NAME" "10 son multitud"
+ "NEW_ACHIEVEMENT_21_12_DESC" "Hostea un servidor con 10 jugadores."
+ "NEW_ACHIEVEMENT_21_13_NAME" "Invencible"
+ "NEW_ACHIEVEMENT_21_13_DESC" "Construye el Meltdown y el Espectro."
+ "NEW_ACHIEVEMENT_21_14_NAME" "Liftoff"
+ "NEW_ACHIEVEMENT_21_14_DESC" "Use the Launch Pad."
+ "NEW_ACHIEVEMENT_21_15_NAME" "Complacencia"
+ "NEW_ACHIEVEMENT_21_15_DESC" "Saltea lanzar dos veces, luego deja que los enemigos destruyan tu núcleo."
+ "NEW_ACHIEVEMENT_21_16_NAME" "Herejía"
+ "NEW_ACHIEVEMENT_21_16_DESC" "Construye dos enrutadores, uno al lado del otro."
+ "NEW_ACHIEVEMENT_21_17_NAME" "Guardián solitario"
+ "NEW_ACHIEVEMENT_21_17_DESC" "Sobrevive 10 oleadas sin colocar ni un solo bloque."
+ "NEW_ACHIEVEMENT_21_18_NAME" "Incinerador"
+ "NEW_ACHIEVEMENT_21_18_DESC" "Usa pirotita para cargar una torreta."
+ "NEW_ACHIEVEMENT_21_19_NAME" "Eficiente"
+ "NEW_ACHIEVEMENT_21_19_DESC" "Refrigera una torreta con líquido criogénico."
+ "NEW_ACHIEVEMENT_21_20_NAME" "Modo Clásico"
+ "NEW_ACHIEVEMENT_21_20_DESC" "Activa el modo pixelado."
+ "NEW_ACHIEVEMENT_21_21_NAME" "Estudiante"
+ "NEW_ACHIEVEMENT_21_21_DESC" "Abre la wiki desde el juego."
+ "NEW_ACHIEVEMENT_21_22_NAME" "Comienzo a lo grande"
+ "NEW_ACHIEVEMENT_21_22_DESC" "Lanzate a una zona con mas de 10.000 recursos configurados."
+ "NEW_ACHIEVEMENT_21_23_NAME" "Ignición"
+ "NEW_ACHIEVEMENT_21_23_DESC" "Alimenta con energía un generador de impacto."
+ }
+}
diff --git a/fastlane/metadata/steam/spanish/description.txt b/fastlane/metadata/steam/spanish/description.txt
new file mode 100644
index 0000000000..979f2ad430
--- /dev/null
+++ b/fastlane/metadata/steam/spanish/description.txt
@@ -0,0 +1,61 @@
+Crea elaboradas cadenas de suministros para cargar tus torretas, produce materiales para crear estructuras y defiendelas de oleadas de enemigos. Juega con tus amigos en un multijugador cooperativo multiplataforma, o pelea contra ellos en batallas PvP por equipos.
+
+[img]{STEAM_APP_IMAGE}/extras/ezgif-4-0e70c282f775.gif[/img]
+
+[h2]Gameplay[/h2]
+
+[list]
+[*] Crea taladros y cintas transportadoras para enviar recursos a tu núcleo
+[*] Usa bloques de producción para crear materiales avanzados
+[*] Construye drones para minar recursos automaticamente, construir y defender tu base de forma eficiente
+[*] Distribuye liquidos y apaga posibles incendios
+[*] Potencia la producción refrigerando y lubricando tus defensas y bloques de construcción
+[/list]
+
+[h2]Campaña[/h2]
+
+[list]
+[*] Avanza a través de 12 zonas completamente rejugables con puntos de aparición randomizados
+[*] Obtén y lanza recursos para investigar nuevas tecnologías
+[*] Investiga nuevos bloques para facilitar tu progreso
+[*] Configura los recursos iniciales de cada área a tus necesidades
+[*] Gran variedad de misiones y objetivos
+[*] Juega con tus amigos y completa niveles con ellos
+[*] Mas de 120 bloques por investigar y descubrir
+[*] 19 tipos de drones, mecanoides y naves
+[*] Mas de 50 logros para completar
+[/list]
+
+[h2][h2]Modos de juego[/h2][/h2]
+
+[list]
+[*] [b]Supervivencia[/b]: Construye torretas para defenderte de tus enemigos con un estilo de Tower Defense. Sobrevive tanto como puedas, lanzando tu núcleo (opcionalmente) para utilizar los recursos con propósitos de investigación. Prepara tu base para el ataque de intermitentes bosses áereos.
+[*] [b]Invasión[/b]: Construye fábricas de unidades para destruir el núcleo enemigo, mientras resistes oleadas periódicamente. Utiliza distintos tipos de unidades de ataque y soporte para ayudarte en la conquista.
+[*] [b]PvP[/b]: Compite contra otros jugadores en hasta 4 equipos diferentes para destruir el núcleo de los demás. Crea unidades o ataca directamente con mecanoides la base de tus enemigos.
+[*] [b]Sandbox[/b]: Juega libremente con recursos infinitos y sin enemigos molestando. Usa bloques exclusivos de sandbox para facilitar la prueba de diseños. Crea oleadas a gusto.
+[/list]
+
+[h2]Partidas personalizadas y multijugador multiplataforma[/h2]
+
+[list]
+[*] 12 mapas integrados para partidas personalizadas, además de los de la campaña
+[*] Juega en cooperativo, Sandbox o PvP
+[*] Únete a un servidor dedicado, o invita amigos a tu partida privada
+[*] Reglas personalizadas: Cambia costos y tiempos de tus estructuras. Regula la fuerza de tus enemigos y cada cuanto aparecen, entre otras opciones
+[*] Modos de juego combinados: Juega PvP y PvE al mismo tiempo
+[/list]
+
+[h2]Editor de mapas[/h2]
+
+[list]
+[*] Dibuja terreno con una interfaz completa de editor
+[*] Edita y visualiza estructuras in-game
+[*] Configura los modos de las herramientas
+[*] Poderoso algoritmo de generacion, aplica filtros de terreno.
+[*] Aplica distorsión, simetria, suavidad, generación de terreno y más a tus mapas
+[*] Randomiza la generacion de ores y terreno, para que cada partida sea distinta
+[*] Configura las oleadas a tu gusto
+[*] Comparte mapas en la Steam Workshop
+[*] Personaliza las reglas de los mapas
+[*] Usa mas de 75 bloques ambientales, para darle un estilo único a tus mapas
+[/list]
diff --git a/fastlane/metadata/steam/spanish/short-description.txt b/fastlane/metadata/steam/spanish/short-description.txt
new file mode 100644
index 0000000000..0966131f11
--- /dev/null
+++ b/fastlane/metadata/steam/spanish/short-description.txt
@@ -0,0 +1 @@
+Un Tower Defense abierto centrado en la gestión de recursos.
diff --git a/gradle.properties b/gradle.properties
index 19101944cf..d4613deadb 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -1,3 +1,3 @@
org.gradle.daemon=true
org.gradle.jvmargs=-Xms256m -Xmx1024m
-archash=60a9ebe264f92f2c3082596c77b9ab29474c4a7f
+archash=49849134b9321f44f0d7ee2e0bb533cc6c69d39a
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 6ce793f21e..5028f28f8e 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-6.0-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
diff --git a/server/run-jar b/server/run-jar
new file mode 100755
index 0000000000..2ab341566f
--- /dev/null
+++ b/server/run-jar
@@ -0,0 +1,19 @@
+#!/usr/bin/env bash
+if [[ $# -eq 0 ]] ; then
+ echo 'A server jar must be supplied as the first argument.'
+ exit 1
+fi
+
+if [[ ! -e $1 ]] ; then
+ echo "The supplied jar file '$1' must exist."
+ exit 1
+fi
+
+while true; do
+#auto-restart until ctrl-c or exit 0
+java -jar -XX:+HeapDumpOnOutOfMemoryError $1
+excode=$?
+if [ $excode -eq 0 ] || [ $excode -eq 130 ]; then
+ exit 0
+fi
+done
diff --git a/run-server b/server/run-server
similarity index 54%
rename from run-server
rename to server/run-server
index 0358cb521b..4e337686a0 100755
--- a/run-server
+++ b/server/run-server
@@ -4,5 +4,22 @@ if [[ $# -eq 0 ]] ; then
exit 1
fi
+cd ..
+
./gradlew server:dist -Pbuildversion=$1
+
+excode=$?
+
+if [ $excode -ne 0 ]; then
+ echo $excode
+ exit 1
+fi
+
+while true; do
+#auto-restart until ctrl-c or exit 0
java -jar -XX:+HeapDumpOnOutOfMemoryError server/build/libs/server-release.jar
+excode=$?
+if [ $excode -eq 0 ] || [ $excode -eq 130 ]; then
+ exit 0
+fi
+done
diff --git a/server/src/mindustry/server/ServerControl.java b/server/src/mindustry/server/ServerControl.java
index 3637ac972e..c62abff162 100644
--- a/server/src/mindustry/server/ServerControl.java
+++ b/server/src/mindustry/server/ServerControl.java
@@ -1,11 +1,11 @@
package mindustry.server;
import arc.*;
+import arc.files.*;
import arc.struct.*;
import arc.struct.Array.*;
-import arc.files.*;
-import arc.util.*;
import arc.util.ArcAnnotate.*;
+import arc.util.*;
import arc.util.Timer;
import arc.util.CommandHandler.*;
import arc.util.Timer.*;
@@ -40,7 +40,6 @@ import static mindustry.Vars.*;
public class ServerControl implements ApplicationListener{
private static final int roundExtraTime = 12;
private static final int maxLogLength = 1024 * 512;
- private static final int commandSocketPort = 6859;
protected static String[] tags = {"&lc&fb[D]", "&lg&fb[I]", "&ly&fb[W]", "&lr&fb[E]", ""};
protected static DateTimeFormatter dateTime = DateTimeFormatter.ofPattern("MM-dd-yyyy | HH:mm:ss");
@@ -64,10 +63,6 @@ public class ServerControl implements ApplicationListener{
"bans", "",
"admins", "",
"shufflemode", "custom",
- "crashreport", false,
- "port", port,
- "logging", true,
- "socket", false,
"globalrules", "{reactorExplosions: false}"
);
@@ -75,7 +70,7 @@ public class ServerControl implements ApplicationListener{
String result = "[" + dateTime.format(LocalDateTime.now()) + "] " + format(tags[level.ordinal()] + " " + text + "&fr", args1);
System.out.println(result);
- if(Core.settings.getBool("logging")){
+ if(Config.logging.bool()){
logToFile("[" + dateTime.format(LocalDateTime.now()) + "] " + format(tags[level.ordinal()] + " " + text + "&fr", false, args1));
}
@@ -95,11 +90,17 @@ public class ServerControl implements ApplicationListener{
registerCommands();
Core.app.post(() -> {
- String[] commands = {};
+ Array commands = new Array<>();
if(args.length > 0){
- commands = Strings.join(" ", args).split(",");
- info("&lmFound {0} command-line arguments to parse.", commands.length);
+ commands.addAll(Strings.join(" ", args).split(","));
+ info("&lmFound {0} command-line arguments to parse.", commands.size);
+ }
+
+ if(!Config.startCommands.string().isEmpty()){
+ String[] startup = Strings.join(" ", Config.startCommands.string()).split(",");
+ info("&lmFound {0} startup commands.", startup.length);
+ commands.addAll(startup);
}
for(String s : commands){
@@ -107,7 +108,6 @@ public class ServerControl implements ApplicationListener{
if(response.type != ResponseType.valid){
err("Invalid command argument sent: '{0}': {1}", s, response.type.name());
err("Argument usage: &lc , ");
- System.exit(1);
}
}
});
@@ -158,16 +158,27 @@ public class ServerControl implements ApplicationListener{
}
});
+ Events.on(Trigger.socketConfigChanged, () -> {
+ toggleSocket(false);
+ toggleSocket(Config.socketInput.bool());
+ });
+
+ Events.on(PlayEvent.class, e -> {
+ try{
+ JsonValue value = JsonIO.json().fromJson(null, Core.settings.getString("globalrules"));
+ JsonIO.json().readFields(state.rules, value);
+ }catch(Throwable t){
+ Log.err("Error applying custom rules, proceeding without them.", t);
+ }
+ });
+
if(!mods.list().isEmpty()){
info("&lc{0} mods loaded.", mods.list().size);
}
- info("&lcServer loaded. Type &ly'help'&lc for help.");
- System.out.print("> ");
+ toggleSocket(Config.socketInput.bool());
- if(Core.settings.getBool("socket")){
- toggleSocket(true);
- }
+ info("&lcServer loaded. Type &ly'help'&lc for help.");
}
private void registerCommands(){
@@ -179,7 +190,7 @@ public class ServerControl implements ApplicationListener{
});
handler.register("version", "Displays server version info.", arg -> {
- info("&lmVersion: &lyMindustry {0}-{1} {2} / build {3}", Version.number, Version.modifier, Version.type, Version.build);
+ info("&lmVersion: &lyMindustry {0}-{1} {2} / build {3}", Version.number, Version.modifier, Version.type, Version.build + (Version.revision == 0 ? "" : "." + Version.revision));
info("&lmJava Version: &ly{0}", System.getProperty("java.version"));
});
@@ -236,32 +247,16 @@ public class ServerControl implements ApplicationListener{
try{
world.loadMap(result, result.applyRules(lastMode));
state.rules = result.applyRules(preset);
- applyRules();
logic.play();
info("Map loaded.");
- host();
+ netServer.openServer();
}catch(MapException e){
Log.err(e.map.name() + ": " + e.getMessage());
}
});
- handler.register("port", "[port]", "Sets or displays the port for hosting the server.", arg -> {
- if(arg.length == 0){
- info("&lyPort: &lc{0}", Core.settings.getInt("port"));
- }else{
- int port = Strings.parseInt(arg[0]);
- if(port < 0 || port > 65535){
- err("Port must be a number between 0 and 65535.");
- return;
- }
- info("&lyPort set to {0}.", port);
- Core.settings.put("port", port);
- Core.settings.save();
- }
- });
-
handler.register("maps", "Display all available maps.", arg -> {
if(!maps.all().isEmpty()){
info("Maps:");
@@ -297,7 +292,7 @@ public class ServerControl implements ApplicationListener{
info("&ly {0} seconds until next wave.", (int)(state.wavetime / 60));
}
- info(" &ly{0} FPS, {1} MB used.", (int)(60f / Time.delta()), Core.app.getJavaHeap() / 1024 / 1024);
+ info(" &ly{0} FPS, {1} MB used.", Core.graphics.getFramesPerSecond(), Core.app.getJavaHeap() / 1024 / 1024);
if(playerGroup.size() > 0){
info(" &lyPlayers: {0}", playerGroup.size());
@@ -403,7 +398,7 @@ public class ServerControl implements ApplicationListener{
base.addChild(arg[1], value);
Log.info("Changed rule: &ly{0}", value.toString().replace("\n", " "));
}catch(Throwable e){
- Log.err("Error parsing rule JSON", e);
+ Log.err("Error parsing rule JSON: {0}", e.getMessage());
}
}
@@ -440,16 +435,6 @@ public class ServerControl implements ApplicationListener{
});
- handler.register("name", "[name...]", "Change the server display name.", arg -> {
- if(arg.length == 0){
- info("Server name is currently &lc'{0}'.", Core.settings.getString("servername"));
- return;
- }
- Core.settings.put("servername", arg[0]);
- Core.settings.save();
- info("Server name is now &lc'{0}'.", arg[0]);
- });
-
handler.register("playerlimit", "[off/somenumber]", "Set the server player limit.", arg -> {
if(arg.length == 0){
info("Player limit is currently &lc{0}.", netServer.admins.getPlayerLimit() == 0 ? "off" : netServer.admins.getPlayerLimit());
@@ -470,14 +455,71 @@ public class ServerControl implements ApplicationListener{
}
});
- handler.register("whitelist", "[on/off...]", "Enable/disable whitelisting.", arg -> {
+ handler.register("config", "[name] [value...]", "Configure server settings.", arg -> {
if(arg.length == 0){
- info("Whitelist is currently &lc{0}.", netServer.admins.isWhitelistEnabled() ? "on" : "off");
+ info("&lyAll config values:");
+ for(Config c : Config.all){
+ Log.info("&ly| &lc{0}:&lm {1}", c.name(), c.get());
+ Log.info("&ly| | {0}", c.description);
+ Log.info("&ly|");
+ }
return;
}
- boolean on = arg[0].equalsIgnoreCase("on");
- netServer.admins.setWhitelist(on);
- info("Whitelist is now &lc{0}.", on ? "on" : "off");
+
+ try{
+ Config c = Config.valueOf(arg[0]);
+ if(arg.length == 1){
+ Log.info("&lc'{0}'&lg is currently &lc{1}.", c.name(), c.get());
+ }else{
+ if(c.isBool()){
+ c.set(arg[1].equals("on") || arg[1].equals("true"));
+ }else if(c.isNum()){
+ try{
+ c.set(Integer.parseInt(arg[1]));
+ }catch(NumberFormatException e){
+ Log.err("Not a valid number: {0}", arg[1]);
+ return;
+ }
+ }else if(c.isString()){
+ c.set(arg[1]);
+ }
+
+ Log.info("&lc{0}&lg set to &lc{1}.", c.name(), c.get());
+ }
+ }catch(IllegalArgumentException e){
+ err("Unknown config: '{0}'. Run the command with no arguments to get a list of valid configs.", arg[0]);
+ }
+ });
+
+ handler.register("subnet-ban", "[add/remove] [address]", "Ban a subnet. This simply rejects all connections with IPs starting with some string.", arg -> {
+ if(arg.length == 0){
+ Log.info("Subnets banned: &lc{0}", netServer.admins.getSubnetBans().isEmpty() ? "" : "");
+ for(String subnet : netServer.admins.getSubnetBans()){
+ Log.info("&ly " + subnet + "");
+ }
+ }else if(arg.length == 1){
+ err("You must provide a subnet to add or remove.");
+ }else{
+ if(arg[0].equals("add")){
+ if(netServer.admins.getSubnetBans().contains(arg[1])){
+ err("That subnet is already banned.");
+ return;
+ }
+
+ netServer.admins.addSubnetBan(arg[1]);
+ Log.info("Banned &ly{0}&lc**", arg[1]);
+ }else if(arg[0].equals("remove")){
+ if(!netServer.admins.getSubnetBans().contains(arg[1])){
+ err("That subnet isn't banned.");
+ return;
+ }
+
+ netServer.admins.removeSubnetBan(arg[1]);
+ Log.info("Unbanned &ly{0}&lc**", arg[1]);
+ }else{
+ err("Incorrect usage. You must provide add/remove as the second argument.");
+ }
+ }
});
handler.register("whitelisted", "List the entire whitelist.", arg -> {
@@ -512,67 +554,6 @@ 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", "", "Disables or enables automatic crash reporting", arg -> {
- boolean value = arg[0].equalsIgnoreCase("on");
- Core.settings.put("crashreport", value);
- Core.settings.save();
- info("Crash reporting is now {0}.", value ? "on" : "off");
- });
-
- handler.register("logging", "", "Disables or enables server logs", arg -> {
- boolean value = arg[0].equalsIgnoreCase("on");
- Core.settings.put("logging", value);
- Core.settings.save();
- info("Logging is now {0}.", value ? "on" : "off");
- });
-
- handler.register("strict", "", "Disables or enables strict mode", arg -> {
- boolean value = arg[0].equalsIgnoreCase("on");
- netServer.admins.setStrict(value);
- info("Strict mode is now {0}.", netServer.admins.getStrict() ? "on" : "off");
- });
-
- handler.register("socketinput", "[on/off]", "Disables or enables a local TCP socket at port "+commandSocketPort+" to recieve commands from other applications", arg -> {
- if(arg.length == 0){
- info("Socket input is currently &lc{0}.", Core.settings.getBool("socket") ? "on" : "off");
- return;
- }
-
- boolean value = arg[0].equalsIgnoreCase("on");
- toggleSocket(value);
- Core.settings.put("socket", value);
- Core.settings.save();
- info("Socket input is now &lc{0}.", value ? "on" : "off");
- });
-
- handler.register("allow-custom-clients", "[on/off]", "Allow or disallow custom clients.", arg -> {
- if(arg.length == 0){
- info("Custom clients are currently &lc{0}.", netServer.admins.allowsCustomClients() ? "allowed" : "disallowed");
- return;
- }
-
- String s = arg[0];
- if(s.equalsIgnoreCase("on")){
- netServer.admins.setCustomClients(true);
- info("Custom clients enabled.");
- }else if(s.equalsIgnoreCase("off")){
- netServer.admins.setCustomClients(false);
- info("Custom clients disabled.");
- }else{
- err("Incorrect command usage.");
- }
- });
-
handler.register("shuffle", "[none/all/custom/builtin]", "Set map shuffling mode.", arg -> {
if(arg.length == 0){
info("Shuffle mode current set to &ly'{0}'&lg.", maps.getShuffleMode());
@@ -761,8 +742,8 @@ public class ServerControl implements ApplicationListener{
SaveIO.load(file);
state.rules.zone = null;
info("Save loaded.");
- host();
state.set(State.playing);
+ netServer.openServer();
}catch(Throwable t){
err("Failed to load save. Outdated or corrupt file.");
}
@@ -835,15 +816,6 @@ public class ServerControl implements ApplicationListener{
mods.eachClass(p -> p.registerClientCommands(netServer.clientCommands));
}
- private void applyRules(){
- try{
- JsonValue value = JsonIO.json().fromJson(null, Core.settings.getString("globalrules"));
- JsonIO.json().readFields(state.rules, value);
- }catch(Throwable t){
- Log.err("Error applying custom rules, proceeding without them.", t);
- }
- }
-
private void readCommands(){
Scanner scan = new Scanner(System.in);
@@ -879,8 +851,6 @@ public class ServerControl implements ApplicationListener{
}else if(response.type == ResponseType.manyArguments){
err("Too many command arguments. Usage: " + response.command.text + " " + response.command.paramText);
}
-
- System.out.print("> ");
}
private void play(boolean wait, Runnable run){
@@ -896,9 +866,8 @@ public class ServerControl implements ApplicationListener{
Call.onWorldDataBegin();
run.run();
- logic.play();
state.rules = world.getMap().applyRules(lastMode);
- applyRules();
+ logic.play();
for(Player p : players){
if(p.con == null) continue;
@@ -931,19 +900,6 @@ public class ServerControl implements ApplicationListener{
}
}
- private void host(){
- try{
- net.host(Core.settings.getInt("port"));
- info("&lcOpened a server on port {0}.", Core.settings.getInt("port"));
- }catch(BindException e){
- Log.err("Unable to host: Port already in use! Make sure no other servers are running on the same port in your network.");
- state.set(State.menu);
- }catch(IOException e){
- err(e);
- state.set(State.menu);
- }
- }
-
private void logToFile(String text){
if(currentLogFile != null && currentLogFile.length() > maxLogLength){
String date = DateTimeFormatter.ofPattern("MM-dd-yyyy | HH:mm:ss").format(LocalDateTime.now());
@@ -968,7 +924,7 @@ public class ServerControl implements ApplicationListener{
socketThread = new Thread(() -> {
try{
serverSocket = new ServerSocket();
- serverSocket.bind(new InetSocketAddress("localhost", commandSocketPort));
+ serverSocket.bind(new InetSocketAddress(Config.socketInputAddress.string(), Config.socketInputPort.num()));
while(true){
Socket client = serverSocket.accept();
info("&lmRecieved command socket connection: &lb{0}", serverSocket.getLocalSocketAddress());
diff --git a/servers.json b/servers.json
index 0637a088a0..81ea4bf021 100644
--- a/servers.json
+++ b/servers.json
@@ -1 +1,5 @@
-[]
\ No newline at end of file
+[
+ {
+ "address": "mindustry.us.to"
+ }
+]
diff --git a/servers_be.json b/servers_be.json
new file mode 100644
index 0000000000..be72d9d6da
--- /dev/null
+++ b/servers_be.json
@@ -0,0 +1,5 @@
+[
+ {
+ "address": "mindustry.us.to:6568"
+ }
+]
\ No newline at end of file
diff --git a/tools/src/mindustry/tools/BundleLauncher.java b/tools/src/mindustry/tools/BundleLauncher.java
index 668d4665fe..ab44a77ff7 100644
--- a/tools/src/mindustry/tools/BundleLauncher.java
+++ b/tools/src/mindustry/tools/BundleLauncher.java
@@ -1,23 +1,21 @@
package mindustry.tools;
-import arc.struct.*;
import arc.files.*;
import arc.func.*;
+import arc.struct.*;
import arc.util.*;
import arc.util.io.*;
-import java.io.*;
-
public class BundleLauncher{
- public static void main(String[] args) throws Exception{
- File file = new File("bundle.properties");
+ public static void main(String[] args){
OrderedMap base = new OrderedMap<>();
- PropertiesUtils.load(base, new InputStreamReader(new FileInputStream(file)));
+ PropertiesUtils.load(base, Fi.get("bundle.properties").reader());
Array removals = new Array<>();
- Fi.get("").walk(child -> {
- if(child.name().equals("bundle.properties") || child.isDirectory() || child.toString().contains("output"))
- return;
+ String str = Fi.get("bundle.properties").readString();
+ ObjectSet newlines = Array.with(str.split("\n")).select(l -> l.contains(" = ") && str.indexOf(l) + l.length() < str.length() - 2 && str.charAt(str.indexOf(l) + l.length() + 1) == '\n').map(l -> l.split(" = ")[0]).asSet();
+ Fi.get(".").walk(child -> {
+ if(child.name().equals("bundle.properties") || child.toString().contains("output")) return;
Log.info("Parsing bundle: {0}", child);
@@ -46,7 +44,7 @@ public class BundleLauncher{
}
}
- Func2 processor = (key, value) -> (key + " = " + value).replace("\\", "\\\\").replace("\n", "\\n") + "\n";
+ Func2 processor = (key, value) -> (key + " = " + value).replace("\\", "\\\\").replace("\n", "\\n") + "\n" + (newlines.contains(key) ? "\n" : "");
Fi output = child.sibling("output/" + child.name());
Log.info("&lc{0} keys added.", added);
diff --git a/tools/src/mindustry/tools/ScriptStubGenerator.java b/tools/src/mindustry/tools/ScriptStubGenerator.java
index d13bbbdd49..be1d9dd27d 100644
--- a/tools/src/mindustry/tools/ScriptStubGenerator.java
+++ b/tools/src/mindustry/tools/ScriptStubGenerator.java
@@ -26,12 +26,12 @@ public class ScriptStubGenerator{
Array nameBlacklist = Array.with("ClientLauncher", "NetClient", "NetServer", "ClassAccess");
Array> whitelist = Array.with(Draw.class, Fill.class, Lines.class, Core.class, TextureAtlas.class, TextureRegion.class, Time.class, System.class, PrintStream.class,
AtlasRegion.class, String.class, Mathf.class, Angles.class, Color.class, Runnable.class, Object.class, Icon.class, Tex.class,
- Sounds.class, Musics.class, Call.class, Texture.class, TextureData.class, Pixmap.class, I18NBundle.class);
+ Sounds.class, Musics.class, Call.class, Texture.class, TextureData.class, Pixmap.class, I18NBundle.class, Interval.class, DataInput.class, DataOutput.class,
+ DataInputStream.class, DataOutputStream.class, Integer.class, Float.class, Double.class, Long.class, Boolean.class, Short.class, Byte.class, Character.class);
Array nopackage = Array.with("java.lang", "java");
String fileTemplate = "package mindustry.mod;\n" +
- "\n" +
- "import arc.struct.*;\n" +
+ "\nimport arc.struct.*;\n" +
"//obviously autogenerated, do not touch\n" +
"public class ClassAccess{\n" +
"\tpublic static final ObjectSet allowedClassNames = ObjectSet.with($ALLOWED_CLASS_NAMES$);\n" +
@@ -49,6 +49,7 @@ public class ScriptStubGenerator{
.include(FilterBuilder.prefix("arc.func"))
.include(FilterBuilder.prefix("arc.struct"))
.include(FilterBuilder.prefix("arc.scene"))
+ .include(FilterBuilder.prefix("arc.math"))
));
Array> classes = Array.with(reflections.getSubTypesOf(Object.class));