diff --git a/SERVERLIST.md b/SERVERLIST.md index 58e717fb01..e4d2b6a284 100644 --- a/SERVERLIST.md +++ b/SERVERLIST.md @@ -8,7 +8,7 @@ You may want to add your server to this list. The steps for getting this done ar 1. **Ensure your server is properly moderated.** For the most part, this applies to survival servers, but PvP servers can be affected as well. You'll need to either hire some moderators, or make use of (currently non-existent) anti-grief and anti-curse plugins. *Consider enabling a rate limit:* `config messageRateLimit 2` will make it so that players can only send messages every 2 seconds, for example. -2. **Set an approppriate MOTD, name and description.** This is set with `config `. "Approppriate" means that: +2. **Set an appropriate MOTD, name and description.** This is set with `config `. "Appropriate" means that: - Your name or description must reflect the type of server you're hosting. Since new players may be exposed to the server list early on, put in a phrase like "Co-op survival" or "PvP" so players know what they're getting into. Yes, this is also displayed in the server mode info text, but having extra info in the name doesn't hurt. - Make sure players know where to refer to for server support. It should be fairly clear that the server owner is not me, but you. diff --git a/annotations/src/main/java/mindustry/annotations/impl/SerializeProcess.java b/annotations/src/main/java/mindustry/annotations/impl/SerializeProcess.java index b257ed9ab8..aba76e3f55 100644 --- a/annotations/src/main/java/mindustry/annotations/impl/SerializeProcess.java +++ b/annotations/src/main/java/mindustry/annotations/impl/SerializeProcess.java @@ -21,7 +21,7 @@ public class SerializeProcess extends BaseProcessor{ /** Target class name. */ private static final String className = "Serialization"; /** Name of the base package to put all the generated classes. */ - private static final String data = "eJy1V41u2zYQfoM9AydgANV4apIO61Y1HfLXzUCbdnHaYKiDgqIom41ECiRlxzX80HuD3ZFyLCfO4g2bEUQiebyf7747Ut/8WTN+zUaCVFLljXVmluQia0aprGptHGGGJ0+6g0KWwt6ZatQdoYq58fpM42S5YcYKI1kpvzIntVqtr5zh2ohN81JvmlXCJYeGnwn33uiJzIV5SOo9hC1cJ5AvbMLWtPqJkqlRYkRRCu7uLKl7wj6ir7KGaV4ya0lffYF92szrJislJ9ZBnJxMtMyJlDSen7earXA0eDRoAQHPvY4eiaZGOmGiHqHHWtn9l5sC6ZGjmRNHTVEI8yqmdY9kMfn+FZnLgtZEKrCsuNAFARUKLIZd8XxtSDg58EY6EnWageJPV8QI25Sun4OIElPiZ3evUnADbbwbJNIeqtxAaKDVR8/3QNa/JoU2Z6wSNGJBJNE2OWpkmUdxOnBGqpEfCUOy9hmsrK3ROH0tRZmDMwU+LQjxvWQknJ+2sA52qB8ECfKilYzRR/+K4hezWtCYHBy0+gPS8Rxjae0nrK6Fyld7qGrKMo7TBWeOj+nF2Ogpy0pBAMTFYtGChA/bReinqxTfzyFuulTtdDBL42TM7PhY5+BNDMm8cZhES72WOO0g7mfShSitIEu0L4EGegpu46YajAMlmBMj6T2Y05D/YIqUUgmYhY3iRnAaTSvgIbe10XnDHYEAyYcP/ZMosXUpHY1IBLFuExQqTsBG9Xg0rjFqGUmvde81dBOCLQX043vCjYAgLkRV45BGUBmja+B+lEwyGyEDSnHpC4IU09ap1RxFVUtKEdhBDqIBxKazL5dv+1BbE8nR1K/CvcuwNukwmkpVjSpnXwzhlwyHRms3HHJZTfaHUTxU0Q7xOrgu+05UiMSauuQUEP29EWZGPpMgTggBxQOBtU2ekMLoikC6nu1/PmJWHGlmclDdCr/WhpwyPkataACqdWUriFxabmTtklM+1kuxJHSKs6bKAIsgJ26kI1AD7fAMcoCvaTFNfBOhgEiMI15qC2lKN7ODRjwYJE+fnuk3eqQhpB2fJiyFY6a0kpyV76HLY647nGmp8N9SxxvOAU2HPq8TabGMQUF/AUuDmUVwRv4EqIVxMxo1cMokuA78ybQuBVOEqRlIFwwqyncNqRyRMLObwuNlp5aSUqiRG8P0zk5oEZ26XIl9ohIgQiPdWMh39zVd+XYSp8EDZxqRZkD66wdaC5T7tyAaQ6mQXGJjPMYjMRzDLLO6bACW6BjoCxGPDKtOmGPDIWasr8Cy7zi/iZu26byFpBWJgQToaiBETh9BrBNOj+z2yM/tL4YGgb6BT8AaaR3033iOo+oa/i+78R1c93ZbIFGQj6Eh0uhy8MdgG29paxdEo+Tk8AJ886wOXLml2J0t8RU07QWA50YO/NjS7vPnz2Fle2haMMBGB4xtimAD3VFJJ7B2dtGhHUoAZfIggPHhyTB3yBxv5rxRTlbi9IaLGm9WNELuLzYxDBkdqOWvKrPQByDkw7pGJp0sF+j/yCbE79aDFYHAr/ZsWC2G5G3y5R9ny/eVVboeoeuj9u9zFePamqP/ki0+iL+nixdZ48s9HuzHy5tC08h82WTg8HUwZxHTNsgI1/E8jjyGOIK7yGlVA9orygfj20QRJOO0Nbu69FE8Kn/8ARMGDUZxTFwrHKfr3tWNu/ULH3fXLZuEg+MWkfAaLlTdft61mQtvcwsgsLIWGboBtKAfhbH4MeOve3GKl83+u5ChdmvWIzyZBDFcflgImfvwamMxVm+YwjeXzrBWfiGeAvEeXH5321V0i8OnVKnNUn4ZNGB1fvxsn3DDW/j9GODi+I1W53B4dYT95jcaPMBlQOMjKxusqFZtsI3O5IA7fMZsPAU66219PRSil8PzUsbLNkfq9jKTwQz8gW5hCgb3On8RXlLQH7LEt0RLbpkOOv4Chwsv3w=="; + private static final String data = "eJzFWPtvGzcS/vV+v3+AXeAAbuJuZedhp5v04FfuhKZOzkpjHKqg4O5SEpN9leT6UVX/e78hKWllyxf3cMUZtrQ7HM7jm+HM0H/9Syvyz2IqWaXqojNW3ySFzLppqqq20ZYJnSeP+i8TVUpzi9TVt5gqYWebFEjucrtJ66wqt1CM1EqU6ldhVVOv19cG5o2W2+iq2UatpU0OdX4m7TvdXKpC6vu43gEKaXvOfRKXYkOqI5SiniZaTkrZd8gt1XeYnUe/qhbkvBTGsGH9CfsaPW+7rFQ5MxZ+5uyyUQVTisfz8yDZSMu9RaMACCx3MnZYdKWVlTraYfy4qc3ey22O7LCjGyuPuslE6u9i3u6wLGZff8fmasJbpmpornPZTBhE1NDod8XzjVeWs1dOSY+jTTMI/ukj09J0pR0WYKnlFXPUwccUZpCOt6NEmcO60HANUp33+S543WMyafSZqCSPhGdJGpMcdaosojgdWa3qqXuTmmXh22vZWONx+lrJsoAxE/o2YMp3k6m0jmywDj3cvXgO9m3gjMlG90js729ayWP26lWQ75GO5+RL0J+ItpV1sd7D664s4zhd5MLmM/5+ppsrkZWSAcTFYhFAoi/TR+jgY0rP5/Cbz4SZ8aV823jdPI5jxPHaUvwMdwLitAe2o6QLWRrJlkBfIAOaK1hMm1roRTYIK6fKKZ9zH3qvgJWqlqBio7yWOY+uKqRgblrdFDilDL6xH38cnkSJaUtlecQiWIStFY8T02XGmxl5nlLWUzuD0TgUbSlyhHRcIzWjqEdhnpDC3FJa5K7hZETMXrJn7LffnEUrSSDuDlZU27xprqQ+FgYRwuGvrUDy8khq3egoXvHJXzpRmuG0RnlwzNHgyWAw2BsMvh48pY9n9DEYPKePffwd4O8FPGOWIucCNCxLORXloZ52lazt6XUuWypDPMoEJaaWttM1o7ABSu9Cuth5ALonw9H3J+fDD6cOXX+kz7oqwyn+AsqbvP9ntP93YL1GI2HUTQAVPSe5lkjY97Jq6ZVHKIDTz+RIcpmZiA56KS9c3WOTq3Cg1jROonDarxJXGwk2y5rs08UPQwB4qXLS8w9p32ZUf/k4ulJ1Na2s+XaMn2Q81k1jx+NcVZd74ygGpo+Zk5E35dDKik7RhrjkFMH9Vyf1DfuZeXbGGASPJNVv9ohNdFMxnMsnez8fAc6jRugCogPz60azU5HPSCopQEVe6/IsFybXqrXJaT5rlmxJPx0Cn7xWlqHOhdczlA56dGjkZUORTO/JzdyrIJi/+eYMsZ82eCYsqcIdZqYpOyvfCZ9yITnvZF7qNhRw3JIuSrtbGXbwh47z7Zx9WNZhj1aov/em3mKJQo3GAxRGN4YQnbrRoJXa3vCow/iR0DqkZE1TSlEzUd+Ae4LqIl07UbVlCpRBiq+XvUobPAb58WPfO3pVe832E1fssTMiIQuPmwJQxOxvdyV9dH0mTr0FmKFkmuGYfL6n5wD4r8Aa43CxQlHHPKZZyc9sIgSTR8fIeXg81aI6EVaMxxHMGdbQ7LrQP+V1aEQ/IO6TRKNTNdVIyoJ/AbGeOztssMNehB80NEqKr2AT8k4Zi8Ycz+mt+oxPatOhWwqtb/VK6pOMTAh01zfjbXHYHQTgibvXQCEzTklZPkOj5dHF6N+jh3jMg+1gjZKTw/fwz9WWntTFAkjbqYURD1Swv7+PlYfjGJCDjh5yDxkttowQJKTnQaAuejlKHMivwjOQfzRkzNen77yrrapk79TRQVlsS0dKf5+HbuC98WWHqkrbUtqdLBf4n5h6hN/KgnW2wa7QetaLPnjbbPnD0XLl8E64/szc/qIPdxObsLmb0P9lajmP/3NuOZaN5LqTNHvxcobqOlUsyxcGAQuaoQAEbyJaXw859IYZ+LRqEZo14F75Q7zwnHEa1K7vGZw69/OnFF2UrjqnKAfmON20ru3syi76ur1uxCU1xx4i/tEP8v1O0ddZSKfzAUDQMVxkZAbizz+ggdL92V0u4pTuN8O3PkJha7bD8uTSs9Hy/UyU5vevdoZ8dYo5rv5NRgfr78ylQLyL+9YgrJJZOTp+2egl/9JpYHV+/GSP5ToP8Lt3wJXTvwXaAm2xx+w2v2lgAS0DjQ+i7Oj4BbFeNxlTAHfcnLeeqd56OFz3uej4qBOreFkTWRsGzQwU/IZ7fMi85eDRm7oeVrXdhdCxb70CuqkmXP+CRnJqOTAFdbgFAmsaXpExQZMnbC8uZjWpBRywLRFFwQ0KitCHwe+gnhYdZksLSgTCebzS775iNvcrULS7u/fsACVn8Pzg6d6zF/tvUm927eciunCvTKBB9raFWPSmsTmJe7L7aIYuGnaubFyZOEsXECD1BFOq+y9IuwTfjVN+mjRsVXkQ098BuiSFiw=="; @Override public void process(RoundEnvironment env) throws Exception{ diff --git a/core/assets/bundles/bundle.properties b/core/assets/bundles/bundle.properties index 50be8764ba..84557cc259 100644 --- a/core/assets/bundles/bundle.properties +++ b/core/assets/bundles/bundle.properties @@ -668,7 +668,7 @@ setting.borderlesswindow.name = Borderless Window[lightgray] (may require restar setting.fps.name = Show FPS & Ping setting.blockselectkeys.name = Show Block Select Keys setting.vsync.name = VSync -setting.pixelate.name = Pixelate[lightgray] (disables animations) +setting.pixelate.name = Pixelate setting.minimap.name = Show Minimap setting.position.name = Show Player Position setting.musicvol.name = Music Volume diff --git a/core/assets/bundles/bundle_de.properties b/core/assets/bundles/bundle_de.properties index 0a3b80f76c..af47e68ccb 100644 --- a/core/assets/bundles/bundle_de.properties +++ b/core/assets/bundles/bundle_de.properties @@ -10,15 +10,15 @@ 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.f-droid.description = F-Droid-Seite link.wiki.description = Offizelles Mindustry-Wiki -link.feathub.description = Suggest new features +link.feathub.description = Neue Ideen einbringen linkfail = Fehler beim Öffnen des Links!\nDie URL wurde in die Zwischenablage kopiert. -screenshot = Screenshot gespeichert unter {0}. +screenshot = Screenshot gespeichert unter {0} screenshot.invalid = Karte zu groß! Eventuell nicht ausreichend Arbeitsspeicher für Screenshot. gameover = Der Kern wurde zerstört. gameover.pvp = Das[accent] {0}[] Team ist siegreich! -highscore = [YELLOW] Neuer Highscore! +highscore = [YELLOW]Neuer Highscore! copied = Kopiert. load.sound = Audio @@ -29,14 +29,14 @@ 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 +be.update = Ein neuer Bleeding Edge build ist verfügbar: +be.update.confirm = Herunterladen und neu starten? +be.updating = Aktualisieren... +be.ignore = Ignorieren +be.noupdates = Keine Aktualisierungen gefunden. +be.check = Auf Aktualisierungen prüfen -schematic = Entwürfe +schematic = Entwurf schematic.add = Entwurf speichern... schematics = Entwürfe schematic.replace = Ein anderer Entwurf hat bereits diesen Namen. Diesen ersetzen? @@ -59,7 +59,7 @@ stat.built = Gebäude gebaut:[accent] {0} 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} +stat.rank = Finaler Rang:[accent] {0} launcheditems = [accent]Abgefeuerte Items launchinfo = [unlaunched][[LAUNCH] deine Basis um blau markierte Items zu erhalten. @@ -86,9 +86,9 @@ save.quit = Speichern & Verlassen maps = Karten maps.browse = Karten durchsuchen continue = Weiter -maps.none = [LIGHT_GRAY]Keine Karten gefunden! +maps.none = [lightgray]Keine Karten gefunden! invalid = Ungültig -pickcolor = Pick Color +pickcolor = Farbe wählen preparingconfig = Konfiguration vorbereiten preparingcontent = Inhalt vorbereiten uploadingcontent = Inhalt hochladen @@ -100,19 +100,19 @@ feature.unsupported = Dein System unsterstützt dieses Feature nicht. mods.alphainfo = Vergiss nicht, dass Mods in der Alpha sind, und[scarlet] sehr fehlerhaft sein können[].\nMelde alle Probleme an den Mindustry GitHub oder Discord. mods.alpha = [accent](Alpha) mods = Mods -mods.none = [LIGHT_GRAY]Keine Mods gefunden! -mods.guide = Modding Anleitung +mods.none = [lightgray]Keine Mods gefunden! +mods.guide = Modding-Anleitung mods.report = Problem melden mods.openfolder = Mod-Verzeichnis öffnen 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.delete.error = Unfähig Mod zu löschen. Datei könnte in Benutzung sein. +mod.requiresversion = [scarlet]Benötigt mindestens Version:[accent] {0} mod.missingdependencies = [scarlet]Fehlende 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.erroredcontent = [scarlet]Inhalt-Fehler +mod.errors = Beim Laden von Inhalt sind Fehler aufgetreten. +mod.noerrorplay = [scarlet]Du hast Mods mit Fehlern.[] Deaktiviere die Mods oder fixe die Fehler, bevor du spielst. mod.nowdisabled = [scarlet]Mod '{0}' fehlen 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 wird jetzt beendet, um die Mod-Änderungen anzuwenden. @@ -121,22 +121,22 @@ 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.author = [lightgray]Autor:[] {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.preview.missing = Bevor du diesen Mod hochladen kannst, musst du eine Bildvorschau einbinden.\nLade ein Bild namens[accent] preview.png[] in den Modordner und versuche es nochmal. +mod.folder.missing = Nur Mods in Ordnerform können in den Workshop hochgeladen werden.\nUm einen Mod in einen Ordner zu konvertieren, extrahiere das Archiv und lösche das alte Archiv danach. Starte dann das Spiel neu oder lade die Mods 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[]. +noname = Wähle zunächst einen[accent] Spielernamen[]. filename = Dateiname: -unlocked = Neuer Block freigeschaltet! +unlocked = Neuer Inhalt freigeschaltet! completed = [accent]Abgeschlossen techtree = Forschung -research.list = [LIGHT_GRAY]Forschung: +research.list = [lightgray]Forschung: research = Erforschen -researched = [LIGHT_GRAY]{0} erforscht. +researched = [lightgray]{0} erforscht. players = {0} Spieler online players.single = {0} Spieler online server.closing = [accent]Schließe den Server ... @@ -155,21 +155,21 @@ 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.kicked.serverRestarting = Der Server startet neu. 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 Serverliste sehen können.\n\nWenn du anderen die Verbindung über deine IP-Adresse 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 Serverliste; wenn du dich mit jemandem per IP-Adresse verbinden willst, musst du den Host nach seiner IP-Adresse fragen. -hostserver = Server hosten +host.info = Der [accent]Server hosten[]-Knopf startet einen Server auf den Ports [scarlet]6567[] und [scarlet]6568.[]\nJeder im gleichen [lightgray]W-Lan oder lokalen Netzwerk[] sollte deinen Server in seiner Serverliste sehen können.\n\nWenn du anderen die Verbindung über deine IP-Adresse ermöglichen willst, musst du [accent]Port-Forwarding[] durchführen.\n\n[lightgray]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[lightgray]Hinweis: Es gibt keine globale Serverliste; wenn du dich mit jemandem per IP-Adresse verbinden willst, musst du den Host nach seiner IP-Adresse fragen. +hostserver = Mehrspieler hosten invitefriends = Freunde einladen -hostserver.mobile = Host\nSpiel -host = Server eröffnen -hosting = [accent] Server wird eröffnet ... +hostserver.mobile = Hoste\nSpiel +host = Hosten +hosting = [accent]Server wird eröffnet ... hosts.refresh = Aktualisieren hosts.discovering = Suche nach LAN-Spielen hosts.discovering.any = Suche nach Spielen server.refreshing = Server wird aktualisiert -hosts.none = [lightgray] Keine LAN-Spiele gefunden! -host.invalid = [scarlet] Kann keine Verbindung zum Host herstellen. +hosts.none = [lightgray]Keine LAN-Spiele gefunden! +host.invalid = [scarlet]Kann keine Verbindung zum Host herstellen. trace = Spieler verfolgen trace.playername = Spielername: [accent]{0} trace.ip = IP: [accent]{0} @@ -207,27 +207,27 @@ connecting.data = [accent] Welt wird geladen... server.port = Port: server.addressinuse = Adresse bereits in Verwendung! server.invalidport = Falscher Port! -server.error = [crimson] Fehler beim Hosten des Servers: [accent] {0} +server.error = [crimson] Fehler beim Hosten des Servers:[accent] {0} save.new = Neuer Spielstand save.overwrite = Möchtest du diesen Spielstand wirklich überschreiben? overwrite = Überschreiben save.none = Keine Spielstände gefunden! -saveload = [accent] Speichern... +saveload = [accent]Speichern... savefail = Fehler beim Speichern des Spiels! save.delete.confirm = Möchtest du diesen Spielstand wirklich löschen? save.delete = Löschen save.export = Spielstand exportieren -save.import.invalid = [accent] Dieser Spielstand ist ungültig! -save.import.fail = [crimson] Spielstand konnte nicht importiert werden: [accent] {0} -save.export.fail = [crimson] Spielstand konnte nicht exportiert werden: [accent] {0} +save.import.invalid = [accent]Dieser Spielstand ist ungültig! +save.import.fail = [crimson]Spielstand konnte nicht importiert werden: [accent]{0} +save.export.fail = [crimson]Spielstand konnte nicht exportiert werden: [accent]{0} save.import = Spielstand importieren save.newslot = Name: save.rename = Umbenennen save.rename.text = Neuer Name -selectslot = Wähle einen Spielstand -slot = [accent] Platz {0} +selectslot = Wähle einen Spielstand. +slot = [accent]Platz {0} editmessage = Nachricht bearbeiten -save.corrupted = [accent] Datei beschädigt oder ungültig! +save.corrupted = [accent]Datei beschädigt oder ungültig! empty = on = An off = Aus @@ -253,7 +253,7 @@ data.export = Daten exportieren data.import = Daten importieren data.exported = Daten exportiert. data.invalid = Dies sind keine gültigen Spieldaten. -data.import.confirm = Der Import von externen Daten wird [scarlet] alle[] deine gegenwärtigen Spieldaten löschen.\n[accent]Dies kann nicht rückgängig gemacht werden![]Sobald der Import abeschlossen ist, wird dein Spiel sofort beendet. +data.import.confirm = Der Import von externen Daten wird [scarlet] alle[] deine gegenwärtigen Spieldaten löschen.\n[accent]Das kann nicht rückgängig gemacht werden![]Sobald der Import abeschlossen ist, wird dein Spiel sofort beendet. classic.export = Klassische Dateien exportieren classic.export.text = [accent]Mindustry[] hat ein großes Update bekommen.\nEin Classic (v3.5 build 40) -Speicherstand oder eine -Karte wurde gefunden. Möchtest du diese Daten in den home-Ordner deines Smartphones exportieren, um sie in der Mindustry Classic-App zu verwenden? quit.confirm = Willst du wirklich aufhören? @@ -267,11 +267,11 @@ pausebuilding = [accent][[{0}][] um das Bauen zu pausieren resumebuilding = [scarlet][[{0}][] um das Bauen fortzusetzen wave = [accent]Welle {0} wave.waiting = Welle in {0} -wave.waveInProgress = [LIGHT_GRAY]Welle im Gange +wave.waveInProgress = [lightgray]Welle im Gange waiting = Warten... waiting.players = Warte auf Spieler... -wave.enemies = [LIGHT_GRAY]{0} Gegner verbleiben -wave.enemy = [LIGHT_GRAY]{0} Gegner verbleiben +wave.enemies = [lightgray]{0} Gegner verbleiben +wave.enemy = [lightgray]{0} Gegner verbleiben loadimage = Bild laden saveimage = Bild speichern unknown = Unbekannt @@ -326,7 +326,7 @@ waves.load = Aus der Zwischenablage laden waves.invalid = Ungültige Wellen in der Zwischenablage. waves.copied = Wellen kopiert. waves.none = Keine Gegner definiert.\nInfo: Leere Wellenentwürfe werden automatisch mit dem Standard-Entwurf ersetzt. -editor.default = [LIGHT_GRAY] +editor.default = [lightgray] details = Details edit = Bearbeiten editor.name = Name: @@ -388,7 +388,7 @@ toolmode.fillteams.description = Füllt Teams aus statt Blöcke. toolmode.drawteams = Teams Zeichnen toolmode.drawteams.description = Zeichnet Teams statt Blöcke. -filters.empty = [LIGHT_GRAY]Keine Filter! Füge einen mit dem unteren Knopf hinzu. +filters.empty = [lightgray]Keine Filter! Füge einen mit dem unteren Knopf hinzu. filter.distort = Verzerren filter.noise = Rauschen filter.median = Median @@ -439,15 +439,15 @@ mapeditor = Karteneditor abandon = Aufgeben abandon.text = Diese Zone sowie alle Ressourcen werden dem Gegner überlassen. locked = Gesperrt -complete = [LIGHT_GRAY]Abschließen: +complete = [lightgray]Abschließen: requirement.wave = Erreiche Welle {0} in {1} requirement.core = Zerstöre den feindlichen Kern in {0} requirement.unlock = Schalte {0} frei -resume = Zu Zone zurückkehren:\n[LIGHT_GRAY]{0} -bestwave = [LIGHT_GRAY]Beste Welle: {0} +resume = Zu Zone zurückkehren:\n[lightgray]{0} +bestwave = [lightgray]Beste Welle: {0} launch = Starten launch.title = Start erfolgreich -launch.next = [LIGHT_GRAY]Nächste Möglichkeit bei Welle {0} +launch.next = [lightgray]Nächste Möglichkeit bei Welle {0} launch.unable2 = [scarlet]START nicht möglich.[] launch.confirm = Dies wird alle Ressourcen in deinen Kern übertragen.\nDu kannst nicht wieder zu dieser Karte zurückkehren. launch.skip.confirm = Wenn du die Wartezeit überspringst, kannst du den Kern bis zu einer späteren Welle nicht mehr starten. @@ -457,7 +457,7 @@ bannedblocks = Gesperrte Blöcke addall = Alle hinzufügen configure.locked = [lightgray]Festlegen von Startitems freischalten: {0}. configure.invalid = Anzahl muss eine Zahl zwischen 0 und {0} sein. -zone.unlocked = [LIGHT_GRAY]{0} freigeschaltet. +zone.unlocked = [lightgray]{0} freigeschaltet. zone.requirement.complete = Welle {0} erreicht:\n{1} Anforderungen der Zone erfüllt. zone.config.unlocked = Konfiguration:[lightgray]\n{0} zone.resources = Ressourcen entdeckt: @@ -474,7 +474,7 @@ error.timedout = Zeitüberschreitung!\nStelle sicher, dass die Portweiterleitung error.mismatch = Paketfehler:\nClient und Server passen möglicherweise nicht zusammen.\nStelle sicher, dass du und der Host jeweils die neueste Version von Mindustry haben! error.alreadyconnected = Bereits verbunden. error.mapnotfound = Kartendatei nicht gefunden! -error.io = Netzwerk-Ein-/Ausgabe-Fehler. +error.io = Netzwerk-I/O-Fehler. error.any = Unbekannter Netzwerkfehler. error.bloom = Bloom konnte nicht initialisiert werden.\nEs kann sein, dass dein Gerät es nicht unterstützt. @@ -489,20 +489,20 @@ zone.nuclearComplex.name = Kernkraftwerk zone.overgrowth.name = Überwucherung zone.tarFields.name = Teerfelder zone.saltFlats.name = Salzebenen -zone.impact0078.name = Einschlag 0078 -zone.crags.name = Felsen +zone.impact0078.name = Einschlagspunkt 0078 +zone.crags.name = Die Klippen zone.fungalPass.name = Sporenpass -zone.groundZero.description = Der optimale Ort, um anzufangen. Niedrige Bedrohung durch Gegner. Wenige Ressourcen.\nSammel so viel Kupfer und Blei wie möglich.\nMach weiter! +zone.groundZero.description = Der optimale Ort, um neu anzufangen. Niedrige Bedrohung durch Gegner. Wenige Ressourcen.\nSammle 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 Reparateure zu benutzen. zone.desertWastes.description = Diese Abfälle sind riesig, unberechenbar, und durchzogen von verfallenen Sektorstrukturen.\nKohle ist in dieser Region vorhanden. Verbrenne es für Strom, oder synthetisiere Graphit.\n\n[lightgray]Dieser Landeort kann nicht garantiert werden. -zone.saltFlats.description = Am Rande der Wüste liegen die Salzebenen. In dieser Gegend können wenige Ressourcen gefunden werden.\n\nDer Feind hat hier einen Ressourcenspeicherkomplex errichtet. Zerstöre ihren Kern. Lass nichts stehen. +zone.saltFlats.description = Am Rande der Wüste liegen die Salzebenen. In dieser Gegend sind Ressourcen nur spärlich vorhanden.\n\nDer Feind hat hier einen Ressourcenspeicherkomplex errichtet. Zerstöre ihren Kern. Lass nichts stehen. zone.craters.description = Wasser hat sich in diesem Krater angesammelt, ein Relikt von den alten Kriegen. Gewinne dieses Gebiet zurück. Sammle Sand. Schmelze Metaglass. Pumpe Wasser, um Geschütztürme und Bohrer zu kühlen. -zone.ruinousShores.description = Vorbei an der Wüste ist die Küste. An diesem Ort befand sich einst eine Küstenverteidigungsanlage. Davon ist aber nicht mehr viel übrig. Lediglich die einfachsten Verteidigungsstrukturen sind unversehrt, alles andere ist nur noch Schrott.\nSetzen Sie die Ausbreitung nach außen fort. Wiederentdecke die Technologie. -zone.stainedMountains.description = Weiter im Landesinneren liegen die Berge, die noch nicht von Sporen befleckt sind.\nExtrahiere das reichlich vorhandene Titan in diesem Bereich. Erlerne es zu benutzen.\n\nDie feindliche Präsenz ist größer hier. Gib ihnen nicht die Zeit ihre stärksten Einheiten zu schicken. -zone.overgrowth.description = Dieser Bereich ist bewachsen, näher an der Quelle der Sporen.\nDer Feind hat hier einen Außenposten errichtet. Baue Dagger-Einheiten. Zerstöre es. Gewinne zurück, was verloren gegangen ist. -zone.tarFields.description = Der Rand einer Ölförderzone, zwischen Bergen und Wüste. Eine der wenigen Plätze mit nutzbare Teer Reserven.\nObwohl es aufgegeben wurde, hat dieses Gebiet einige gefährliche feindliche Kräfte in der Nähe. Unterschätze sie nicht.\n\n[lightgray]Wenn möglich, erforsche Technologien zur Ölverarbeitung. -zone.desolateRift.description = Eine extrem gefährliche Zone. Reichlich Ressourcen, aber wenig Platz. Hohe Zerstörungsgefahr. Verlasse es so schnell wie möglich. Lassen Sie sich nicht von den großen Abständen zwischen feindlichen Angriffen in die Irre führen. +zone.ruinousShores.description = Vorbei an der Wüste liegt die Küste. An diesem Ort befand sich einst eine Küstenverteidigungsanlage, davon ist aber nicht mehr viel übrig. Lediglich einfache Verteidigungsstrukturen sind unversehrt, alles andere ist nur noch Schrott.\nSetze die Ausbreitung nach außen fort. Wiederentdecke die Technologie. +zone.stainedMountains.description = Weiter im Landesinneren liegen die Berge, sie sind noch nicht von Sporen befleckt.\nExtrahiere das reichlich vorhandene Titan in diesem Bereich und erlerne es zu benutzen.\n\nDie feindliche Präsenz ist größer hier. Gib ihnen nicht die Zeit, ihre stärksten Einheiten zu schicken. +zone.overgrowth.description = Dieser Bereich ist verwachsen, näher an der Quelle der Sporen.\nDer Feind hat hier einen Außenposten errichtet. Baue Dagger-Einheiten und zerstöre ihn. Gewinne zurück, was verloren gegangen ist. +zone.tarFields.description = Der Rand einer Ölförderzone, zwischen Bergen und Wüste. Eine der wenigen Plätze mit nutzbaren Teer-Reserven.\nObwohl es aufgegeben wurde, befinden sich in diesem Gebiet gefährliche feindliche Kräfte. Unterschätze sie nicht.\n\n[lightgray]Wenn möglich, erforsche Technologien zur Ölverarbeitung. +zone.desolateRift.description = Eine extrem gefährliche Zone. Reichlich Ressourcen, aber wenig Platz. Hohe Gefahr von Zerstörung. Verlasse es so schnell wie möglich. Lass dich nicht von den großen Abständen zwischen feindlichen Angriffen täuschen. zone.nuclearComplex.description = Eine ehemalige Anlage zur Herstellung und Verarbeitung von Thorium, die in Trümmern liegt.\n[lightgray]Erforsche das Thorium und seine vielen Verwendungsmöglichkeiten.\n\nDer Feind ist hier in großer Zahl präsent und sucht ständig nach Angreifern. zone.fungalPass.description = Ein Übergangsgebiet zwischen hohen Bergen und niedrigeren, sporenverseuchten Landschaften. Ein kleiner feindlicher Außenposten wurde hier entdeckt.\nZerstöre ihn.\nNutze Dagger und Crawler-Einheiten. Zerstöre die zwei Kerne. zone.impact0078.description = @@ -519,19 +519,19 @@ settings.sound = Audio settings.graphics = Grafik settings.cleardata = Spieldaten zurücksetzen... settings.clear.confirm = Bist du sicher, dass du die Spieldaten zurücksetzen willst?\n Diese Aktion kann nicht rückgängig gemacht werden! -settings.clearall.confirm = [scarlet]Warnung![]\nDas wird jegliche Spieldaten zurücksetzen, inklusive Speicherstände, Karten, Freischaltungen und Tastenbelegungen.\n Nachdem du 'OK' drückst wird alles zurückgesetzt und das Spiel schließt sich automatisch. -paused = Pausiert +settings.clearall.confirm = [scarlet]WARNUNG![]\nDas wird jegliche Spieldaten zurücksetzen, inklusive Speicherstände, Karten, Freischaltungen und Tastenbelegungen.\n Sobald du 'OK' drückst, wird alles zurückgesetzt und das Spiel schließt sich automatisch. +paused = [accent]< Pausiert > clear = Leeren -banned = [scarlet]Banned +banned = [scarlet]Verbannt yes = Ja no = Nein -info.title = [accent]Info -error.title = [crimson] Ein Fehler ist aufgetreten +info.title = Info +error.title = [crimson]Ein Fehler ist aufgetreten error.crashtitle = Ein Fehler ist aufgetreten! blocks.input = Eingang blocks.output = Ausgang blocks.booster = Verstärkung -block.unknown = [LIGHT_GRAY]??? +block.unknown = [lightgray]??? blocks.powercapacity = Kapazität blocks.powershot = Stromverbrauch/Schuss blocks.damage = Schaden @@ -568,7 +568,7 @@ bar.drilltierreq = Besserer Bohrer Benötigt bar.drillspeed = Bohrgeschwindigkeit: {0}/s bar.pumpspeed = Pump Speed: {0}/s bar.efficiency = Effizienz: {0}% -bar.powerbalance = Strom: {0} +bar.powerbalance = Strom: {0}/s bar.powerstored = Gespeichert: {0}/{1} bar.poweramount = Strom: {0} bar.poweroutput = Stromgenerierung: {0} @@ -590,7 +590,7 @@ bullet.shock = [stat]schockend bullet.frag = [stat]explosiv bullet.knockback = [stat]{0}[lightgray] zurückstoßend bullet.freezing = [stat]frierend -bullet.tarred = [stat]teerent +bullet.tarred = [stat]teerend bullet.multiplier = [stat]{0}[lightgray]x Munition Multiplikator bullet.reload = [stat]{0}[lightgray]x Feuerrate @@ -614,22 +614,22 @@ category.liquids = Flüssigkeiten category.items = Materialien category.crafting = Erzeugung category.shooting = Schießen -category.optional = Zusätze +category.optional = Optionale Zusätze setting.landscape.name = Landschaft sperren 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.buildautopause.name = Bauen automatisch pausieren setting.animatedwater.name = Animiertes Wasser setting.animatedshields.name = Animierte Schilde -setting.antialias.name = Antialias[LIGHT_GRAY] (Neustart erforderlich)[] +setting.antialias.name = Antialias[lightgray] (Neustart erforderlich)[] setting.indicators.name = Verbündeten-Indikatoren setting.autotarget.name = Auto-Zielauswahl setting.keyboard.name = Maus+Tastatur Steuerung setting.touchscreen.name = Touchscreen-Steuerung setting.fpscap.name = Max. FPS -setting.fpscap.none = kein +setting.fpscap.none = Kein(e) setting.fpscap.text = {0} FPS setting.uiscale.name = UI-Skalierung[lightgray] (Neustart erforderlich)[] setting.swapdiagonal.name = Immer diagonale Platzierung @@ -637,8 +637,8 @@ setting.difficulty.training = Training setting.difficulty.easy = Leicht setting.difficulty.normal = Normal setting.difficulty.hard = Schwer -setting.difficulty.insane = Unmöglich -setting.difficulty.name = Schwierigkeit +setting.difficulty.insane = Verrückt +setting.difficulty.name = Schwierigkeit: setting.screenshake.name = Wackeleffekt setting.effects.name = Effekte anzeigen setting.destroyedblocks.name = Zerstörte Blöcke anzeigen @@ -647,18 +647,18 @@ setting.coreselect.name = Allow Schematic Cores setting.sensitivity.name = Controller-Empfindlichkeit setting.saveinterval.name = Autosave-Häufigkeit setting.seconds = {0} Sekunden -setting.blockselecttimeout.name = Block Auswahl Timeout +setting.blockselecttimeout.name = Block-Auswahl Timeout setting.milliseconds = {0} Millisekunden setting.fullscreen.name = Vollbild -setting.borderlesswindow.name = Randloses Fenster[LIGHT_GRAY] (Neustart vielleicht erforderlich) -setting.fps.name = Zeige FPS +setting.borderlesswindow.name = Randloses Fenster [lightgray](Neustart vielleicht erforderlich) +setting.fps.name = FPS zeigen setting.blockselectkeys.name = Block Shortcuts anzeigen setting.vsync.name = VSync -setting.pixelate.name = Verpixeln [LIGHT_GRAY](Könnte die Leistung beeinträchtigen) +setting.pixelate.name = Verpixeln [lightgray](Könnte die Leistung beeinträchtigen) setting.minimap.name = Zeige die Minimap setting.position.name = Spieler-Position anzeigen setting.musicvol.name = Musiklautstärke -setting.ambientvol.name = Ambient Volume +setting.ambientvol.name = Ambient-Lautstärke setting.mutemusic.name = Musik stummschalten setting.sfxvol.name = Audioeffekt-Lautstärke setting.mutesound.name = Audioeffekte stummschalten @@ -674,22 +674,22 @@ uiscale.reset = UI-Skalierung wurde geändert.\nDrücke "OK", um diese Skalierun uiscale.cancel = Abbrechen & Beenden setting.bloom.name = Bloom keybind.title = Tasten zuweisen -keybinds.mobile = [scarlet]Die meisten Tastenzuweisungen hier funktionieren auf z.B. Handys nicht. Nur grundlegende Bewegung wird unterstützt. +keybinds.mobile = [scarlet]Die meisten Tastenzuweisungen hier funktionieren auf z.B. mobilen Geräten nicht. Nur grundlegende Bewegung wird unterstützt. category.general.name = Allgemein category.view.name = Ansicht category.multiplayer.name = Mehrspieler command.attack = Angreifen command.rally = Patrouillieren command.retreat = Rückzug -placement.blockselectkeys = \n[lightgray]Shortcut: [{0}, -keybind.clear_building.name = Clear Building +placement.blockselectkeys = \n[lightgray]Taste: [{0}, +keybind.clear_building.name = Bauplan löschen 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.screenshot.name = Karten-Screenshot +keybind.toggle_power_lines.name = Power Lasers umschalten keybind.move_x.name = X-Achse keybind.move_y.name = Y-Achse -keybind.mouse_move.name = Follow Mouse +keybind.mouse_move.name = Der Maus folgen keybind.dash.name = Sprinten keybind.schematic_select.name = Bereich auswählen keybind.schematic_menu.name = Entwurfsmenü @@ -721,7 +721,7 @@ keybind.shoot.name = Schießen keybind.zoom.name = Zoomen keybind.menu.name = Menü keybind.pause.name = Pause -keybind.pause_building.name = Pausieren/Fortsetzen Bauen +keybind.pause_building.name = Pausieren/Fortsetzen des Bauens keybind.minimap.name = Minimap keybind.chat.name = Chat keybind.player_list.name = Spielerliste @@ -736,36 +736,36 @@ keybind.drop_unit.name = Einheit absetzen keybind.zoom_minimap.name = Minimap-Zoom mode.help.title = Beschreibung der Modi mode.survival.name = Überleben -mode.survival.description = Der normale Modus. Ressourcen sind limitiert und Wellen kommen automatisch. +mode.survival.description = Der normale Modus. Ressourcen sind limitiert und Wellen kommen automatisch.\n[gray]Gegnerische Spawns auf der Karte sind erforderlich. mode.sandbox.name = Sandkasten mode.sandbox.description = Unendliche Ressourcen und kein Timer für Wellen. mode.editor.name = Editor mode.pvp.name = PvP -mode.pvp.description = Kämpfe lokal gegen andere Spieler. +mode.pvp.description = Kämpfe lokal gegen andere Spieler.\n[gray]Benötigt mindestens 2 unterschiedlich gefärbte Kerne auf der Karte. mode.attack.name = Angriff -mode.attack.description = Keine Wellen, das Ziel ist es, die gegnerische Basis zu zerstören. +mode.attack.description = Keine Wellen, das Ziel ist es, die gegnerische Basis zu zerstören.\n[gray]Benötigt einen roten Kern auf der Karte. mode.custom = Angepasste Regeln rules.infiniteresources = Unbegrenzte Ressourcen -rules.reactorexplosions = Reactor Explosions +rules.reactorexplosions = Reaktor-Explosionen rules.wavetimer = Wellen-Timer rules.waves = Wellen rules.attack = Angriff-Modus -rules.enemyCheat = Unbegrenzte Ressourcen für KI -rules.unitdrops = Einheiten-Drops +rules.enemyCheat = Unbegrenzte Ressourcen für die KI (Rotes Team) +rules.unitdrops = Einheiten-Abwürfe 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 -rules.enemycorebuildradius = Bauverbot Radius druch feindlichen Kern:[LIGHT_GRAY] (Kacheln) -rules.respawntime = Respawn-Zeit:[LIGHT_GRAY] (Sek) -rules.wavespacing = Wellen-Abstand:[LIGHT_GRAY] (Sek) +rules.enemycorebuildradius = Bauverbot Radius druch feindlichen Kern:[lightgray] (Kacheln) +rules.respawntime = Respawn-Zeit:[lightgray] (Sek) +rules.wavespacing = Wellen-Abstand:[lightgray] (Sek) rules.buildcostmultiplier = Bau-Kosten Multiplikator rules.buildspeedmultiplier = Bau-Schnelligkeit Multiplikator rules.waitForWaveToEnd = Warten bis Welle endet -rules.dropzoneradius = Drop-Zonen-Radius:[LIGHT_GRAY] (Kacheln) +rules.dropzoneradius = Drop-Zonen-Radius:[lightgray] (Kacheln) rules.respawns = Max. Wiederbelebungen pro Welle rules.limitedRespawns = Wiederbelebungslimit rules.title.waves = Wellen @@ -774,7 +774,7 @@ rules.title.resourcesbuilding = Ressourcen & Gebäude rules.title.player = Spieler rules.title.enemy = Gegner rules.title.unit = Einheiten -rules.title.experimental = Experimental +rules.title.experimental = Experimentell rules.lighting = Lighting rules.ambientlight = Ambient Light @@ -797,20 +797,20 @@ item.spore-pod.name = Sporen-Pod item.sand.name = Sand item.blast-compound.name = Explosive Mischung item.pyratite.name = Pyratit -item.metaglass.name = Metaglass +item.metaglass.name = Metaglas item.scrap.name = Schrott liquid.water.name = Wasser -liquid.slag.name = Lava +liquid.slag.name = Schlacke liquid.oil.name = Öl -liquid.cryofluid.name = Kühlflüssigkeit +liquid.cryofluid.name = Kryoflüssigkeit mech.alpha-mech.name = Alpha mech.alpha-mech.weapon = Schwerer Mehrlader -mech.alpha-mech.ability = Drohnenschwarm +mech.alpha-mech.ability = Regeneration mech.delta-mech.name = Delta mech.delta-mech.weapon = Lichtbogen-Generator -mech.delta-mech.ability = Entladen +mech.delta-mech.ability = Entladung mech.tau-mech.name = Tau -mech.tau-mech.weapon = Restrukturierlaser +mech.tau-mech.weapon = Restrukturier-Laser mech.tau-mech.ability = Reparatursalve mech.omega-mech.name = Omega mech.omega-mech.weapon = Raketenschwarm @@ -822,24 +822,24 @@ mech.javelin-ship.weapon = Raketensalve mech.javelin-ship.ability = Statische Entladung mech.trident-ship.name = Dreizack mech.trident-ship.weapon = Bombenschacht -mech.glaive-ship.name = Glaive +mech.glaive-ship.name = Glefe mech.glaive-ship.weapon = Flammen-Mehrlader item.corestorable = [lightgray]Im Kern speicherbar: {0} -item.explosiveness = [LIGHT_GRAY]Explosivität: {0} -item.flammability = [LIGHT_GRAY]Entflammbarkeit: {0} -item.radioactivity = [LIGHT_GRAY]Radioaktivität: {0} -unit.health = [LIGHT_GRAY]Lebenskraft: {0} -unit.speed = [LIGHT_GRAY]Geschwindigkeit: {0} -mech.weapon = [LIGHT_GRAY]Waffe: {0} -mech.health = [LIGHT_GRAY]Lebenspunkte: {0} -mech.itemcapacity = [LIGHT_GRAY]Materialkapazität: {0} -mech.minespeed = [LIGHT_GRAY]Erzabbaugeschwindigkeit: {0} -mech.minepower = [LIGHT_GRAY]Erzabbaukraft: {0} -mech.ability = [LIGHT_GRAY]Fähigkeit: {0} -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} +item.explosiveness = [lightgray]Explosivität: {0} +item.flammability = [lightgray]Entflammbarkeit: {0} +item.radioactivity = [lightgray]Radioaktivität: {0} +unit.health = [lightgray]Lebenskraft: {0} +unit.speed = [lightgray]Geschwindigkeit: {0} +mech.weapon = [lightgray]Waffe: {0} +mech.health = [lightgray]Lebenspunkte: {0} +mech.itemcapacity = [lightgray]Materialkapazität: {0} +mech.minespeed = [lightgray]Abbaugeschwindigkeit: {0} +mech.minepower = [lightgray]Abbaukraft: {0} +mech.ability = [lightgray]Fähigkeit: {0} +mech.buildspeed = [lightgray]Baugeschwindigkeit: {0}% +liquid.heatcapacity = [lightgray]Wärmekapazität: {0} +liquid.viscosity = [lightgray]Viskosität: {0} +liquid.temperature = [lightgray]Temperatur: {0} block.sand-boulder.name = Sandbrocken block.grass.name = Gras @@ -848,8 +848,8 @@ block.saltrocks.name = Salzgestein block.pebbles.name = Geröll block.tendrils.name = Ranken block.sandrocks.name = Sandstein -block.spore-pine.name = Kiefernsporen -block.sporerocks.name = Gesteinssporen +block.spore-pine.name = Sporenkiefer +block.sporerocks.name = Sporengestein block.rock.name = Gestein block.snowrock.name = Schnee-Gestein block.snow-pine.name = Schnee-Kiefer @@ -867,7 +867,7 @@ block.thruster.name = Schubdüse block.kiln.name = Brennofen block.graphite-press.name = Graphit-Presse block.multi-press.name = Multipresse -block.constructing = {0}\n[LIGHT_GRAY](Bauen) +block.constructing = {0}\n[lightgray](Baut) block.spawn.name = Gegnerischer Startpunkt block.core-shard.name = Kern: Scherbe block.core-foundation.name = Kern: Fundament @@ -875,8 +875,8 @@ block.core-nucleus.name = Kern: Nukleus 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 = Öl +block.darksand-tainted-water.name = Unreines Wasser (Dunkler Sand) +block.tar.name = Teer block.stone.name = Stein block.sand.name = Sand block.darksand.name = Dunkler Sand @@ -893,7 +893,7 @@ block.icerocks.name = Eis-Felsen block.snowrocks.name = Schnee-Felsen block.dunerocks.name = Dünen-Felsen block.pine.name = Kiefer -block.white-tree-dead.name = Weißer toter Baum +block.white-tree-dead.name = Weißer Baum (tot) block.white-tree.name = Weißer Baum block.spore-cluster.name = Sporen-Cluster block.metal-floor.name = Metallboden 1 @@ -916,8 +916,8 @@ block.copper-wall.name = Kupfermauer block.copper-wall-large.name = Große Kupfermauer block.titanium-wall.name = Titanmauer block.titanium-wall-large.name = Große Titanmauer -block.plastanium-wall.name = Plastanium Wall -block.plastanium-wall-large.name = Large Plastanium Wall +block.plastanium-wall.name = Plastaniummauer +block.plastanium-wall-large.name = Große Plastaniummauer block.phase-wall.name = Phasenmauer block.phase-wall-large.name = Große Phasenmauer block.thorium-wall.name = Thorium-Mauer @@ -927,8 +927,8 @@ block.door-large.name = Großes Tor block.duo.name = Doppelgeschütz block.scorch.name = Scatter block.scatter.name = Luftgeschütz -block.hail.name = Streuer -block.lancer.name = Lanzer +block.hail.name = Hail +block.lancer.name = Lancer block.conveyor.name = Förderband block.titanium-conveyor.name = Titan-Förderband block.armored-conveyor.name = Gepanzertes Förderband @@ -937,11 +937,12 @@ block.junction.name = Kreuzung block.router.name = Verteiler block.distributor.name = Großer Verteiler block.sorter.name = Sortierer -block.inverted-sorter.name = Inverted Sorter +block.inverted-sorter.name = Invertierter Sorter block.message.name = Nachricht -block.illuminator.name = Illuminator -block.illuminator.description = A small, compact, configurable light source. Requires power to function. +block.illuminator.name = Illuminierer +block.illuminator.description = Eine kleine, kompakte, konfigurierbare Lichtquelle. Benötigt Strom. block.overflow-gate.name = Überlauftor +block.underflow-gate.name = Unterlauftor block.silicon-smelter.name = Silizium-Schmelzer block.phase-weaver.name = Phasenweber block.pulverizer.name = Pulverisierer @@ -949,12 +950,12 @@ block.cryofluidmixer.name = Kryoflüssigkeitsmixer block.melter.name = Schmelzer block.incinerator.name = Verbrennungsanlage block.spore-press.name = Sporenpresse -block.separator.name = Separator +block.separator.name = Trenner 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.diode.name = Batterie-Diode block.battery.name = Batterie block.battery-large.name = Große Batterie block.combustion-generator.name = Verbrennungsgenerator @@ -978,7 +979,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.liquid-void.name = Flüssigkeitsschlucker block.power-void.name = Stromsenke block.power-source.name = Unendliche Stromquelle block.unloader.name = Entlader @@ -1038,8 +1039,8 @@ block.container.name = Container block.launch-pad.name = Launchpad block.launch-pad-large.name = Großes Launchpad team.blue.name = Blau -team.crux.name = red -team.sharded.name = orange +team.crux.name = Rot +team.sharded.name = Orange team.orange.name = Orange team.derelict.name = Derelict team.green.name = Grün @@ -1061,37 +1062,37 @@ unit.lich.name = Lich unit.reaper.name = Reaper tutorial.next = [lightgray] tutorial.intro = Du befindest dich im[scarlet] Mindustry-Tutorial.[]\nBeginne, indem du[accent] Kupfer abbaust[]. Tippe dazu auf ein Kupfervorkommen in der Nähe deiner Basis.\n\n[accent]{0}/{1} Kupfer -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 = Manuelles Abbauen ist ineffizient.\n[accent]Bohrer []können automatisch abbauen.\nTippe auf den Bohrer Tab unten rechts.\nWähle den[accent] Mechanischen Bohrer[].\nPlatziere ihn durch Tippen auf ein Kupfervorkommen.\nMit einem [accent]Rechtsklick[] brichst du den Bau ab. -tutorial.drill.mobile = Manuelles Abbauen ist ineffizient.\n[accent]Bohrer []können automatisch abbauen.\nTippe auf den Bohrer Tab unten rechts.\nWähle den[accent] Mechanischen Bohrer[].\nPlatziere ihn durch Tippen auf ein Kupfervorkommen, dann klicke auf das[accent] Häkchen[] unten um deine Auswahl zu bestätigen.\nKlicke auf den[accent] X-Button[] um den Bau abzubrechen. -tutorial.blockinfo = Jeder Block hat unterschiedliche Eigenschaften. Jeder Bohrer kann immer nur ein bestimmtes Material abbauen.\nFür Infos und Stats eines Blocks wähle einen Block im Baumenü aus und [accent] klicke auf den "?"-Button.[]\n\n[accent]Schau dir jetzt die Stats des Mechanischen Bohrers an.[] +tutorial.intro.mobile = Du befindest dich im [scarlet]Mindustry Tutorial.[]\nWische über den Bildschirm, um dich zu bewegen.\n[accent]Benutze zwei Finger[] um heran- und hinauszuzoomen.\nBeginne, indem du [accent]Kupfer abbaust[]. Bewege dich zu einem Kupfervorkommen und tippe anschließend darauf.\n\n[accent]{0}/{1} Kupfer +tutorial.drill = Manuelles Abbauen ist ineffizient.\n[accent]Bohrer []können automatisch abbauen.\nTippe auf den Bohrer-Tab unten rechts.\nWähle den[accent] Mechanischen Bohrer[].\nPlatziere ihn durch Klicken auf ein Kupfervorkommen.\nMit einem [accent]Rechtsklick[] brichst du den Bau ab. +tutorial.drill.mobile = Manuelles Abbauen ist ineffizient.\n[accent]Bohrer []können automatisch abbauen.\nTippe auf den Bohrer Tab unten rechts.\nWähle den[accent] Mechanischen Bohrer[].\nPlatziere ihn durch Tippen auf ein Kupfervorkommen, dann klicke auf das[accent] Häkchen[] unten um deine Auswahl zu bestätigen.\nKlicke auf den[accent] X-Button[], um den Bau abzubrechen. +tutorial.blockinfo = Jeder Block hat unterschiedliche Eigenschaften. Jeder Bohrer kann immer nur ein bestimmtes Material abbauen.\nFür Infos und Stats eines Blocks wähle einen Block im Baumenü aus und [accent] klicke auf den "?"-Button.[]\n\n[accent]Schaue dir jetzt die Stats des Mechanischen Bohrers an.[] tutorial.conveyor = Mit [accent]Förderbändern[] werden Materialien zum Kern transportiert.\nReihe mehrere Förderbänder aneinander bis zum Kern. -tutorial.conveyor.mobile = Mit [accent]Förderbändern[] werden Materialien zum Kern transportiert.\nReihe mehrere Förderbänder aneinander bis zum Kern.\n[accent] Zum Bau in einer Reihe lasse deinen Finger für einige Sekunden gedrückt[] und ziehe ihn in eine beliebige Richtung.\n\n[accent]{0}/{1} Förderbänder in Reihe erstellt\n[accent]0/1 Ressourcen transportiert. -tutorial.turret = Verteidigungsgebäude müssen gebaut werden um[LIGHT_GRAY] Gegner[] abzuwehren.\nBaue einen Duo Geschützturm in die Nähe deiner Basis. -tutorial.drillturret = Duo Geschütztürme benötigen[accent] Kupfermunition, []um schießen zu können.\nPlatziere neben das Geschütz einen Bohrer, um ihn mit Kupfer zu versorgen. +tutorial.conveyor.mobile = Mit [accent]Förderbändern[] werden Materialien zum Kern transportiert.\nReihe mehrere Förderbänder aneinander bis zum Kern.\n[accent] Zum Bau in einer Reihe lasse deinen Finger für einige Sekunden gedrückt[] und ziehe ihn in eine beliebige Richtung.\n\n[accent]Platziere 2 Förderbänder, dann transportiere ein Erz zum Kern. +tutorial.turret = Verteidigungsgebäude müssen gebaut werden um[lightgray] Gegner[] abzuwehren.\nBaue ein Doppelgeschütz in die Nähe deiner Basis. +tutorial.drillturret = Doppelgeschütz benötigen[accent] Kupfermunition, []um schießen zu können.\nPlatziere neben das Geschütz einen Bohrer, um ihn mit Kupfer zu versorgen. tutorial.pause = Du kannst das Spiel jederzeit [accent]pausieren.[]\nIn einer Pause kannst du den Bau weiterer Gebäude in Auftrag geben.\n\n[accent]Drücke die Leertaste um zu pausieren. tutorial.pause.mobile = Du kannst das Spiel jederzeit [accent]pausieren.[]\nIn einer Pause kannst du den Bau weiterer Gebäude in Auftrag geben.\n\n[accent]Drücke diesen Button oben links um zu pausieren. -tutorial.unpause = Drücke die Leertaste erneut um das Spiel fortzusetzen. -tutorial.unpause.mobile = Drücke ihn erneut um das Spiel fortzusetzen. -tutorial.breaking = Oft kommt es vor, dass Blöcke zerstört werden müssen.\n[accent]Halte die rechte Maustaste gedrückt[] während du eine Fläche auswählst. Dadurch werden alle Blöcke darin zerstört.[]\n\n[accent]Zerstöre alle Schrott-Blöcke links neben deinem Kern mithilfe der Flächenauswahl. -tutorial.breaking.mobile = Oft kommt es vor, dass Blöcke zerstört werden müssen.\n[accent]Wähle den Abbau-Modus[], dann wähle einen Block um ihn zu zerstören.\nZerstöre eine Fläche indem du deinen Finger einige Sekunden gedrückt hältst[] und in eine beliebige Richtung ziehst.\nTippe auf das Häkchen um den Rückbau zu bestätigen.\n\n[accent]Zerstöre all Schrott-Blöcke links des Kerns mithilfe der Flächenauswahl. +tutorial.unpause = Drücke die Leertaste erneut, um das Spiel fortzusetzen. +tutorial.unpause.mobile = Drücke ihn erneut, um das Spiel fortzusetzen. +tutorial.breaking = Oft kommt es vor, dass Blöcke zerstört werden müssen.\n[accent]Halte die rechte Maustaste gedrückt[] und wähle eine Fläche aus. Dadurch werden alle Blöcke darin zerstört.[]\n\n[accent]Zerstöre alle Schrott-Blöcke links neben deinem Kern mithilfe der Flächenauswahl. +tutorial.breaking.mobile = Oft kommt es vor, dass Blöcke zerstört werden müssen.\n[accent]Wähle den Abbau-Modus[], dann wähle einen Block um ihn zu zerstören.\nZerstöre eine Fläche, indem du deinen Finger einige Sekunden gedrückt hältst[] und in eine beliebige Richtung ziehst.\nTippe auf das Häkchen um den Rückbau zu bestätigen.\n\n[accent]Zerstöre all Schrott-Blöcke links des Kerns mithilfe der Flächenauswahl. tutorial.withdraw = Einige Situationen erfordern, dass Materialien direkt aus den Blöcken aufgenommen werden.\nUm dies zu tun, [accent]tippe auf einen Block[] mit Materialien dann [accent]tippe auf das Material[] in diesem Block.\nUm mehrere Materialien zu entnehmen [accent]tippe darauf und halte die Maustaste gedrückt[].\n\n[accent]Entnimm etwas Kupfer vom Kern.[] -tutorial.deposit = Materialien können in Blöcke abgelegt werden, indem du sie dorthin ziehst.\n\n[accent]Lege das Kupfer zurück in den Kern.[] -tutorial.waves = Der [LIGHT_GRAY]Gegner[] greift an.\n\nVerteidige deinen Kern 2 Wellen lang. Baue mehr Türme. +tutorial.deposit = Materialien können in Blöcke abgelegt werden, indem du die linke Maustaste drückst und von deinem Schiff dorthin ziehst.\n\n[accent]Lege das Kupfer zurück in den Kern.[] +tutorial.waves = Der [lightgray]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. -item.graphite.description = Mineralisierter Kohlenstoff Wird für Munition und elektrische Isolierung verwendet. +item.graphite.description = Mineralisierter Kohlenstoff. Wird für Munition und elektrische Isolierung verwendet. item.sand.description = Ein gängiges Material, welches häufig in geschmolzener Form, flüssig oder als Legierung verwendet wird. -item.coal.description = Ein sehr häufig vorkommender Kraftstoff. +item.coal.description = Ein sehr häufig vorkommender Kraftstoff. Fossilierte Pflanzenmasse, geformt lange bevor dem Sporen-Ereignis. item.titanium.description = Ein seltenes, sehr leichtes Metall. Häufig in Flüssigkeits-Transport-Blöcken, Abbauanlagen und Luftschiffen verwendet. item.thorium.description = Ein dichtes radioaktives Metall, welches als strukturelle Unterstützung und nuklearer Kraftstoff verwendet wird. -item.scrap.description = Überreste alter Gebäude und Einheiten. Enthalten Spuren verschiedener Metalle. -item.silicon.description = Ein sehr nützlicher Halbleiter. Findet Anwendung in Solaranlagen und komplexer Elektronik. -item.plastanium.description = Ein leichtes dehnbares Material, welches in Flugzeugen und Splittermunition verwendet wird. +item.scrap.description = Überreste alter Gebäude und Einheiten. Enthält Spuren verschiedener Metalle. +item.silicon.description = Ein sehr nützlicher Halbleiter. Findet Anwendung in Solaranlagen, komplexer Elektronik und zielsuchender Munition. +item.plastanium.description = Ein leichtes, dehnbares Material, welches in Flugzeugen und Splittermunition verwendet wird. item.phase-fabric.description = Eine nahezu gewichtslose Substanz, die in fortgeschrittener Elektronik und in selbstreparierender Technologie verwendet wird. item.surge-alloy.description = Eine fortgeschrittene Legierung mit einzigartigen elektrischen Eigenschaften. item.spore-pod.description = Wird zur Umwandlung in Öl, Sprengstoff und Kraftstoff verwendet. @@ -1099,9 +1100,9 @@ item.blast-compound.description = Eine flüchtige Mischung, die in Bomben und Sp item.pyratite.description = Eine extrem leicht entflammbare Substanz. Findet Verwendung in Brandwaffen. liquid.water.description = Wird üblicherweise zum Kühlen von Maschinen und zur Müllverarbeitung verwendet. liquid.slag.description = Ein Gemisch aus verschiedenen Arten von Metall, welche miteinander vermischt wurden. Kann in seine Bestandteile getrennt oder als Waffe auf feindliche Einheiten gesprüht werden. -liquid.oil.description = Kann verbrannt, zum explodieren gebracht, oder als Kühlung verwendet werden. -liquid.cryofluid.description = Die effizienteste Flüssigkeit, um Dinge herunter zu kühlen. -mech.alpha-mech.description = Der Standard-Mech. Ist angemessen schnell und macht ordentlich Schaden. Kann für erweiterte offensive Fähigkeiten bis zu 3 Drohnen erzeugen. +liquid.oil.description = Kann verbrannt, zum Explodieren gebracht, oder zur Kühlung verwendet werden. +liquid.cryofluid.description = Die Flüssigkeit, die Dinge am effizientesten herunterkühlen kann. +mech.alpha-mech.description = Der Standard-Mech. Angemessen schnell und macht ordentlich Schaden. Kann für erweiterte offensive Fähigkeiten bis zu 3 Drohnen erzeugen. mech.delta-mech.description = Ein schneller, leicht gepanzerter Mech, der für Überfälle gemacht wurde. Verursacht wenig Schaden gegen Gebäude, aber tötet Gruppen von Gegnern durch seine Lichtbogen-Waffen. mech.tau-mech.description = Ein Unterstützungs-Mech. Kann Blöcke durch Schüsse heilen. Kann Feuer löschen und verbündete in seinem Aktionsradius heilen. mech.omega-mech.description = Ein klobiger und gut gepanzerter Mech, der für den Angriff an der Front entwickelt wurde. Seine Rüstungsfähigkeit ermöglicht es ihm, 90% des Schadens abzuwehren. @@ -1139,20 +1140,20 @@ block.coal-centrifuge.description = Verfestigt Öl zu Kohlenstücken. block.incinerator.description = Vernichtet beliebige überschüssige Materialien oder Flüssigkeiten. block.power-void.description = Verschlingt den kompletten übrigen Strom. Nur im Sandkasten-Modus verfügbar. block.power-source.description = Erzeugt unendlich viel Strom. Nur im Sandkasten-Modus verfügbar. -block.item-source.description = Produziert unendlich items. Nur im Sandkasten-Modus verfügbar. +block.item-source.description = Produziert unendlich viele Gegenstände. 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.liquid-void.description = Entfernt jegliche Flüssigkeiten. Nur im Sandkasten-Modus verfügbar. 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. -block.titanium-wall-large.description = Ein mittel starker Verteidigungsblock.\nBeitet mäßigen Schutz vor Feinden.\nBenötigt mehrere Kacheln. -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.titanium-wall.description = Ein mittelstarker Verteidigungsblock.\nBietet mäßigen Schutz vor Feinden. +block.titanium-wall-large.description = Ein mittelstarker Verteidigungsblock.\nBietet mäßigen Schutz vor Feinden.\nBenötigt mehrere Kacheln. +block.plastanium-wall.description = Eine spezielle Wand, die elektrische Funken absorbiert und automatische Stromknoten-Verbindung blockiert. +block.plastanium-wall-large.description = Eine spezielle Wand, die elektrische Funken absorbiert und automatische Stromknoten-Verbindung blockiert.\nBenötigt mehrere Kacheln. block.thorium-wall.description = Ein starker Verteidigungsblock.\nBietet guten Schutz vor Feinden. -block.thorium-wall-large.description = Ein starker Verteidigungsblock.\nBietet Guten Schutz vor Feinden.\nBenötigt mehrere Kacheln. -block.phase-wall.description = Nicht so stark, wie eine Thorium-Mauer, aber reflektiert Schüsse bis zu einer gewissen Stärke. -block.phase-wall-large.description = Nicht so stark, wie eine Thorium-Mauer, aber reflektiert Schüsse bis zu einer gewissen Stärke.\nBenötigt mehrere Kacheln. +block.thorium-wall-large.description = Ein starker Verteidigungsblock.\nBietet guten Schutz vor Feinden.\nBenötigt mehrere Kacheln. +block.phase-wall.description = Nicht so stark wie eine Thorium-Mauer, aber reflektiert Schüsse bis zu einer gewissen Stärke. +block.phase-wall-large.description = Nicht so stark wie eine Thorium-Mauer, aber reflektiert Schüsse bis zu einer gewissen Stärke.\nBenötigt mehrere Kacheln. block.surge-wall.description = Der stärkste Verteidigungsblock.\nHat eine kleine Chance, bei einem Schuss einen Lichtbogen in Richtung Angreifer auszulösen. block.surge-wall-large.description = Der stärkste Verteidigungsblock.\nHat eine kleine Chance, bei einem Schuss einen Lichtbogen in Richtung Angreifer auszulösen.\nBenötigt mehrere Kacheln. block.door.description = Eine kleine Tür, die durch Tippen geöffnet und geschlossen werden kann.\nGegner können durch geöffnete Türen schießen und laufen. @@ -1209,8 +1210,8 @@ block.oil-extractor.description = Verwendet große Mengen an Strom, um Öl aus S block.core-shard.description = Die erste Version der Kernkapsel. Einmal zerstört, ist jeglicher Kontakt zur Region verloren. Lass das nicht zu. block.core-foundation.description = Die zweite Version des Kerns. Besser gepanzert. Speichert mehr Ressourcen. block.core-nucleus.description = Die dritte und letzte Version der Kernkapsel. Sehr gut gepanzert. Speichert enorme Mengen an Ressourcen. -block.vault.description = Speichert eine große Menge an Materialien pro Typ. Ein[LIGHT_GRAY] Entlader[] kann verwendet werden, um Materialien auszuladen. -block.container.description = Speichert eine kleine Menge an Materialien pro Typ. Ein[LIGHT_GRAY] Entlader[] kann verwendet werden, um Materialien auszuladen. +block.vault.description = Speichert eine große Menge an Materialien pro Typ. Ein[lightgray] Entlader[] kann verwendet werden, um Materialien auszuladen. +block.container.description = Speichert eine kleine Menge an Materialien pro Typ. Ein[lightgray] Entlader[] kann verwendet werden, um Materialien auszuladen. block.unloader.description = Entlädt Materialien aus einem Container, Tresor oder einer Basis auf ein Förderband oder direkt in einen benachbarten Block. Der Typ des auszuladenden Materials kann durch darauf tippen verändert werden. block.launch-pad.description = Startet Stapel von Items, ohne dass ein Kernstart erforderlich ist. Unvollendet. block.launch-pad-large.description = Eine verbesserte Version des Launchpads. Speichert weitere Items. Wird häufiger gestartet. diff --git a/core/assets/bundles/bundle_zh_CN.properties b/core/assets/bundles/bundle_zh_CN.properties index db38a26842..bb89ba513c 100644 --- a/core/assets/bundles/bundle_zh_CN.properties +++ b/core/assets/bundles/bundle_zh_CN.properties @@ -105,6 +105,7 @@ mods.none = [LIGHT_GRAY]没有找到模组! mods.guide = 模组教程 mods.report = 报告 Bug mods.openfolder = 打开模组文件夹 +mod.display = [gray]模组:[orange] {0} mod.enabled = [lightgray]已启用 mod.disabled = [scarlet]已禁用 mod.disable = 禁用 @@ -171,6 +172,11 @@ hosts.discovering.any = 正在搜索服务器 server.refreshing = 正在刷新服务器 hosts.none = [lightgray]未发现局域网游戏! host.invalid = [scarlet]无法连接服务器。 + +servers.local = 本地服务器 +servers.remote = 远程服务器 +servers.global = 全球服务器 + trace = 跟踪玩家 trace.playername = 玩家名称:[accent]{0} trace.ip = IP 地址:[accent]{0} @@ -252,6 +258,7 @@ copylink = 复制链接 back = 返回 data.export = 导出数据 data.import = 导入数据 +data.openfolder = 打开数据文件夹 data.exported = 数据已导出。 data.invalid = 非有效游戏数据。 data.import.confirm = 导入外部游戏数据将覆盖本地[scarlet]全部[]的游戏数据。\n[accent]此操作无法撤销![]\n\n数据导入后将自动退出游戏。 @@ -532,6 +539,8 @@ error.crashtitle = 发生了一个错误 blocks.input = 输入 blocks.output = 输出 blocks.booster = 增强物品/液体 +blocks.tiles = 所需地型 +blocks.affinities = 相关 block.unknown = [lightgray]??? blocks.powercapacity = 能量容量 blocks.powershot = 能量/发射 @@ -666,6 +675,7 @@ setting.mutesound.name = 无音效 setting.crashreport.name = 发送匿名的崩溃报告 setting.savecreate.name = 自动创建存档 setting.publichost.name = 游戏公开可见 +setting.playerlimit.name = 玩家限制 setting.chatopacity.name = 聊天界面不透明度 setting.lasersopacity.name = 能量激光不透明度 setting.bridgeopacity.name = 桥梁不透明度 diff --git a/core/assets/contributors b/core/assets/contributors index afe1bc3b45..76ffbb2736 100644 --- a/core/assets/contributors +++ b/core/assets/contributors @@ -85,3 +85,4 @@ Draco Quezler Alicila Daniel Dusek +DeltaNedas diff --git a/core/assets/fonts/font.ttf b/core/assets/fonts/font.ttf index 9d7390954d..915f1dfe54 100644 Binary files a/core/assets/fonts/font.ttf and b/core/assets/fonts/font.ttf differ diff --git a/core/assets/fonts/fontello.ttf b/core/assets/fonts/fontello.ttf deleted file mode 100644 index 7eaf076f22..0000000000 Binary files a/core/assets/fonts/fontello.ttf and /dev/null differ diff --git a/core/src/mindustry/ClientLauncher.java b/core/src/mindustry/ClientLauncher.java index 6c5909a798..17a71d6b06 100644 --- a/core/src/mindustry/ClientLauncher.java +++ b/core/src/mindustry/ClientLauncher.java @@ -33,6 +33,8 @@ public abstract class ClientLauncher extends ApplicationCore implements Platform @Override public void setup(){ + Events.fire(new ClientCreateEvent()); + Vars.loadLogger(); Vars.loadFileLogger(); Vars.platform = this; diff --git a/core/src/mindustry/core/Renderer.java b/core/src/mindustry/core/Renderer.java index 09f5198d76..aa31984d2d 100644 --- a/core/src/mindustry/core/Renderer.java +++ b/core/src/mindustry/core/Renderer.java @@ -207,7 +207,7 @@ public class Renderer implements ApplicationListener{ Groups.drawFlying(); Draw.flush(); - if(bloom != null && !pixelator.enabled()){ + if(bloom != null){ bloom.capture(); } @@ -215,7 +215,7 @@ public class Renderer implements ApplicationListener{ Groups.drawEffects(); Draw.flush(); - if(bloom != null && !pixelator.enabled()){ + if(bloom != null){ bloom.render(); } @@ -300,11 +300,6 @@ public class Renderer implements ApplicationListener{ return; } - boolean hadShields = Core.settings.getBool("animatedshields"); - boolean hadWater = Core.settings.getBool("animatedwater"); - Core.settings.put("animatedwater", false); - Core.settings.put("animatedshields", false); - FrameBuffer buffer = new FrameBuffer(w, h); float vpW = camera.width, vpH = camera.height, px = camera.position.x, py = camera.position.y; @@ -336,9 +331,6 @@ public class Renderer implements ApplicationListener{ ui.showInfoFade(Core.bundle.format("screenshot", file.toString())); buffer.dispose(); - - Core.settings.put("animatedwater", hadWater); - Core.settings.put("animatedshields", hadShields); } } diff --git a/core/src/mindustry/game/EventType.java b/core/src/mindustry/game/EventType.java index 148eb57276..24e42f22d4 100644 --- a/core/src/mindustry/game/EventType.java +++ b/core/src/mindustry/game/EventType.java @@ -92,6 +92,10 @@ public class EventType{ } } + public static class ClientCreateEvent{ + + } + /** Called when the client game is first loaded. */ public static class ClientLoadEvent{ diff --git a/core/src/mindustry/game/Teams.java b/core/src/mindustry/game/Teams.java index d07b1060ca..a6689b1795 100644 --- a/core/src/mindustry/game/Teams.java +++ b/core/src/mindustry/game/Teams.java @@ -98,6 +98,7 @@ public class Teams{ /** Do not modify. */ public Array getActive(){ + active.removeAll(t -> !t.active()); return active; } @@ -167,6 +168,14 @@ public class Teams{ public CoreEntity core(){ return cores.first(); } + + @Override + public String toString(){ + return "TeamData{" + + "cores=" + cores + + ", team=" + team + + '}'; + } } /** Represents a block made by this team that was destroyed somewhere on the map. diff --git a/core/src/mindustry/graphics/BlockRenderer.java b/core/src/mindustry/graphics/BlockRenderer.java index 01f3e78082..818e8a1ed2 100644 --- a/core/src/mindustry/graphics/BlockRenderer.java +++ b/core/src/mindustry/graphics/BlockRenderer.java @@ -168,7 +168,6 @@ public class BlockRenderer implements Disposable{ shadowEvents.clear(); Draw.proj(camera.projection()); - renderer.pixelator.rebind(); } float ww = world.width() * tilesize, wh = world.height() * tilesize; diff --git a/core/src/mindustry/graphics/Pixelator.java b/core/src/mindustry/graphics/Pixelator.java index 405a1f43e1..5d06d4991d 100644 --- a/core/src/mindustry/graphics/Pixelator.java +++ b/core/src/mindustry/graphics/Pixelator.java @@ -26,10 +26,6 @@ public class Pixelator implements Disposable{ camera.width = (int)camera.width; camera.height = (int)camera.height; - boolean hadShields = Core.settings.getBool("animatedshields"); - boolean hadWater = Core.settings.getBool("animatedwater"); - Core.settings.put("animatedwater", false); - Core.settings.put("animatedshields", false); graphics.clear(0f, 0f, 0f, 1f); float px = Core.camera.position.x, py = Core.camera.position.y; @@ -56,17 +52,9 @@ public class Pixelator implements Disposable{ Groups.drawNames(); Core.camera.position.set(px, py); - Core.settings.put("animatedwater", hadWater); - Core.settings.put("animatedshields", hadShields); renderer.setScale(pre); } - public void rebind(){ - if(enabled()){ - buffer.begin(); - } - } - public boolean enabled(){ return Core.settings.getBool("pixelate"); } diff --git a/core/src/mindustry/ui/dialogs/JoinDialog.java b/core/src/mindustry/ui/dialogs/JoinDialog.java index fa54134d92..4ccf2f201c 100644 --- a/core/src/mindustry/ui/dialogs/JoinDialog.java +++ b/core/src/mindustry/ui/dialogs/JoinDialog.java @@ -242,6 +242,9 @@ public class JoinDialog extends FloatingDialog{ } void setup(){ + local.clear(); + remote.clear(); + global.clear(); float w = targetWidth(); hosts.clear(); @@ -255,7 +258,6 @@ public class JoinDialog extends FloatingDialog{ pane.setScrollingDisabled(true, false); setupRemote(); - refreshRemote(); cont.clear(); cont.table(t -> { diff --git a/core/src/mindustry/world/blocks/distribution/Conveyor.java b/core/src/mindustry/world/blocks/distribution/Conveyor.java index 5768931ffb..1b90924903 100644 --- a/core/src/mindustry/world/blocks/distribution/Conveyor.java +++ b/core/src/mindustry/world/blocks/distribution/Conveyor.java @@ -263,6 +263,7 @@ public class Conveyor extends Block implements Autotiler{ @Override public void handleStack(Item item, int amount, Tile tile, Teamc source){ ConveyorEntity e = tile.ent(); + amount = Math.min(amount, itemCapacity - e.len); for(int i = amount - 1; i >= 0; i--){ e.add(0); diff --git a/core/src/mindustry/world/blocks/distribution/OverflowGate.java b/core/src/mindustry/world/blocks/distribution/OverflowGate.java index 781561b517..bb68defc8c 100644 --- a/core/src/mindustry/world/blocks/distribution/OverflowGate.java +++ b/core/src/mindustry/world/blocks/distribution/OverflowGate.java @@ -26,6 +26,11 @@ public class OverflowGate extends Block{ return true; } + @Override + public int acceptStack(Item item, int amount, Tile tile, Teamc source){ + return 0; + } + @Override public int removeStack(Tile tile, Item item, int amount){ OverflowGateEntity entity = tile.ent(); diff --git a/core/src/mindustry/world/blocks/distribution/Sorter.java b/core/src/mindustry/world/blocks/distribution/Sorter.java index 7f8744bd51..763ce3dcd9 100644 --- a/core/src/mindustry/world/blocks/distribution/Sorter.java +++ b/core/src/mindustry/world/blocks/distribution/Sorter.java @@ -14,7 +14,7 @@ import mindustry.world.meta.*; import java.io.*; -import static mindustry.Vars.content; +import static mindustry.Vars.*; public class Sorter extends Block{ private static Item lastItem; @@ -46,6 +46,9 @@ public class Sorter extends Block{ @Override public void configured(Tile tile, Playerc player, int value){ tile.ent().sortItem = content.item(value); + if(!headless){ + renderer.minimap.update(tile); + } } @Override diff --git a/fastlane/metadata/android/en-US/changelogs/104.1.txt b/fastlane/metadata/android/en-US/changelogs/104.1.txt new file mode 100644 index 0000000000..6f3e27fb4d --- /dev/null +++ b/fastlane/metadata/android/en-US/changelogs/104.1.txt @@ -0,0 +1,6 @@ +- Optimized and cleaned up conveyors +- Made unloaders take items from blocks in equal amounts +- Added server categories (Partially contributed by @Quezler) +- Added require() function for scripts (Contributed by @DeltaNedas) +- Added color gradient for battery status (Contributed by @Arkanic (eventually)) +- Changed script loading: For mods with more than one script file, the main file must be named "main.js" and must require() other files to run them diff --git a/fastlane/metadata/android/en-US/changelogs/104.2.txt b/fastlane/metadata/android/en-US/changelogs/104.2.txt new file mode 100644 index 0000000000..6f3e27fb4d --- /dev/null +++ b/fastlane/metadata/android/en-US/changelogs/104.2.txt @@ -0,0 +1,6 @@ +- Optimized and cleaned up conveyors +- Made unloaders take items from blocks in equal amounts +- Added server categories (Partially contributed by @Quezler) +- Added require() function for scripts (Contributed by @DeltaNedas) +- Added color gradient for battery status (Contributed by @Arkanic (eventually)) +- Changed script loading: For mods with more than one script file, the main file must be named "main.js" and must require() other files to run them diff --git a/fastlane/metadata/android/en-US/changelogs/104.3.txt b/fastlane/metadata/android/en-US/changelogs/104.3.txt new file mode 100644 index 0000000000..6f3e27fb4d --- /dev/null +++ b/fastlane/metadata/android/en-US/changelogs/104.3.txt @@ -0,0 +1,6 @@ +- Optimized and cleaned up conveyors +- Made unloaders take items from blocks in equal amounts +- Added server categories (Partially contributed by @Quezler) +- Added require() function for scripts (Contributed by @DeltaNedas) +- Added color gradient for battery status (Contributed by @Arkanic (eventually)) +- Changed script loading: For mods with more than one script file, the main file must be named "main.js" and must require() other files to run them diff --git a/fastlane/metadata/android/en-US/changelogs/29609.txt b/fastlane/metadata/android/en-US/changelogs/29609.txt new file mode 100644 index 0000000000..6f3e27fb4d --- /dev/null +++ b/fastlane/metadata/android/en-US/changelogs/29609.txt @@ -0,0 +1,6 @@ +- Optimized and cleaned up conveyors +- Made unloaders take items from blocks in equal amounts +- Added server categories (Partially contributed by @Quezler) +- Added require() function for scripts (Contributed by @DeltaNedas) +- Added color gradient for battery status (Contributed by @Arkanic (eventually)) +- Changed script loading: For mods with more than one script file, the main file must be named "main.js" and must require() other files to run them diff --git a/fastlane/metadata/android/en-US/changelogs/29612.txt b/fastlane/metadata/android/en-US/changelogs/29612.txt new file mode 100644 index 0000000000..6f3e27fb4d --- /dev/null +++ b/fastlane/metadata/android/en-US/changelogs/29612.txt @@ -0,0 +1,6 @@ +- Optimized and cleaned up conveyors +- Made unloaders take items from blocks in equal amounts +- Added server categories (Partially contributed by @Quezler) +- Added require() function for scripts (Contributed by @DeltaNedas) +- Added color gradient for battery status (Contributed by @Arkanic (eventually)) +- Changed script loading: For mods with more than one script file, the main file must be named "main.js" and must require() other files to run them diff --git a/fastlane/metadata/android/en-US/changelogs/29616.txt b/fastlane/metadata/android/en-US/changelogs/29616.txt new file mode 100644 index 0000000000..6f3e27fb4d --- /dev/null +++ b/fastlane/metadata/android/en-US/changelogs/29616.txt @@ -0,0 +1,6 @@ +- Optimized and cleaned up conveyors +- Made unloaders take items from blocks in equal amounts +- Added server categories (Partially contributed by @Quezler) +- Added require() function for scripts (Contributed by @DeltaNedas) +- Added color gradient for battery status (Contributed by @Arkanic (eventually)) +- Changed script loading: For mods with more than one script file, the main file must be named "main.js" and must require() other files to run them diff --git a/gradle.properties b/gradle.properties index fc81933aea..2da06eb8c3 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,3 @@ org.gradle.daemon=true org.gradle.jvmargs=-Xms256m -Xmx1024m -archash=a3edc4804b57ac9f8c59216cc470f05133f8c804 +archash=dccfeeeffbf4e66b815306306b55472dcd123f61 diff --git a/servers.json b/servers.json index 892bda7168..e99d2eb84e 100644 --- a/servers.json +++ b/servers.json @@ -2,6 +2,9 @@ { "address": "mindustry.us.to" }, + { + "address": "mindustry.indielm.com:1101" + }, { "address": "mindustry.ecansol.com:6597" }, diff --git a/tests/src/test/java/ApplicationTests.java b/tests/src/test/java/ApplicationTests.java index eaebe96f35..80ca41273a 100644 --- a/tests/src/test/java/ApplicationTests.java +++ b/tests/src/test/java/ApplicationTests.java @@ -209,6 +209,16 @@ public class ApplicationTests{ assertTrue(state.teams.playerCores().size > 0); } + @Test + void conveyorCrash(){ + world.loadMap(testMap); + state.set(State.playing); + + world.tile(0, 0).setBlock(Blocks.conveyor); + world.tile(0, 0).rotation(0); + Blocks.conveyor.acceptStack(Items.copper, 1000, world.tile(0, 0), null); + } + @Test void conveyorBench(){ int[] items = {0};