1
0
mirror of https://github.com/Anuken/Mindustry.git synced 2024-10-26 01:00:01 +03:00

Merged with master

This commit is contained in:
Anuken 2020-02-09 12:27:44 -05:00
commit a2706a80b1
84 changed files with 488 additions and 413 deletions

View File

@ -82,4 +82,4 @@
<option name="CONTINUATION_INDENT_SIZE" value="0" />
</indentOptions>
</codeStyleSettings>
</code_scheme>
</code_scheme>

1
.gitignore vendored
View File

@ -18,6 +18,7 @@ logs/
/annotations/out/
/net/build/
/tools/build/
/core/build/
/tests/build/
/server/build/
changelog

View File

@ -162,4 +162,4 @@ task run(type: Exec){
def adb = path + "/platform-tools/adb"
commandLine "$adb", 'shell', 'am', 'start', '-n', 'io.anuke.mindustry/mindustry.android.AndroidLauncher'
}
}

View File

@ -2,4 +2,4 @@
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@mipmap/ic_launcher_background"/>
<foreground android:drawable="@mipmap/ic_launcher_foreground"/>
</adaptive-icon>
</adaptive-icon>

View File

@ -2,4 +2,4 @@
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@mipmap/ic_launcher_background"/>
<foreground android:drawable="@mipmap/ic_launcher_foreground"/>
</adaptive-icon>
</adaptive-icon>

View File

@ -8,4 +8,4 @@
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowFullscreen">true</item>
</style>
</resources>
</resources>

View File

@ -3,4 +3,4 @@
<string name="app_name">Mindustry</string>
</resources>
</resources>

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<full-backup-content>
</full-backup-content>
</full-backup-content>

View File

@ -81,7 +81,7 @@ public class AndroidLauncher extends AndroidApplication{
if(VERSION.SDK_INT >= VERSION_CODES.Q){
Intent intent = new Intent(open ? Intent.ACTION_OPEN_DOCUMENT : Intent.ACTION_CREATE_DOCUMENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
intent.setType(extension.equals("zip") ? "application/zip" : "*/*");
intent.setType(extension.equals("zip") && !open ? "application/zip" : "*/*");
addResultListener(i -> startActivityForResult(intent, i), (code, in) -> {
if(code == Activity.RESULT_OK && in != null && in.getData() != null){
Uri uri = in.getData();

View File

@ -921,4 +921,4 @@
"src": "fontawesome"
}
]
}
}

View File

@ -172,6 +172,11 @@ hosts.discovering.any = Discovering games
server.refreshing = Refreshing server
hosts.none = [lightgray]No local games found!
host.invalid = [scarlet]Can't connect to host.
servers.local = Local Servers
servers.remote = Remote Servers
servers.global = Global Servers
trace = Trace Player
trace.playername = Player name: [accent]{0}
trace.ip = IP: [accent]{0}

View File

@ -1254,4 +1254,4 @@ block.omega-mech-pad.description = Umožňuje přeměnu Tvého vozidla na těžc
block.javelin-ship-pad.description = Umožňuje přeměnu Tvého vozidla na rychlou, lehce obrněnou stíhačku.\nAktivuj kliknutím nebo ťupnutím, když se nacházíš nad plošinou.
block.trident-ship-pad.description = Umožňuje přeměnu Tvého vozidla na těžkého podpůrného bombardéra.\nAktivuj kliknutím nebo ťupnutím, když se nacházíš nad plošinou.
block.glaive-ship-pad.description = Umožňuje přeměnu Tvého vozidla na velkou, dobře obrněnou střeleckou loď.\nAktivuj kliknutím nebo ťupnutím, když se nacházíš nad plošinou.

View File

@ -1,27 +1,27 @@
credits.text = Entwickelt von [ROYAL]Anuken[] - [SKY]anukendev@gmail.com[]\n\n[GRAY]
credits = Danksagungen
contributors = Übersetzer und Mitwirkende
discord = Tritt dem Mindustry Discord bei!
link.discord.description = Der offizielle Mindustry Discord-Server
discord = Tritt dem Mindustry-Discord bei!
link.discord.description = Der offizielle Mindustry Discord-Chatroom
link.reddit.description = Der Mindustry Subreddit
link.github.description = Quellcode des Spiels
link.changelog.description = Liste der Änderungen
link.dev-builds.description = Entwicklungs-Builds (instabil)
link.trello.description = Offizielles Trello Board für geplante Features
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.google-play.description = Google Play Store-Seite
link.f-droid.description = F-Droid catalogue listing
link.wiki.description = Offizelles Mindustry Wiki
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 = 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!
copied = Kopiert.
load.sound = Sounds
load.sound = Audio
load.map = Karten
load.image = Bilder
load.content = Inhalt
@ -39,17 +39,17 @@ be.check = Check for updates
schematic = Entwürfe
schematic.add = Entwurf speichern...
schematics = Entwürfe
schematic.replace = Ein anderer Entwurf hat bereits diesen Namen. Diesen Ersetzen?
schematic.replace = Ein anderer Entwurf hat bereits diesen Namen. Diesen ersetzen?
schematic.import = Entwurf importieren...
schematic.exportfile = Entwurf exportieren
schematic.importfile = Detei importieren
schematic.browseworkshop = Workshop erkunden
schematic.copy = In Zwischenablage speichern
schematic.copy.import = Aus Zwischenablage ziehen
schematic.exportfile = Datei exportieren
schematic.importfile = Datei importieren
schematic.browseworkshop = Workshop durchsuchen
schematic.copy = In Zwischenablage kopieren
schematic.copy.import = Aus Zwischenablage importieren
schematic.shareworkshop = Im Workshop teilen
schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Entwurf umkehren
schematic.saved = Entwurf gespeichert.
schematic.delete.confirm = Dieser Entwurf wird absolut ausgelöscht.
schematic.delete.confirm = Dieser Entwurf wird vollständig vernichtet.
schematic.rename = Entwurf umbenennen
schematic.info = {0}x{1}, {2} Blöcke
@ -82,43 +82,43 @@ position = Position
close = Schließen
website = Website
quit = Verlassen
save.quit = Speichern & Beenden
save.quit = Speichern & Verlassen
maps = Karten
maps.browse = Karten durschsuchen
maps.browse = Karten durchsuchen
continue = Weiter
maps.none = [LIGHT_GRAY]Keine Karten gefunden!
invalid = ungültig
invalid = Ungültig
pickcolor = Pick Color
preparingconfig = Konfiguration vorbereiten
preparingcontent = Inhalte vorbereiten
uploadingcontent = Inhalte hochladen
uploadingpreviewfile = Vorschau hochladen
committingchanges = Veränderungen bestätigen
preparingcontent = Inhalt vorbereiten
uploadingcontent = Inhalt hochladen
uploadingpreviewfile = Vorschaudatei hochladen
committingchanges = Veränderungen übernehmen
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.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.report = Problem senden
mods.openfolder = Mod Verzeichnis öffnen
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.missingdependencies = [scarlet]Fehldene Abhängigkeiten: {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.nowdisabled = [scarlet]Mod '{0}' fehlt Abhängigkeiten:[accent] {1}\n[lightgray]Diese Mods müssen erst installiert werden.\nDieser Mod wird automatisch deaktiviert.
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 schließt nun, um Modänderungen wirksam zu machen.
mod.requiresrestart = Das Spiel wird jetzt beendet, um die Mod-Änderungen anzuwenden.
mod.reloadrequired = [scarlet]Neuladen benötigt
mod.import = Mod importieren
mod.import.github = GitHub 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}
@ -140,14 +140,14 @@ researched = [LIGHT_GRAY]{0} erforscht.
players = {0} Spieler online
players.single = {0} Spieler online
server.closing = [accent]Schließe den Server ...
server.kicked.kick = Du wurdest vom Server gekickt!
server.kicked.whitelist = Du bist hier nicht auf der Whitelist.
server.kicked.kick = Du wurdest vom Server geworfen!
server.kicked.whitelist = Du befindest dich nicht auf der Whitelist des Servers.
server.kicked.serverClose = Server geschlossen.
server.kicked.vote = Es wurde abgestimmt, dich zu kicken. Tschüss.
server.kicked.vote = Es wurde abgestimmt, dich rauszuwerfen. Tschüss.
server.kicked.clientOutdated = Veralteter Client! Aktualisiere dein Spiel!
server.kicked.serverOutdated = Veralteter Server! Bitte den Host um ein Update!
server.kicked.banned = Du wurdest vom Server verbannt.
server.kicked.typeMismatch = Der Server ist nicht mit deinem Versionstyp kompatibel.
server.kicked.typeMismatch = Dieser Server ist nicht mit deinem Buildtyp kompatibel.
server.kicked.playerLimit = Dieser Server ist voll. Warte auf einen freien Platz.
server.kicked.recentKick = Du wurdest gerade gekickt.\nWarte bevor du dich wieder verbindest.
server.kicked.nameInUse = Es ist bereits ein Spieler \nmit diesem Namen auf dem Server.
@ -157,8 +157,8 @@ server.kicked.customClient = Der Server akzeptiert keine Custom Builds von Mindu
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.
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
invitefriends = Freunde einladen
hostserver.mobile = Host\nSpiel
@ -177,10 +177,10 @@ trace.id = Eindeutige ID: [accent]{0}
trace.mobile = Mobiler Client: [accent]{0}
trace.modclient = Gemoddeter Client: [accent]{0}
invalidid = Ungültige Client-ID! Berichte den Fehler.
server.bans = Bans
server.bans.none = Keine gebannten Spieler gefunden!
server.admins = Admins
server.admins.none = Keine Admins gefunden!
server.bans = Verbannungen
server.bans.none = Keine verbannten Spieler gefunden!
server.admins = Administratoren
server.admins.none = Keine Administratoren gefunden!
server.add = Server hinzufügen
server.delete = Bist du dir sicher, dass du diesen Server löschen möchtest?
server.edit = Server bearbeiten
@ -189,17 +189,17 @@ server.outdated.client = [crimson]Veralteter Client![]
server.version = [lightgray]Version: {0}
server.custombuild = [yellow]Benutzerdefinierter Build
confirmban = Bist du sicher, dass du diesen Spieler verbannen möchtest?
confirmkick = Bist du sicher, dass du diesen Spieler kicken willst?
confirmvotekick = Bist du sicher diesen Spieler mit einer Abstimmung rauszuwerfen?
confirmkick = Bist du sicher, dass du diesen Spieler rauswerfen willst?
confirmvotekick = Bist du sicher, dass du darüber abstimmen willst, diesen Spieler rauszuwerfen?
confirmunban = Bist du sicher, dass du die Verbannung des Spielers rückgängig machen willst?
confirmadmin = Bist du sicher, dass du diesen Spieler zu einem Admin machen möchtest?
confirmunadmin = Bis du sicher, dass dieser Spieler kein Admin mehr sein soll?
confirmadmin = Bist du sicher, dass du diesen Spieler zu einem Administrator machen möchtest?
confirmunadmin = Bis du sicher, dass dieser Spieler kein Administrator mehr sein soll?
joingame.title = Spiel beitreten
joingame.ip = IP:
disconnect = Verbindung unterbrochen.
disconnect.error = Verbindungsfehler.
disconnect.closed = Verbindung geschlossen.
disconnect.timeout = Zeit Überschreitung.
disconnect.timeout = Zeitüberschreitung.
disconnect.data = Fehler beim Laden der Welt!
cantconnect = Nicht möglich beizutreten ([accent]{0}[]).
connecting = [accent] Verbinde...
@ -212,7 +212,7 @@ 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
@ -221,7 +221,7 @@ 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 speichern:
save.newslot = Name:
save.rename = Umbenennen
save.rename.text = Neuer Name
selectslot = Wähle einen Spielstand
@ -234,36 +234,36 @@ off = Aus
save.autosave = Automatisches Speichern: {0}
save.map = Karte: {0}
save.wave = Welle: {0}
save.mode = Gamemode: {0}
save.mode = Spielmodus: {0}
save.date = Zuletzt gespeichert: {0}
save.playtime = Spielzeit: {0}
warning = Warnung.
warning = Warnung
confirm = Bestätigen
delete = Löschen
view.workshop = Im Workshop betrachten
workshop.listing = Workshop Auflistung bearbeiten
view.workshop = Im Workshop ansehen
workshop.listing = Workshop-Auflistung bearbeiten
ok = OK
open = Öffnen
customize = Anpassen
cancel = Abbruch
openlink = Link öffnen
copylink = Kopiere Link
copylink = Link kopieren
back = Zurück
data.export = Daten exportieren
data.import = Daten importieren
data.exported = Daten exportiert.
data.invalid = Das sind ungültige Spieldateien.
data.import.confirm = Externe Spielstände zu importieren löscht[scarlet] all[] deine jetzigen Spielstände.\n[accent]Dies kann nicht rückgängig gemacht werden![]\n\nSobald die Daten importiert sind, schließt das Spiel.
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.
classic.export = Klassische Dateien exportieren
classic.export.text = [accent]Mindustry[] Mindustry hatte gerade ein rießiges Update.\nKlassische (v3.5 build 40) Spielstand oder Karten-Daten wurden gefunden. Willst du sie in den home-Ordner deines Smartphones exportieren, um sie für die Mindustry-Klassik App zu verwenden?
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?
quit.confirm.tutorial = Willst du das Tutorial wirklich abbrechen?\nDu kannst es unter[accent] Einstellungen->Spiel->Tutorial wiederholen[] erneut spielen.
quit.confirm.tutorial = Weißt du, was du tust?\nDu kannst das Tutorial unter[accent] Einstellungen->Spiel->Tutorial wiederholen[] erneut spielen.
loading = [accent]Wird geladen...
reloading = [accent]Mods neuladen...
reloading = [accent]Lade Mods neu...
saving = [accent]Speichere...
cancelbuilding = [accent][[{0}][] um Plan zu löschen
cancelbuilding = [accent][[{0}][] um den Plan zu leeren
selectschematic = [accent][[{0}][] zum Auswählen+Kopieren
pausebuilding = [accent][[{0}][] zum Pausieren des Bauens
pausebuilding = [accent][[{0}][] um das Bauen zu pausieren
resumebuilding = [scarlet][[{0}][] um das Bauen fortzusetzen
wave = [accent]Welle {0}
wave.waiting = Welle in {0}
@ -277,33 +277,33 @@ saveimage = Bild speichern
unknown = Unbekannt
custom = Benutzerdefiniert
builtin = Enthalten
map.delete.confirm = Bist du sicher, dass du diese Karte löschen willst? Die Aktion kann nicht rückgänig gemacht werden!
map.delete.confirm = Bist du sicher, dass du diese Karte löschen willst? Dies kann nicht rückgänig gemacht werden!
map.random = [accent]Zufällige Karte
map.nospawn = Diese Karte hat keine Kerne in denen die Spieler beginnen können! Füge einen [ROYAL]blue[] Kern zu dieser Karte im Editor hinzu.
map.nospawn.pvp = Diese Karte hat keine gegnerischen Kerne wo Gegner starten könnten! Füge über den Editor [SCARLET] rote[] Kerne zu dieser Karte hinzu.
map.nospawn.pvp = Diese Karte hat keine gegnerischen Kerne in denen Gegner starten können! Füge über den Editor [SCARLET] rote[] Kerne zu dieser Karte hinzu.
map.nospawn.attack = Diese Karte hat keine gengnerischen Kerne, die Spieler angreifen können! Füge über den Editor [SCARLET] rote[] Kerne zu dieser Karte hinzu.
map.invalid = Fehler beim Laden der Karte: Beschädigtes oder ungültige Karten Datei.
workshop.update = Item aktualisieren
workshop.error = Fehler beim laden von Workshop-Daten: {0}
map.publish.confirm = Willst du wirklich diese Map hochladen?\n\n[lightgray]Vergewissere dich die, der Workshop-EULA zugestimmt zu haben, sonst tauch deine Map nicht auf!
workshop.menu = Wähle aus, was du mit diesem Item machen willst.
workshop.info = Item Info
map.invalid = Fehler beim Laden der Karte: Beschädigte oder ungültige Kartendatei.
workshop.update = Objekt aktualisieren
workshop.error = Fehler beim Laden von Workshop-Details: {0}
map.publish.confirm = Willst du diese Karte wirklich veröffentlichen?\n\n[lightgray]Vergewissere dich, dass du der Workshop-EULA zugestimmt hast, sonst tauchen deine Karten nicht auf!
workshop.menu = Wähle aus, was du mit diesem Objekt tun willst.
workshop.info = Objekt-Info
changelog = Changelog (optional):
eula = Steam EULA
missing = Dieses Item wurde verschoben oder gelöscht.\n[lightgray]Die Workshop-Auflistung wird nun automatisch ungekoppelt.
missing = Dieses Objekt wurde gelöscht oder verschoben.\n[lightgray]Die Workshop-Auflistung ist nun automatisch getrennt worden.
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}
publish.confirm = Willst du das wirklich veröffentlichen?\n\n[lightgray]Vergewissere dich, dass du der Workshop-EULA zugestimmt hast, sonst tauchen deine Objekte nicht auf!
publish.error = Fehler beim Veröffentlichen des Objekts: {0}
steam.error = Fehler beim laden der Steam-Dienste.\nError: {0}
editor.brush = Pinsel
editor.openin = Öffne im Editor
editor.oregen = Erze generieren
editor.oregen.info = Erze generiert:
editor.mapinfo = Karten Info
editor.mapinfo = Karten-Info
editor.author = Autor:
editor.description = Beschreibung:
editor.nodescription = Eine Karte benötigt mindestens 4 Buchstaben in der Beschreibung, bevor sie veröffentlich werden kann.
editor.nodescription = Eine Karte benötigt eine Beschreibung mit mindestens 4 Buchstaben, bevor sie veröffentlich werden kann.
editor.waves = Wellen:
editor.rules = Regeln:
editor.generation = Generator:
@ -325,23 +325,23 @@ waves.copy = Aus der Zwischenablage kopieren
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 Wellen Entwürfe werden automatisch mit dem Standard-Entwurf ersetzt.
waves.none = Keine Gegner definiert.\nInfo: Leere Wellenentwürfe werden automatisch mit dem Standard-Entwurf ersetzt.
editor.default = [LIGHT_GRAY]<Standard>
details = Details...
edit = Bearbeiten...
details = Details
edit = Bearbeiten
editor.name = Name:
editor.spawn = Spawn Bereich
editor.removeunit = Entferne Bereich
editor.spawn = Spawnbereich
editor.removeunit = Bereich entfernen
editor.teams = Teams
editor.errorload = Fehler beim Laden der Datei:\n[accent]{0}
editor.errorsave = Fehler beim Speichern der Datei:\n[accent]{0}
editor.errorimage = Das ist ein Bild, keine Karte. Wechsel nicht den Dateityp und erwarte, dass es funktioniert.\n\nWenn du eine alte Karte importieren möchtest, benutze den 'Importiere Terrain Bild' Knopf in dem Editor.
editor.errorlegacy = Diese Karte ist zu alt und benutzt ein veraltetes Karten Format, das nicht mehr unterstützt wird.
editor.errornot = Dies ist keine Kartendatei
editor.errorimage = Das ist ein Bild, keine Karte. Wechsle nicht den Dateityp und erwarte, dass es funktioniert.\n\nWenn du eine 3.5/build 40-Karte importieren möchtest, benutze den 'Importiere Terrainbild' Knopf im Editor.
editor.errorlegacy = Diese Karte ist zu alt und benutzt ein veraltetes Kartenformat, das nicht mehr unterstützt wird.
editor.errornot = Dies ist keine Kartendatei.
editor.errorheader = Diese Karte ist entweder nicht gültig oder beschädigt.
editor.errorname = Karte hat keinen Namen.
editor.update = Aktualisieren
editor.randomize = Zufällig Anordnen
editor.randomize = Zufällig anordnen
editor.apply = Anwenden
editor.generate = Generieren
editor.resize = Größe\nanpassen
@ -355,22 +355,22 @@ editor.import = Importieren...
editor.importmap = Importiere Karte
editor.importmap.description = Importiere von einer bestehenden Karte
editor.importfile = Importiere Datei
editor.importfile.description = Importiere aus einer Karten Datei
editor.importimage = Importiere Terrain Bild
editor.importimage.description = Importiere aus einer Terrain Bild Datei
editor.export = Exportieren...
editor.importfile.description = Importiere aus einer Kartendatei
editor.importimage = Importiere Terrainbild
editor.importimage.description = Importiere aus einer Terrainbild-Datei
editor.export = Exportiere...
editor.exportfile = Export in Datei
editor.exportfile.description = Exportiere in eine Karten Datei
editor.exportimage = Export in Terrain Bild Datei
editor.exportimage.description = Exportiere in eine Karten Bild Datei
editor.exportfile.description = Exportiere in eine Karten-Datei
editor.exportimage = Export in Terrainbild-Datei
editor.exportimage.description = Exportiere in ein Kartenbild
editor.loadimage = Bild\nladen
editor.saveimage = Bild\nspeichern
editor.unsaved = [crimson] Du hast Änderungen nicht gespeichert [] Möchtest du wirklich aufhören?
editor.unsaved = [crimson] Einige Änderungen wurden noch nicht gespeichert! [] Möchtest du den Editor wirklich verlassen?
editor.resizemap = Größe der Karte ändern
editor.mapname = Karten Name
editor.mapname = Kartenname
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.exists = Eine Karte mit diesem Namen existiert bereits.
editor.selectmap = Wähle eine Karte zum Laden:
toolmode.replace = Ersetzen
@ -380,23 +380,23 @@ toolmode.replaceall.description = Alle Blöcke auf der Karte ersetzen.
toolmode.orthogonal = Rechtwinkelig
toolmode.orthogonal.description = Zeichnet nur rechtwinkelige Linien.
toolmode.square = Quadrat
toolmode.square.description = Quadrat Pinsel.
toolmode.square.description = Quadratpinsel.
toolmode.eraseores = Erze löschen
toolmode.eraseores.description = Löscht nur Erze.
toolmode.fillteams = Teams Ausfüllen
toolmode.fillteams.description = Füllt Teams aus anstatt Blöcke.
toolmode.fillteams = Teams ausfüllen
toolmode.fillteams.description = Füllt Teams aus statt Blöcke.
toolmode.drawteams = Teams Zeichnen
toolmode.drawteams.description = Zeichnet Teams anstatt Blöcke.
toolmode.drawteams.description = Zeichnet Teams statt Blöcke.
filters.empty = [LIGHT_GRAY]Keine Filter! Füge einen mit dem unteren Knopf hinzu.
filter.distort = Verzerren
filter.noise = Rauschen
filter.median = Mittelwert
filter.oremedian =Erz Median
filter.median = Median
filter.oremedian = Erzmedian
filter.blend = Mischen
filter.defaultores = Standard Erze
filter.defaultores = Standarderze
filter.ore = Erz
filter.rivernoise = Fluss Rauschen
filter.rivernoise = Flussrauschen
filter.mirror = Spiegel
filter.clear = Löschen
filter.option.ignore = Ignorieren
@ -406,7 +406,7 @@ filter.option.scale = Skalierung
filter.option.chance = Wahrscheinlichkeit
filter.option.mag = Größe
filter.option.threshold = Grenzwert
filter.option.circle-scale = Kreis Skalierung
filter.option.circle-scale = Kreisskalierung
filter.option.octaves = Oktaven
filter.option.falloff = Rückgang
filter.option.angle = Winkel
@ -434,29 +434,29 @@ settings = Einstellungen
tutorial = Tutorial
tutorial.retake = Tutorial wiederholen
editor = Editor
mapeditor = Karten Editor
mapeditor = Karteneditor
abandon = Aufgeben
abandon.text = Diese Zone sowie alle Ressourcen werden dem Gegner überlassen.
locked = Gesperrt
complete = [LIGHT_GRAY]Abschließen:
requirement.wave = Erreiche {0} in {1}
requirement.core = Zerstöre Gegnerbasis in {0}
requirement.unlock = Schalte {0} freo
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}
launch = Abschluss
launch.title = Abschluss erfolgreich
launch = Starten
launch.title = Start erfolgreich
launch.next = [LIGHT_GRAY]Nächste Möglichkeit bei Welle {0}
launch.unable2 = [scarlet]Unfähig abzuschließen.[]
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 jetzt überspringst, kannst du nicht vor späteren Wellen abschließen.
launch.skip.confirm = Wenn du die Wartezeit überspringst, kannst du den Kern bis zu einer späteren Welle nicht mehr starten.
uncover = Freischalten
configure = Startitems festlegen
bannedblocks = Gesperrte Blöcke
addall = Alle hinzufügen
configure.locked = [LIGHT_GRAY]Erreiche Welle {0}\n, um Startitems festlegen zu können.
configure.invalid = Anzahl muss zwischen 0 und {0} sein.
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.requirement.complete = Welle {0} erreicht:\n{1} Anforderungen der Zone erfüllt.
zone.config.unlocked = Konfiguration:[lightgray]\n{0}
@ -465,7 +465,7 @@ zone.objective = [lightgray]Ziel: [accent]{0}
zone.objective.survival = Überlebe
zone.objective.attack = Zerstöre den feindlichen Kern
add = Hinzufügen...
boss.health = Boss Lebenskraft
boss.health = Boss-Lebenskraft
connectfail = [crimson] Verbindung zum Server konnte nicht hergestellt werden: [accent]{0}
error.unreachable = Server nicht erreichbar.
@ -487,14 +487,14 @@ zone.stainedMountains.name = Gefleckte Berge
zone.desolateRift.name = Trostloser Riss
zone.nuclearComplex.name = Kernkraftwerk
zone.overgrowth.name = Überwucherung
zone.tarFields.name = Ölfelder
zone.saltFlats.name = Salztiefen
zone.impact0078.name = Auswirkung 0078
zone.tarFields.name = Teerfelder
zone.saltFlats.name = Salzebenen
zone.impact0078.name = Einschlag 0078
zone.crags.name = Felsen
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.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.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.
@ -504,7 +504,7 @@ zone.overgrowth.description = Dieser Bereich ist bewachsen, näher an der Quelle
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.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 tieferen, sporengeplagter Länder. Eine kleine Späherbasis ist hier angelegt.\nZerstöre sie.\nNutze Dagger und Crawler. Zerstöre die zwei Basen.
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 = <Beschreibung hier einfügen>
zone.crags.description = <Beschreibung hier einfügen>
@ -519,7 +519,7 @@ 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.
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
clear = Leeren
banned = [scarlet]Banned
@ -535,8 +535,8 @@ block.unknown = [LIGHT_GRAY]???
blocks.powercapacity = Kapazität
blocks.powershot = Stromverbrauch/Schuss
blocks.damage = Schaden
blocks.targetsair = Visiert Luft Einheiten an
blocks.targetsground = Visiert Boden Einheiten an
blocks.targetsair = Visiert Lufteinheiten an
blocks.targetsground = Visiert Bodeneinheiten an
blocks.itemsmoved = Bewegungsgeschwindigkeit
blocks.launchtime = Zeit zwischen Starts
blocks.shootrange = Reichweite
@ -549,13 +549,13 @@ blocks.powerdamage = Stromverbrauch/Schadenspunkt
blocks.itemcapacity = Materialkapazität
blocks.basepowergeneration = Basis-Stromerzeugung
blocks.productiontime = Produktionszeit
blocks.repairtime = Zeit zur vollständigen Heilung
blocks.repairtime = Zeit zur vollständigen Reparatur
blocks.speedincrease = Geschwindigkeitserhöhung
blocks.range = Reichweite
blocks.drilltier = Abbaubare Erze
blocks.drillspeed = Bohrgeschwindigkeit
blocks.boosteffect = Verstärkungseffekt
blocks.maxunits = Max aktive Einheiten
blocks.maxunits = Max. aktive Einheiten
blocks.health = Lebenspunkte
blocks.buildtime = Baudauer
blocks.buildcost = Baukosten
@ -564,14 +564,14 @@ blocks.shots = Schüsse
blocks.reload = Schüsse/Sekunde
blocks.ammo = Munition
bar.drilltierreq = Besserer Bohrer benötigt
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.powerstored = Gespeichert: {0}/{1}
bar.poweramount = Strom: {0}
bar.poweroutput = Stromgeneration: {0}
bar.poweroutput = Stromgenerierung: {0}
bar.items = Items: {0}
bar.capacity = Kapazität: {0}
bar.liquid = Flüssigkeit
@ -586,7 +586,7 @@ bullet.damage = [stat]{0}[lightgray] Schaden
bullet.splashdamage = [stat]{0}[lightgray] Flächenschaden ~[stat] {1}[lightgray] Kacheln
bullet.incendiary = [stat]entzündend
bullet.homing = [stat]zielsuchend
bullet.shock = [stat]schock
bullet.shock = [stat]schockend
bullet.frag = [stat]explosiv
bullet.knockback = [stat]{0}[lightgray] zurückstoßend
bullet.freezing = [stat]frierend
@ -602,7 +602,7 @@ unit.liquidunits = Flüssigkeitseinheiten
unit.powerunits = Stromeinheiten
unit.degrees = Grad
unit.seconds = Sekunden
unit.persecond = /s
unit.persecond = /sek
unit.timesspeed = x Geschwindigkeit
unit.percent = %
unit.items = Materialeinheiten
@ -627,8 +627,8 @@ setting.antialias.name = Antialias[LIGHT_GRAY] (Neustart erforderlich)[]
setting.indicators.name = Verbündeten-Indikatoren
setting.autotarget.name = Auto-Zielauswahl
setting.keyboard.name = Maus+Tastatur Steuerung
setting.touchscreen.name = Touchscreen Controls
setting.fpscap.name = Max FPS
setting.touchscreen.name = Touchscreen-Steuerung
setting.fpscap.name = Max. FPS
setting.fpscap.none = kein
setting.fpscap.text = {0} FPS
setting.uiscale.name = UI-Skalierung[lightgray] (Neustart erforderlich)[]
@ -645,12 +645,12 @@ 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.saveinterval.name = Autosave-Häufigkeit
setting.seconds = {0} Sekunden
setting.blockselecttimeout.name = Block Auswahl Timeout
setting.milliseconds = {0} Millisekunden
setting.fullscreen.name = Vollbild
setting.borderlesswindow.name = Randloses Fenster[LIGHT_GRAY] (Neustart teilweise erforderlich)
setting.borderlesswindow.name = Randloses Fenster[LIGHT_GRAY] (Neustart vielleicht erforderlich)
setting.fps.name = Zeige FPS
setting.blockselectkeys.name = Block Shortcuts anzeigen
setting.vsync.name = VSync
@ -663,10 +663,10 @@ setting.mutemusic.name = Musik stummschalten
setting.sfxvol.name = Audioeffekt-Lautstärke
setting.mutesound.name = Audioeffekte stummschalten
setting.crashreport.name = Anonyme Absturzberichte senden
setting.savecreate.name = Automatisch Speicherstände anlegen
setting.publichost.name = Public Game Visibility
setting.chatopacity.name = Chat Deckkraft
setting.lasersopacity.name = Power Laser Opacity
setting.savecreate.name = Automatisch speichern
setting.publichost.name = Öffentliche Sichtbarkeit des Spiels
setting.chatopacity.name = Chat-Deckkraft
setting.lasersopacity.name = Power-Laser-Deckkraft
setting.playerchat.name = Chat im Spiel anzeigen
public.confirm = Willst du dein Spiel öffentlich zugänglich machen?\n[accent]Jeder kann deinem Spiel beitreten.\n[lightgray]Dies kann später in den Einstellung->Spielt->Öffentliches Spiel geändert werden.
public.beta = Bemerke: Beta-Versionen des Spiels können keine öffentlichen Spiele machen.
@ -679,7 +679,7 @@ category.general.name = Allgemein
category.view.name = Ansicht
category.multiplayer.name = Mehrspieler
command.attack = Angreifen
command.rally = Rally
command.rally = Patrouillieren
command.retreat = Rückzug
placement.blockselectkeys = \n[lightgray]Shortcut: [{0},
keybind.clear_building.name = Clear Building
@ -690,11 +690,11 @@ 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.dash.name = Sprinten
keybind.schematic_select.name = Bereich auswählen
keybind.schematic_menu.name = Schematic Menu
keybind.schematic_menu.name = Entwurfsmenü
keybind.schematic_flip_x.name = Entwurf umdrehen X
keybind.schematic_flip_y.name = Entwurf umdrehn Y
keybind.schematic_flip_y.name = Entwurf umdrehen Y
keybind.category_prev.name = Vorige Kategorie
keybind.category_next.name = Nächste Kategorie
keybind.block_select_left.name = Block-Auswahl nach links
@ -711,10 +711,10 @@ keybind.block_select_07.name = Kategorie/Block 7 auswählen
keybind.block_select_08.name = Kategorie/Block 8 auswählen
keybind.block_select_09.name = Kategorie/Block 9 auswählen
keybind.block_select_10.name = Kategorie/Block 10 auswählen
keybind.fullscreen.name = Vollbild umschalten
keybind.fullscreen.name = Vollbildmodus umschalten
keybind.select.name = Auswählen/Schießen
keybind.diagonal_placement.name = Diagonal platzieren
keybind.pick.name = Block Auswählen
keybind.pick.name = Block auswählen
keybind.break_block.name = Block zerstören
keybind.deselect.name = Auswahl aufheben
keybind.shoot.name = Schießen
@ -741,14 +741,14 @@ 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 gegen andere Spieler lokal.
mode.pvp.description = Kämpfe lokal gegen andere Spieler.
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.
mode.custom = Angepasste Regeln
rules.infiniteresources = Unbegrenzte Ressourcen
rules.reactorexplosions = Reactor Explosions
rules.wavetimer = Wellen Timer
rules.wavetimer = Wellen-Timer
rules.waves = Wellen
rules.attack = Angriff-Modus
rules.enemyCheat = Unbegrenzte Ressourcen für KI
@ -760,16 +760,16 @@ 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.respawntime = Respawn-Zeit:[LIGHT_GRAY] (Sek)
rules.wavespacing = Wellen-Abstand:[LIGHT_GRAY] (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.respawns = Max Respawns pro Welle
rules.limitedRespawns = Respawn-Limit
rules.dropzoneradius = Drop-Zonen-Radius:[LIGHT_GRAY] (Kacheln)
rules.respawns = Max. Wiederbelebungen pro Welle
rules.limitedRespawns = Wiederbelebungslimit
rules.title.waves = Wellen
rules.title.respawns = Respawns
rules.title.respawns = Wiederbelebungen
rules.title.resourcesbuilding = Ressourcen & Gebäude
rules.title.player = Spieler
rules.title.enemy = Gegner
@ -792,7 +792,7 @@ item.thorium.name = Thorium
item.silicon.name = Silizium
item.plastanium.name = Plastanium
item.phase-fabric.name = Phasengewebe
item.surge-alloy.name = Spannungsstoß-Legierung
item.surge-alloy.name = Spannungslegierung
item.spore-pod.name = Sporen-Pod
item.sand.name = Sand
item.blast-compound.name = Explosive Mischung
@ -802,7 +802,7 @@ item.scrap.name = Schrott
liquid.water.name = Wasser
liquid.slag.name = Lava
liquid.oil.name = Öl
liquid.cryofluid.name = Kryoflüssigkeit
liquid.cryofluid.name = Kühlflüssigkeit
mech.alpha-mech.name = Alpha
mech.alpha-mech.weapon = Schwerer Mehrlader
mech.alpha-mech.ability = Drohnenschwarm
@ -896,7 +896,7 @@ block.pine.name = Kiefer
block.white-tree-dead.name = Weißer toter Baum
block.white-tree.name = Weißer Baum
block.spore-cluster.name = Sporen-Cluster
block.metal-floor.name = Metallboden
block.metal-floor.name = Metallboden 1
block.metal-floor-2.name = Metallboden 2
block.metal-floor-3.name = Metallboden 3
block.metal-floor-5.name = Metallboden 5
@ -931,8 +931,8 @@ block.hail.name = Streuer
block.lancer.name = Lanzer
block.conveyor.name = Förderband
block.titanium-conveyor.name = Titan-Förderband
block.armored-conveyor.name = Gepanzertes-Förderband
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 = Gepanzertes Förderband
block.armored-conveyor.description = Bewegt Gegenstände genauso schnell wie das Titan-Förderband, ist aber besser gepanzert. Akzeptiert nur Verbindungen mit anderen Förderbändern.
block.junction.name = Kreuzung
block.router.name = Verteiler
block.distributor.name = Großer Verteiler
@ -966,13 +966,13 @@ block.pneumatic-drill.name = Pneumatischer Bohrer
block.laser-drill.name = Laser-Bohrer
block.water-extractor.name = Wasser-Extraktor
block.cultivator.name = Kultivierer
block.dart-mech-pad.name = Dart Mech-Pad
block.delta-mech-pad.name = Delta Mech-Pad
block.javelin-ship-pad.name = Javelin Luftschiff-Pad
block.trident-ship-pad.name = Dreizack Luftschiff-Pad
block.glaive-ship-pad.name = Glaive Luftschiff-Pad
block.omega-mech-pad.name = Omega Mech-Pad
block.tau-mech-pad.name = Tau Mech-Pad
block.dart-mech-pad.name = Dart-Mech-Pad
block.delta-mech-pad.name = Delta-Mech-Pad
block.javelin-ship-pad.name = Javelin-Luftschiff-Pad
block.trident-ship-pad.name = Dreizack-Luftschiff-Pad
block.glaive-ship-pad.name = Glaive-Luftschiff-Pad
block.omega-mech-pad.name = Omega-Mech-Pad
block.tau-mech-pad.name = Tau-Mech-Pad
block.conduit.name = Leitungsrohr
block.mechanical-pump.name = Mechanische Pumpe
block.item-source.name = Materialquelle
@ -987,25 +987,25 @@ block.wave.name = Welle
block.swarmer.name = Schwärmer
block.salvo.name = Salve
block.ripple.name = Zerstörer
block.phase-conveyor.name = Phasen-Transportband
block.bridge-conveyor.name = Brücken-Transportband
block.phase-conveyor.name = Phasen-Förderband
block.bridge-conveyor.name = Brücken-Förderband
block.plastanium-compressor.name = Plastanium-Verdichter
block.pyratite-mixer.name = Pyratit-Mixer
block.blast-mixer.name = Sprengmixer
block.solar-panel.name = Solarpanel
block.solar-panel-large.name = Großes Solarpanel
block.oil-extractor.name = Öl-Extraktor
block.command-center.name = Kommandozentrum
block.draug-factory.name = Draug Miner-Drohnenfactory
block.command-center.name = Kommandozentrale
block.draug-factory.name = Draug-Miner-Dronenfabrik
block.spirit-factory.name = Spirit-Drohnenfabrik
block.phantom-factory.name = Phantom-Drohnenfabrik
block.wraith-factory.name = Wraith Fighter-Fabrik
block.ghoul-factory.name = Ghoul Bomber-Fabrik
block.dagger-factory.name = Dagger Mech-Fabrik
block.crawler-factory.name = Crawler Mech-Fabrik
block.titan-factory.name = Titan Mech-Fabrik
block.fortress-factory.name = Fortress Mech-Fabrik
block.revenant-factory.name = Revenant Fighter-Fabrik
block.wraith-factory.name = Wraith-Fighter-Fabrik
block.ghoul-factory.name = Ghoul-Bomber-Fabrik
block.dagger-factory.name = Dagger-Mech-Fabrik
block.crawler-factory.name = Crawler-Mech-Fabrik
block.titan-factory.name = Titan-Mech-Fabrik
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
@ -1023,8 +1023,8 @@ block.thermal-generator.name = Thermischer Generator
block.alloy-smelter.name = Legierungsschmelze
block.mender.name = Reparateur
block.mend-projector.name = Reparaturprojektor
block.surge-wall.name = Spannungsstoß-Mauer
block.surge-wall-large.name = Große Spannungsstoß-Mauer
block.surge-wall.name = Spannungsmauer
block.surge-wall-large.name = Große Spannungsmauer
block.cyclone.name = Zyklon
block.fuse.name = Zünder
block.shock-mine.name = Schock-Mine
@ -1041,11 +1041,11 @@ team.blue.name = Blau
team.crux.name = red
team.sharded.name = orange
team.orange.name = Orange
team.derelict.name = derelict
team.derelict.name = Derelict
team.green.name = Grün
team.purple.name = Lila
unit.spirit.name = Spirit-Drohne
unit.draug.name = Draug Miner-Drone
unit.draug.name = Draug-Miner-Drone
unit.phantom.name = Phantom-Drohne
unit.dagger.name = Dagger
unit.crawler.name = Crawler
@ -1120,7 +1120,7 @@ unit.eruptor.description = Ein schwerer Mech, der Strukturen abbaut. Feuert eine
unit.wraith.description = Eine schneller Abfangjäger.
unit.ghoul.description = Ein schwerer Flächenbomber.
unit.revenant.description = Eine schwere, schwebende Raketengruppe.
block.message.description = Benutzt um Nachrichten mit Verbündeten auszutauschen.
block.message.description = Speichert eine Nachricht. Wird genutzt, um mit Verbündeten zu kommunizieren.
block.graphite-press.description = Komprimiert Kohlestücke zu reinen Graphitplatten.
block.multi-press.description = Eine aktualisierte Version der Graphitpresse. Setzt Wasser und Strom ein, um Kohle schnell und effizient zu verarbeiten.
block.silicon-smelter.description = Reduziert Sand mit hochreinem Kohlenstoff, um Silizium zu produzieren.
@ -1129,12 +1129,12 @@ block.plastanium-compressor.description = Produziert Plastanium aus Öl und Tita
block.phase-weaver.description = Produziert Phasengewebe aus radioaktivem Thorium und großen Mengen an Sand.
block.alloy-smelter.description = Verarbeitet Titan, Blei, Silizium und Kupfer zu einer Stromstoßlegierung.
block.cryofluidmixer.description = Verarbeitet Wasser mit Titan zu einer Kryoflüssigkeit, die viel effizienter kühlt.
block.blast-mixer.description = Verwendet Öl, um Pyratit in eine weniger enzündliche aber explosive Mischung umzuwandeln.
block.blast-mixer.description = Verwendet Sporen, um Pyratit in eine weniger enzündliche aber explosive Mischung umzuwandeln.
block.pyratite-mixer.description = Vermischt Kohle, Blei und Sand zu hochentzündlichem Pyratit.
block.melter.description = Erhitzt Stein auf extrem hohe Temperaturen, um Lava zu erhalten.
block.separator.description = Setzt Stein Wasserdruck aus, um verschiedene Mineralien im Stein freizulegen.
block.melter.description = Erhitzt Schrott auf extrem hohe Temperaturen, um Lava zu erhalten.
block.separator.description = Setzt Lava Wasserdruck aus, um verschiedene Mineralien freizulegen.
block.spore-press.description = Komprimiert Sporenhülsen zu Öl.
block.pulverizer.description = Zertrümmert Stein zu Sand. Nützlich, wenn kein natürlicher Sand verfügbar ist.
block.pulverizer.description = Zertrümmert Schrott zu Sand. Nützlich, wenn kein natürlicher Sand verfügbar ist.
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.
@ -1157,8 +1157,8 @@ block.surge-wall.description = Der stärkste Verteidigungsblock.\nHat eine klein
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.
block.door-large.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.\nBenötigt mehrere Kacheln.
block.mender.description = Repariert regelmäßig Blöcke in der Nähe. Hält die Abwehrkräfte zwischen den Wellen instand.\nVerwendet optional Silizium, um Reichweite und Effizienz zu steigern.
block.mend-projector.description = Heilt zyklisch Blöcke in seiner Umgebung.
block.mender.description = Repariert regelmäßig Blöcke in seiner Umgebung. Hält die Abwehrkräfte zwischen den Wellen instand.\nVerwendet optional Silizium, um Reichweite und Effizienz zu steigern.
block.mend-projector.description = Eine verbesserte Version des Reparateurs. Repariert regelmäßig Blöcke in seiner Umgebung.\nVerwendet optional Phasengewebe, um Reichweite und Effizienz zu steigern.
block.overdrive-projector.description = Erhöht die Geschwindigkeit von nahegelegenen Blöcken, wie Bohrer und Förderbänder.
block.force-projector.description = Erzeugt ein sechseckiges Kraftfeld um sich herum, das Blöcke und Einheiten vor Schaden schützt.
block.shock-mine.description = Beschädigt Gegner, die auf die Mine laufen. Für Gegener schwer zu sehen.
@ -1228,13 +1228,13 @@ block.ripple.description = Ein großer Artillerie-Geschützturm, der mehrere Sch
block.cyclone.description = Ein großer Schnellfeuer-Geschützturm.
block.spectre.description = Ein großer Geschützturm, der zwei starke Schüsse gleichzeitig abfeuert.
block.meltdown.description = Ein großer Geschützturm, der starke Strahlen mit großer Reichweite abfeuert.
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.command-center.description = Erteilt allen verbündeten Einheiten auf der Karte Bewegungsbefehle. \nBringt Einheiten zum Patrouillieren, Angreifen eines feindlichen Kerns oder Rückzug zur Fabrik/ zum Kern. Wenn es keinen feindlichen Kern gibt, patrouillieren die Einheiten bei einem Angriffsbefehl.
block.draug-factory.description = Produziert Draug-Mining-Drohnen.
block.spirit-factory.description = Produziert leichte Drohnen, die Erz abbauen und Blöcke reparieren können.
block.phantom-factory.description = Produziert erweiterte Drohnen, die deutlich effizienter sind als Spirit-Drohnen.
block.wraith-factory.description = Produziert schnelle Abfangjäger.
block.ghoul-factory.description = Produziert schwere Flächenbomber.
block.revenant-factory.description = Produziert schwere Raketen basierte Flugeinheiten.
block.revenant-factory.description = Produziert schwere Raketen-basierte Flugeinheiten.
block.dagger-factory.description = Produziert Standard-Bodeneinheiten.
block.crawler-factory.description = Produziert schnelle, selbstzerstörende Schwarmeinheiten.
block.titan-factory.description = Produziert fortgeschrittene, gepanzerte Bodeneinheiten.

View File

@ -3,7 +3,7 @@ credits = Tekijät
contributors = Kääntäjät ja avustajat
discord = Liity Mindustryn Discordiin!
link.discord.description = Mindustryn virallinen Discord-keskusteluhuone
link.reddit.description = Mindustry subreddit
link.reddit.description = Mindustryn alireddit
link.github.description = Pelin lähdekoodi
link.changelog.description = Lista päivityksien muutoksista
link.dev-builds.description = Epävakaat kehitysversiot
@ -21,15 +21,15 @@ gameover.pvp = [accent] {0}[] joukkue voittaa!
highscore = [accent]Uusi ennätys!
copied = Kopioitu.
load.sound = Ääni
load.map = Kartat
load.image = Kuvat
load.content = Sisältö
load.system = Systeemi
load.mod = Modit
load.scripts = Skriptit
load.sound = Ääniä
load.map = Karttoja
load.image = Kuvia
load.content = Sisältöä
load.system = Järjestelmää
load.mod = Modeja
load.scripts = Skriptejä
be.update = A new Bleeding Edge build is available:
be.update = Uusi kehitysversio on saatavilla:
be.update.confirm = Lataa se ja käynnistä peli uudelleen?
be.updating = Päivitetään...
be.ignore = Sivuuta
@ -37,20 +37,20 @@ be.noupdates = Ei päivityksiä saatavilla.
be.check = Tarkista päivityksiä
schematic = Kaavio
schematic.add = Tallenna Kaavio...
schematic.add = Tallenna kaavio...
schematics = Kaaviot
schematic.replace = Kaavio tällä nimellä on jo olemassa. Haluatko korvata sen?
schematic.import = Tuo Kaavio...
schematic.exportfile = Luo Tiedosto
schematic.importfile = Tuo Tiedosto
schematic.browseworkshop = Selaa Työpajaa
schematic.copy = Kopioi Leikepöydälle
schematic.copy.import = Tou Leikepöydälle
schematic.shareworkshop = Jaa työpajaan
schematic.import = Tuo kaavio...
schematic.exportfile = Vie tiedosto
schematic.importfile = Tuo tiedosto
schematic.browseworkshop = Selaa Workshoppia
schematic.copy = Kopioi leikepöydälle
schematic.copy.import = Tuo leikepöydältä
schematic.shareworkshop = Jaa Workshoppiin
schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Käännä Kaavio
schematic.saved = Kaavio tallennettu.
schematic.delete.confirm = Tämä kaavio poistetaan.
schematic.rename = Uudelleennimeä Kaavio
schematic.rename = Nimeä kaavio uudelleen
schematic.info = {0}x{1}, {2} palikkaa
stat.wave = Tasoja voitettu:[accent] {0}
@ -62,7 +62,7 @@ stat.delivered = Resursseja laukaistu:
stat.rank = Lopullinen arvosana: [accent]{0}
launcheditems = [accent]Laukaistut tavarat
launchinfo = [unlaunched][[LAUNCH] your core to obtain the items indicated in blue.
launchinfo = [unlaunched][[LAUKAISE] ytimesi saadaksesi sinisellä merkityt tavarat.
map.delete = Oletko varma että haluat poistaa kartan "[accent]{0}[]"?
level.highscore = Ennätys: [accent]{0}
level.select = Tason valinta
@ -82,12 +82,12 @@ position = Sijainti
close = Sulje
website = Verkkosivu
quit = Poistu
save.quit = Tallenna ja Poistu
save.quit = Tallenna ja poistu
maps = Kartat
maps.browse = Selaa Karttoja
maps.browse = Selaa karttoja
continue = Jatka
maps.none = [lightgray]Karttoja ei löytynyt!
invalid = Invalidi
invalid = Virheellinen
pickcolor = Valitse väri
preparingconfig = Preparing Config
preparingcontent = Preparing Content
@ -95,29 +95,29 @@ uploadingcontent = Uploading Content
uploadingpreviewfile = Uploading Preview File
committingchanges = Comitting Changes
done = Valmis
feature.unsupported = Sinun laitteesi ei tue tätä toimintoa.
feature.unsupported = Laitteesi ei tue tätä toimintoa.
mods.alphainfo = Pidä mielessä että modit ovat alpha-tilassa, ja[scarlet] ne voivat olla virheellisiä[].\nRaportoi kaikki virheet Mindustry GitHub-sivuille tai Discordiin.
mods.alpha = [accent](Alpha)
mods = Modit
mods.none = [LIGHT_GRAY]Modeja ei löytynyt!
mods.guide = Modaamisen opas
mods.guide = Modaamisopas
mods.report = Raportoi ohjelmistovirhe
mods.openfolder = Avaa Modikansio
mods.openfolder = Avaa modikansio
mod.enabled = [lightgray]Käytössä
mod.disabled = [scarlet]Epäkäytössä
mod.disable = Laita pois päältä
mod.delete.error = Modia ei pystynyt poistamaan. Tiedosto voi olla käytössä.
mod.requiresversion = [scarlet]Tarvitsee vähintää pelin version: [accent]{0}
mod.disabled = [scarlet]Pois käytöstä
mod.disable = Poista käytössä
mod.delete.error = Modia ei pystytty poistamaan. Tiedosto voi olla käytössä.
mod.requiresversion = [scarlet]Tarvitsee vähintään pelin version: [accent]{0}
mod.missingdependencies = [scarlet]Tarvitsee nämä modit: {0}
mod.erroredcontent = [scarlet]Sisältö Virheet
mod.erroredcontent = [scarlet]Sisältövirheet
mod.errors = Virheitä on tapahtunut pelin ladatessa.
mod.noerrorplay = [scarlet]Sinulla on virheellisiä modeja.[] Joko poista ne käytöstä tai korjaa virheet.
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 = Käytä
mod.requiresrestart = Peli suljetaan jotta muutokset voisivat toteutua.
mod.reloadrequired = [scarlet]Vaatii Uudelleenkäynnistystä
mod.import = Tuo Modi
mod.import = Tuo modi
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 = Tämä modi poistetaan.
@ -170,7 +170,7 @@ hosts.discovering.any = Etsitään Pelejä
server.refreshing = Päivitetään palvelimen tietoja
hosts.none = [lightgray]Paikallisia pelejä ei löytynyt!
host.invalid = [scarlet]Isäntään ei voitu yhdistää.
trace = Seuraa Pelaajaa
trace = Seuraa pelaajaa
trace.playername = Pelaajanimi: [accent]{0}
trace.ip = IP-osoite: [accent]{0}
trace.id = Uniikki tunniste: [accent]{0}
@ -188,8 +188,8 @@ server.outdated = [crimson]Vanhentunut palvelin![]
server.outdated.client = [crimson]Vanhentunut asiakasohjelma![]
server.version = [gray]v{0} {1}
server.custombuild = [yellow]Custom Build
confirmban = Oletko varma että haluat potkia tämän pelaajan?
confirmkick = Oletko varma että haluat poistaa tämän pelaajan?
confirmban = Oletko varma että haluat antaa porttikiellon tälle pelaajalle?
confirmkick = Oletko varma että haluat potkia tämän pelaajan?
confirmvotekick = Oletko varma että haluat äänestää tämän pelaajan potkituksi?
confirmunban = Oletko varma että haluat päästää tämän pelaajan takaisin?
confirmadmin = Oletko varma että haluat antaa pelaajalle hallinto-oikeuksia?
@ -208,32 +208,32 @@ server.port = Portti:
server.addressinuse = Address already in use!
server.invalidport = Invalid port number!
server.error = [crimson]Error hosting server: [accent]{0}
save.new = New Save
save.new = Uusi tallennus
save.overwrite = Are you sure you want to overwrite\nthis save slot?
overwrite = Overwrite
save.none = No saves found!
saveload = Tallennetaan...
savefail = Failed to save game!
savefail = Pelin tallentaminen epäonnistui!
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 = Tuo Tallennus
save.import = Tuo tallennus
save.newslot = Tallennuksen nimi:
save.rename = Nimeä uudelleen
save.rename.text = Uusi nimi:
selectslot = Valitse tallennus.
slot = [accent]Paikka {0}
editmessage = Edit Message
editmessage = Muokkaa viestiä
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 = <tyhjä>
on = Päällä
off = Pois
save.autosave = Automaattitallennus: {0}
save.map = Kartta: {0}
save.wave = Aalto {0}
save.wave = Taso {0}
save.mode = Gamemode: {0}
save.date = Viimeksi tallennettu: {0}
save.playtime = Peliaika: {0}
@ -308,15 +308,15 @@ editor.waves = Tasot:
editor.rules = Säännöt:
editor.generation = Generaatio:
editor.ingame = Muokka pelin sisällä
editor.publish.workshop = Julkaise työpajaan
editor.publish.workshop = Julkaise Workshoppiin
editor.newmap = Uusi kartta
workshop = Työpaja
workshop = Workshop
waves.title = Tasot
waves.remove = Poista
waves.never = <ei koskaan>
waves.every = every
waves.waves = wave(s)
waves.perspawn = per spawni
waves.perspawn = per syntymispiste
waves.to = to
waves.boss = Pomo
waves.preview = Esikatselu
@ -324,13 +324,13 @@ waves.edit = Muokkaa...
waves.copy = Kopioi leikepöydälle
waves.load = Lataa leikepöydältä
waves.invalid = Invalid waves in clipboard.
waves.copied = Aallot kopioitu.
waves.copied = Tasot kopioitu.
waves.none = No enemies defined.\nNote that empty wave layouts will automatically be replaced with the default layout.
editor.default = [lightgray]<Default>
details = Yksityiskohdat...
edit = Muokkaa...
editor.name = Nimi:
editor.spawn = Spawni yksikkö
editor.spawn = Luo yksikkö
editor.removeunit = Poista yksikkö
editor.teams = Joukkueet
editor.errorload = Virhe ladattaessa tiedostoa:\n[accent]{0}
@ -431,8 +431,8 @@ fps = FPS: {0}
ping = Ping: {0}ms
language.restart = Please restart your game for the language settings to take effect.
settings = Asetukset
tutorial = Tutoriaali
tutorial.retake = Uusita Tutoriaali
tutorial = Perehdytys
tutorial.retake = Pelaa perehdytys uudelleen
editor = Editori
mapeditor = Kartan Editori
@ -449,8 +449,8 @@ launch = < LAUNCH >
launch.title = Onnistunut laukaisu
launch.next = [lightgray]next opportunity at wave {0}
launch.unable2 = [scarlet]Unable to LAUNCH.[]
launch.confirm = Tämä laukaisee kaikki resourssit ytimestäsi.\nEt voi enää palata takaisin.
launch.skip.confirm = Jos ohitat nyt, voit laukaista vasta myöhemmissä tasoissa.
launch.confirm = Tämä laukaisee kaikki resurssit ytimestäsi.\nEt voi enää palata takaisin.
launch.skip.confirm = Jos ohitat nyt, voit laukaista vasta myöhemmillä tasoilla.
uncover = Paljasta
configure = Configure Loadout
bannedblocks = Kielletyt Palikat
@ -530,60 +530,60 @@ error.title = [crimson]An error has occured
error.crashtitle = An error has occured
blocks.input = Sisääntulo
blocks.output = Ulostulo
blocks.booster = Boostaa
blocks.booster = Tehostaja
block.unknown = [lightgray]???
blocks.powercapacity = Energiakapasiteetti
blocks.powershot = Energiaa/Ammus
blocks.damage = Vahinko
blocks.targetsair = Hyökkää Ilmaan
blocks.targetsground = Hyökkää Maahan
blocks.targetsair = Hyökkää ilmaan
blocks.targetsground = Hyökkää maahan
blocks.itemsmoved = Liikkumisnopeus
blocks.launchtime = Aika Laukaisujen Välillä
blocks.launchtime = Aika laukaisujen välillä
blocks.shootrange = Kantama
blocks.size = Koko
blocks.liquidcapacity = Neste Kapasiteetti
blocks.powerrange = Energia Kantama
blocks.powerconnections = Maksimi konnektio määrä
blocks.poweruse = Energian Käyttö
blocks.liquidcapacity = Nestekapasiteetti
blocks.powerrange = Energiakantama
blocks.powerconnections = Maksimimäärä yhdistyksiä
blocks.poweruse = Energian käyttö
blocks.powerdamage = Energia/Vahinko
blocks.itemcapacity = Tavara Kapasiteetti
blocks.basepowergeneration = Kanta Enegian Generointi
blocks.productiontime = Produktion Aika
blocks.repairtime = Kokonaisen Palikan Korjaus Aika
blocks.speedincrease = Nopeuden Kasvu
blocks.itemcapacity = Tavarakapasiteetti
blocks.basepowergeneration = Perus energiantuotto
blocks.productiontime = Tuotantoaika
blocks.repairtime = Kokonaisen palikan korjausaika
blocks.speedincrease = Nopeuden kasvu
blocks.range = Etäisyys
blocks.drilltier = Porattavat
blocks.drillspeed = Kanta Poran Nopeus
blocks.boosteffect = Boostaamisen Vaikutus
blocks.maxunits = Maksimi Määrä Yksikköjä
blocks.boosteffect = Tehostamisem vaikutus
blocks.maxunits = Maksimimäärä yksikköjä
blocks.health = Elämäpisteet
blocks.buildtime = Rakentamisen Aika
blocks.buildcost = Rakentamisen Hinta
blocks.buildtime = Rakentamisaika
blocks.buildcost = Rakentamishinta
blocks.inaccuracy = Epätarkkuus
blocks.shots = Ammusta
blocks.reload = Ammusta/Sekunnissa
blocks.reload = Ammusta/sekunnissa
blocks.ammo = Ammus
bar.drilltierreq = Parempi Pora Vaadittu
bar.drillspeed = Poran Nopeus: {0}/s
bar.pumpspeed = Pumpun Nopeus: {0}/s
bar.drilltierreq = Parempi pora vaadittu
bar.drillspeed = Poran nopeus: {0}/s
bar.pumpspeed = Pumpun nopeus: {0}/s
bar.efficiency = Tehokkuus: {0}%
bar.powerbalance = Energia: {0}/s
bar.powerstored = Säilöttynä: {0}/{1}
bar.poweramount = Energia: {0}
bar.poweroutput = Energian Ulostulo: {0}
bar.poweroutput = Energiantuotto: {0}
bar.items = Tavaroita: {0}
bar.capacity = Kapasiteetti: {0}
bar.liquid = Neste
bar.heat = Lämpö
bar.power = Energia
bar.progress = Rakennuksen Edistys
bar.progress = Rakennuksen edistys
bar.spawned = Yksikköjä: {0}/{1}
bar.input = Sisääntulo
bar.output = Ulostulo
bullet.damage = [stat]{0}[lightgray] Vahinko
bullet.splashdamage = [stat]{0}[lightgray] Alue vahinko ~[stat] {1}[lightgray] palikkaa
bullet.splashdamage = [stat]{0}[lightgray] Aluevahinko ~[stat] {1}[lightgray] palikkaa
bullet.incendiary = [stat]sytyttävä
bullet.homing = [stat]itseohjautuva
bullet.shock = [stat]shokki
@ -591,15 +591,15 @@ bullet.frag = [stat]sirpaloituva
bullet.knockback = [stat]{0}[lightgray] knockback
bullet.freezing = [stat]jäädyttävä
bullet.tarred = [stat]tervattu
bullet.multiplier = [stat]{0}[lightgray]x ammusten multiplikaatio
bullet.reload = [stat]{0}[lightgray]x ammunta nopeus
bullet.multiplier = [stat]{0}[lightgray]x ammusten kerroin
bullet.reload = [stat]{0}[lightgray]x ampumisnopeus
unit.blocks = palikat
unit.powersecond = energia yksikköä/sekunti
unit.liquidsecond = neste yksikköä/sekunti
unit.powersecond = energiayksikköä/sekunti
unit.liquidsecond = nesteyksikköä/sekunti
unit.itemssecond = esinettä/sekunti
unit.liquidunits = neste yksikköä
unit.powerunits = energia yksikköä
unit.liquidunits = nesteyksikköä
unit.powerunits = energiayksikköä
unit.degrees = astetta
unit.seconds = sekunttia
unit.persecond = /s
@ -614,25 +614,25 @@ category.liquids = Neste
category.items = Tavarat
category.crafting = Ulos/Sisääntulo
category.shooting = Ammunta
category.optional = Mahdolliset Lumoukset
category.optional = Mahdolliset parannukset
setting.landscape.name = Lukitse tasavaakaan
setting.shadows.name = Varjot
setting.blockreplace.name = Automaattisia Palikka Suosituksia
setting.linear.name = Lineararien Filteeraus
setting.linear.name = Lineaarinen suodatus
setting.hints.name = Vihjeet
setting.buildautopause.name = Automaattisest Pysäytä Rakentaessa
setting.animatedwater.name = Animoitu Vesi
setting.animatedshields.name = Animoitu Kilpi
setting.animatedwater.name = Animoitu vesi
setting.animatedshields.name = Animoidut kilvet
setting.antialias.name = Antialiaasi[lightgray] (vaatii uudelleenkäynnistyksen)[]
setting.indicators.name = Vihollis/Puolulais Indikaattorit
setting.autotarget.name = Automaatinen Tähtäys
setting.keyboard.name = Hiiri+Näppäimistö Kontrollit
setting.touchscreen.name = Kosketusnäyttö kontrollit
setting.keyboard.name = Hiiri+Näppäimistö -ohjaus
setting.touchscreen.name = Kosketusnäyttöohjaus
setting.fpscap.name = Maksimi FPS
setting.fpscap.none = Ei Mitään
setting.fpscap.text = {0} FPS
setting.uiscale.name = UI Koko[lightgray] (vaatii uudelleenkäynnistyksen)[]
setting.swapdiagonal.name = Aina Vino Korvaus
setting.swapdiagonal.name = Aina vino korvaus
setting.difficulty.training = Treeni
setting.difficulty.easy = Helppo
setting.difficulty.normal = Keskivaikea
@ -641,10 +641,10 @@ setting.difficulty.insane = Järjetön
setting.difficulty.name = Vaikeustaso:
setting.screenshake.name = Näytön keikkuminen
setting.effects.name = Naytön Efektit
setting.destroyedblocks.name = Näytä Tuhoutuneet Palikat
setting.destroyedblocks.name = Näytä tuhoutuneet palikat
setting.conveyorpathfinding.name = Conveyor Placement Pathfinding
setting.coreselect.name = Allow Schematic Cores
setting.sensitivity.name = Kontrollin Herkkyys
setting.sensitivity.name = Ohjauksen herkkyys
setting.saveinterval.name = Tallennuksen Aikaväli
setting.seconds = {0} Sekunttia
setting.blockselecttimeout.name = Block Select Timeout
@ -652,35 +652,35 @@ setting.milliseconds = {0} millisekunttia
setting.fullscreen.name = Fullscreen
setting.borderlesswindow.name = Borderless Window[lightgray] (vaatii uudelleenkäynnistyksen)
setting.fps.name = Näytä FPS
setting.blockselectkeys.name = Bäytä Palikan Selektio Kontrollit
setting.blockselectkeys.name = Näytä palikan valintaohjaimet
setting.vsync.name = VSync
setting.pixelate.name = Pixeloi[lightgray] (poistaa animaation käytöstä)
setting.minimap.name = Näytä Minimappi
setting.minimap.name = Näytä pienoiskartta
setting.position.name = Näytä pelaajan sijainti
setting.musicvol.name = Musiikin Äänenvoimakkuus
setting.ambientvol.name = Tausta Äänet
setting.mutemusic.name = Sulje Musiikki
setting.sfxvol.name = SFX Volyymi
setting.mutesound.name = Sulje Äänet
setting.musicvol.name = Musiikin äänenvoimakkuus
setting.ambientvol.name = Taustaäänet
setting.mutemusic.name = Mykistä musiikki
setting.sfxvol.name = SFX-voimakkuus
setting.mutesound.name = Mykistä äänet
setting.crashreport.name = Send Anonymous Crash Reports
setting.savecreate.name = Luo Automaattisesti Tallennukset
setting.savecreate.name = Luo tallenuksia automaattisesti
setting.publichost.name = Public Game Visibility
setting.chatopacity.name = Chatin Läpinäkymättömyys
setting.lasersopacity.name = Energia Laaserin Läpinäkymattämyys
setting.playerchat.name = Näytä Pelinsisäinen Keskustelu
setting.chatopacity.name = Keskustelun läpinäkymättömyys
setting.lasersopacity.name = Energia laserin läpinäkymättömyys
setting.playerchat.name = Näytä pelinsisäinen keskustelu
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 = Peruuta ja Poistu
uiscale.cancel = Peruuta ja poistu
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
category.multiplayer.name = Multiplayer
command.attack = Hyökkää
command.rally = Kutsu Koolle
command.retreat = Palaa
category.multiplayer.name = Moninpeli
command.attack = Hyökkäys
command.rally = Kokoontuminen
command.retreat = Perääntyminen
placement.blockselectkeys = \n[lightgray]Key: [{0},
keybind.clear_building.name = Clear Building
keybind.press = Press a key...
@ -711,7 +711,7 @@ 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 = Vaihda Fullscreen
keybind.fullscreen.name = Vaihda kokonäyttötilaan
keybind.select.name = Select/Shoot
keybind.diagonal_placement.name = Diagonal Placement
keybind.pick.name = Pick Block
@ -722,8 +722,8 @@ keybind.zoom.name = Zoom
keybind.menu.name = Menu
keybind.pause.name = Pause
keybind.pause_building.name = Pause/Resume Building
keybind.minimap.name = Minimappi
keybind.chat.name = Chatti
keybind.minimap.name = Pienoiskartta
keybind.chat.name = Keskustelu
keybind.player_list.name = Player list
keybind.console.name = Console
keybind.rotate.name = Rotate
@ -736,9 +736,9 @@ 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 = Normaali moodi. Rajoitettu määrä resursseja ja tasoilla on aika.\n[gray]Vaatii vihollis spawneja kartassa.
mode.survival.description = Normaali tila. Rajoitettu määrä resursseja ja tasoilla on aika.\n[gray]Vaatii vihollisten syntymispisteen kartassa.
mode.sandbox.name = Hiekkalaatikko
mode.sandbox.description = Ikuisesti resursseja ja tasoilla ei ole aikaa.
mode.sandbox.description = Ikuisesti resursseja ja tasoja ei ole ajastettu.
mode.editor.name = Editori
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.
@ -746,9 +746,9 @@ 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 = Ikuisesti Resursseja
rules.reactorexplosions = Reaktori Räjähdykset
rules.wavetimer = Tasojen Aikaraja
rules.infiniteresources = Ikuiset resurssit
rules.reactorexplosions = Reaktorien räjähtäminen
rules.wavetimer = Tasojen aikaraja
rules.waves = Tasot
rules.attack = Attack Mode
rules.enemyCheat = Infinite AI (Red Team) Resources
@ -791,11 +791,11 @@ item.titanium.name = Titaani
item.thorium.name = Torium
item.silicon.name = Pii
item.plastanium.name = Plastaniumi
item.phase-fabric.name = Kiihde Kuitu
item.surge-alloy.name = Taite Seos
item.spore-pod.name = Itiö Palko
item.phase-fabric.name = Kiihdekuitu
item.surge-alloy.name = Taiteseos
item.spore-pod.name = Itiöpalko
item.sand.name = Hiekka
item.blast-compound.name = Räjähde Yhdiste
item.blast-compound.name = Räjähdeyhdiste
item.pyratite.name = Pyratiitti
item.metaglass.name = Metallilasi
item.scrap.name = Romu
@ -824,7 +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]Säilöttävissä Ytimeen: {0}
item.corestorable = [lightgray]Säilöttävissä ytimeen: {0}
item.explosiveness = [lightgray]Räjädysmäisyys: {0}%
item.flammability = [lightgray]Flammability: {0}%
item.radioactivity = [lightgray]Radioactivity: {0}%
@ -832,12 +832,12 @@ unit.health = [lightgray]Elämäpisteet: {0}
unit.speed = [lightgray]Nopeus: {0}
mech.weapon = [lightgray]Ase: {0}
mech.health = [lightgray]Elämäpisteet: {0}
mech.itemcapacity = [lightgray]Tavara Kapasiteetti: {0}
mech.minespeed = [lightgray]Louhimis Nopeus: {0}%
mech.minepower = [lightgray]Louhimis Voima: {0}
mech.ability = [lightgray]Spesiaalikyky: {0}
mech.buildspeed = [lightgray]Rakennus Nopeus: {0}%
liquid.heatcapacity = [lightgray]Lämpö Kapasiteetti: {0}
mech.itemcapacity = [lightgray]Tavarakapasiteetti: {0}
mech.minespeed = [lightgray]Louhimisnopeus: {0}%
mech.minepower = [lightgray]Louhimisvoima: {0}
mech.ability = [lightgray]Erityiskyky: {0}
mech.buildspeed = [lightgray]Rakentamisnopeus: {0}%
liquid.heatcapacity = [lightgray]Lämpökapasiteetti: {0}
liquid.viscosity = [lightgray]Tahmeus: {0}
liquid.temperature = [lightgray]Lämpö: {0}
@ -865,21 +865,21 @@ block.scrap-wall-huge.name = Huge Scrap Wall
block.scrap-wall-gigantic.name = Gigantic Scrap Wall
block.thruster.name = Thruster
block.kiln.name = Kiln
block.graphite-press.name = Grafiitti Puristin
block.multi-press.name = Multi-Puristin
block.graphite-press.name = Grafiittipuristin
block.multi-press.name = Monipuristin
block.constructing = {0} [lightgray](Rakentamassa)
block.spawn.name = Vihollis Spawni
block.spawn.name = Vihollisten syntymispiste
block.core-shard.name = Ydin: Siru
block.core-foundation.name = Ydin: Pohjaus
block.core-nucleus.name = Ydin: Tuma
block.deepwater.name = Syvä Vesi
block.deepwater.name = Syvä vesi
block.water.name = Vesi
block.tainted-water.name = Pilattu Vesi
block.tainted-water.name = Pilaantunut vesi
block.darksand-tainted-water.name = Dark Sand Tainted Water
block.tar.name = Terva
block.stone.name = Kivi
block.sand.name = Hiekka
block.darksand.name = Tumma Hiekka
block.darksand.name = Tumma hiekka
block.ice.name = Jää
block.snow.name = Lumi
block.craters.name = Kraatterit

View File

@ -17,4 +17,4 @@ const cons = method => new Cons(){get: method}
const prov = method => new Prov(){get: method}
const newEffect = (lifetime, renderer) => new Effects.Effect(lifetime, new Effects.EffectRenderer({render: renderer}))
Call = Packages.mindustry.gen.Call
const Calls = Call //backwards compat
const Calls = Call //backwards compat

View File

@ -1,4 +1,4 @@
apply plugin: "java"
sourceCompatibility = 1.8
[compileJava, compileTestJava]*.options*.encoding = 'UTF-8'
sourceSets.main.java.srcDirs = ["src/", "$buildDir/generated/sources/annotationProcessor/java/main"]
sourceSets.main.java.srcDirs = ["src/", "$buildDir/generated/sources/annotationProcessor/java/main"]

View File

@ -58,7 +58,7 @@ public class Blocks implements ContentList{
//transport
conveyor, titaniumConveyor, armoredConveyor, distributor, junction, itemBridge, phaseConveyor, sorter, invertedSorter, router, overflowGate, underflowGate, massDriver,
//liquids
//liquid
mechanicalPump, rotaryPump, thermalPump, conduit, pulseConduit, platedConduit, liquidRouter, liquidTank, liquidJunction, bridgeConduit, phaseConduit,
//power

View File

@ -130,4 +130,4 @@ public interface Platform{
/** Stops forcing the app into landscape orientation.*/
default void endForceLandscape(){
}
}
}

View File

@ -337,4 +337,4 @@ public class MapEditor{
world.endMapLoad();
}
}
}
}

View File

@ -15,4 +15,4 @@ public enum UnitCommand{
public String localized(){
return localized;
}
}
}

View File

@ -100,6 +100,8 @@ public class MusicControl{
/** Plays and fades in a music track. This must be called every frame.
* If something is already playing, fades out that track and fades in this new music.*/
private void play(@Nullable Music music){
if(!shouldPlay()) return;
//update volume of current track
if(current != null){
current.setVolume(fade * Core.settings.getInt("musicvol") / 100f);
@ -143,7 +145,7 @@ public class MusicControl{
/** Plays a music track once and only once. If something is already playing, does nothing.*/
private void playOnce(Music music){
if(current != null || music == null) return; //do not interrupt already-playing tracks
if(current != null || music == null || !shouldPlay()) return; //do not interrupt already-playing tracks
//save last random track played to prevent duplicates
lastRandomPlayed = music;
@ -162,6 +164,10 @@ public class MusicControl{
current.play();
}
private boolean shouldPlay(){
return Core.settings.getInt("musicvol") > 0;
}
/** Fades out the current track, unless it has already been silenced. */
private void silence(){
play(null);

View File

@ -375,7 +375,7 @@ public class Schematics implements Loadable{
/** Loads a schematic from base64. May throw an exception. */
public static Schematic readBase64(String schematic){
try{
return read(new ByteArrayInputStream(Base64Coder.decode(schematic)));
return read(new ByteArrayInputStream(Base64Coder.decode(schematic.trim())));
}catch(IOException e){
throw new RuntimeException(e);
}

View File

@ -175,4 +175,4 @@ public class MapIO{
interface TileProvider{
Tile get(int x, int y);
}
}
}

View File

@ -501,4 +501,4 @@ public class Maps{
return provider.next(previous);
}
}
}
}

View File

@ -41,4 +41,4 @@ public class TerrainFilter extends GenerateFilter{
in.block = Blocks.air;
}
}
}
}

View File

@ -611,7 +611,7 @@ public class Mods implements Loadable{
Fi metaf = zip.child("mod.json").exists() ? zip.child("mod.json") : zip.child("mod.hjson").exists() ? zip.child("mod.hjson") : zip.child("plugin.json");
if(!metaf.exists()){
Log.warn("Mod {0} doesn't have a 'mod.json'/'plugin.json'/'mod.js' file, skipping.", sourceFile);
Log.warn("Mod {0} doesn't have a 'mod.json'/'mod.hjson'/'plugin.json' file, skipping.", sourceFile);
throw new IllegalArgumentException("No mod.json found.");
}

View File

@ -418,4 +418,4 @@ public class ArcNetProvider implements NetProvider{
}
}
}
}

View File

@ -65,4 +65,4 @@ public class Interpolator{
}
}
}
}

View File

@ -44,7 +44,7 @@ public class ItemsDisplay extends Table{
t.setText(state.is(State.menu) ? "$launcheditems" : "$launchinfo");
t.setChecked(col.isCollapsed());
((Image)t.getChildren().get(1)).setDrawable(col.isCollapsed() ? Icon.upOpen : Icon.downOpen);
}).padBottom(4).left().fillX().margin(12f);
}).padBottom(4).left().fillX().margin(12f).minWidth(200f);
c.row();
c.add(col);
});

View File

@ -91,4 +91,4 @@ public class CustomGameDialog extends FloatingDialog{
cont.add(pane).uniformX();
}
}
}

View File

@ -13,6 +13,7 @@ import arc.util.serialization.*;
import mindustry.*;
import mindustry.core.*;
import mindustry.gen.*;
import mindustry.graphics.*;
import mindustry.net.*;
import mindustry.net.Packets.*;
import mindustry.ui.*;
@ -25,6 +26,7 @@ public class JoinDialog extends FloatingDialog{
Server renaming;
Table local = new Table();
Table remote = new Table();
Table global = new Table();
Table hosts = new Table();
int totalHosts;
@ -80,15 +82,11 @@ public class JoinDialog extends FloatingDialog{
}
});
keyDown(KeyCode.F5, () -> {
refreshLocal();
refreshRemote();
});
keyDown(KeyCode.F5, this::refreshAll);
shown(() -> {
setup();
refreshLocal();
refreshRemote();
refreshAll();
if(!steam){
Core.app.post(() -> Core.settings.getBoolOnce("joininfo", () -> ui.showInfo("$join.info")));
@ -97,11 +95,16 @@ public class JoinDialog extends FloatingDialog{
onResize(() -> {
setup();
refreshLocal();
refreshRemote();
refreshAll();
});
}
void refreshAll(){
refreshLocal();
refreshRemote();
refreshGlobal();
}
void setupRemote(){
remote.clear();
@ -128,21 +131,12 @@ public class JoinDialog extends FloatingDialog{
inner.add(button.getLabel()).growX();
inner.addImageButton(Icon.upOpen, Styles.emptyi, () -> {
int index = servers.indexOf(server);
if(index > 0){
servers.remove(index);
servers.insert(0, server);
moveRemote(server, -1);
saveServers();
setupRemote();
for(Server other : servers){
if(other.lastHost != null){
setupServer(other, other.lastHost);
}else{
refreshServer(other);
}
}
}
}).margin(3f).padTop(6f).top().right();
inner.addImageButton(Icon.downOpen, Styles.emptyi, () -> {
moveRemote(server, +1);
}).margin(3f).pad(2).padTop(6f).top().right();
@ -172,6 +166,26 @@ public class JoinDialog extends FloatingDialog{
}
}
void moveRemote(Server server, int sign){
int index = servers.indexOf(server);
if(index + sign < 0) return;
if(index + sign > servers.size - 1) return;
servers.remove(index);
servers.insert(index + sign, server);
saveServers();
setupRemote();
for(Server other : servers){
if(other.lastHost != null){
setupServer(other, other.lastHost);
}else{
refreshServer(other);
}
}
}
void refreshRemote(){
for(Server server : servers){
refreshServer(server);
@ -232,9 +246,9 @@ public class JoinDialog extends FloatingDialog{
hosts.clear();
hosts.add(remote).growX();
hosts.row();
hosts.add(local).width(w);
section("$servers.local", local);
section("$servers.remote", remote);
section("$servers.global", global);
ScrollPane pane = new ScrollPane(hosts);
pane.setFadeScrollBars(false);
@ -289,6 +303,24 @@ public class JoinDialog extends FloatingDialog{
});
}
void section(String label, Table servers){
Collapser coll = new Collapser(servers, Core.settings.getBool("collapsed-" + label, false));
coll.setDuration(0.1f);
hosts.table(name -> {
name.add(label).pad(10).growX().left().color(Pal.accent);
name.addImageButton(Icon.downOpen, Styles.emptyi, () -> {
coll.toggle(false);
Core.settings.putSave("collapsed-" + label, coll.isCollapsed());
}).update(i -> i.getStyle().imageUp = (!coll.isCollapsed() ? Icon.upOpen : Icon.downOpen)).size(40f).right().padRight(10f);
}).growX();
hosts.row();
hosts.addImage().growX().pad(5).padLeft(10).padRight(10).height(3).color(Pal.accent);
hosts.row();
hosts.add(coll).width(targetWidth());
hosts.row();
}
void refreshLocal(){
totalHosts = 0;
@ -296,12 +328,17 @@ public class JoinDialog extends FloatingDialog{
local.background(null);
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);
}
void refreshGlobal(){
global.clear();
global.background(null);
for(String host : defaultServers){
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);
addGlobalHost(res);
}, e -> {});
}
}
@ -334,6 +371,18 @@ public class JoinDialog extends FloatingDialog{
buildServer(host, button);
}
void addGlobalHost(Host host){
global.background(null);
float w = targetWidth();
global.row();
TextButton button = global.addButton("", Styles.cleart, () -> safeConnect(host.address, host.port, host.version))
.width(w).pad(5f).get();
button.clearChildren();
buildServer(host, button);
}
public void connect(String ip, int port){
if(player.name().trim().isEmpty()){
ui.showInfo("$noname");
@ -428,4 +477,4 @@ public class JoinDialog extends FloatingDialog{
public Server(){
}
}
}
}

View File

@ -288,4 +288,4 @@ public class BranchTreeLayout implements TreeLayout{
public enum TreeAlignment{
center, towardsRoot, awayFromRoot
}
}
}

View File

@ -222,4 +222,4 @@ public class Floor extends Block{
return block.edges()[x][2 - y];
}
}
}

View File

@ -378,4 +378,4 @@ public class Conveyor extends Block implements Autotiler{
}
}
}
}
}

View File

@ -23,7 +23,6 @@ public class Junction extends Block{
super(name);
update = true;
solid = true;
instantTransfer = true;
group = BlockGroup.transportation;
unloadable = false;
entityType = JunctionEntity::new;

View File

@ -39,7 +39,6 @@ public class LiquidExtendingBridge extends ExtendingItemBridge{
}
if(entity.uptime >= 0.5f){
if(tryMoveLiquid(tile, other, false, entity.liquids().current()) > 0.1f){
entity.cycleSpeed = Mathf.lerpDelta(entity.cycleSpeed, 4f, 0.05f);
}else{

View File

@ -137,7 +137,7 @@ public class GenericCrafter extends Block{
if(outputItem != null && tile.entity.items().get(outputItem.item) >= itemCapacity){
return false;
}
return outputLiquid == null || !(tile.entity.liquids().get(outputLiquid.liquid) >= liquidCapacity);
return outputLiquid == null || !(tile.entity.liquids().get(outputLiquid.liquid) >= liquidCapacity - 0.001f);
}
@Override

View File

@ -18,4 +18,4 @@ public class FloorValue implements StatValue{
table.add(new Image(floor.icon(Cicon.small))).padRight(3);
table.add(floor.localizedName).padRight(3);
}
}
}

View File

@ -1 +1 @@
Mindustry
Mindustry

View File

@ -1,3 +1,3 @@
- Fixed incorrect attribution in credits; music was made by "A Drop A Day"
- Removed unneeded 3.5 upgrade dialog that sometimes showed up in main menu
- Added information dialog regarding v4 beta
- Added information dialog regarding v4 beta

View File

@ -1,4 +1,4 @@
- Fixed incorrect attribution in credits; music was made by "A Drop A Day"
- Removed unneeded 3.5 upgrade dialog that sometimes showed up in main menu
- Added information dialog regarding v4 beta
- Fixed Discord link
- Fixed Discord link

View File

@ -1 +1 @@
sound.
sound.

View File

@ -1 +1 @@
everything
everything

View File

@ -1 +1 @@
Fixed some minor sound/multiplayer issues
Fixed some minor sound/multiplayer issues

View File

@ -1 +1 @@
Bugfixes
Bugfixes

View File

@ -1 +1 @@
Added ambient sounds for machines.
Added ambient sounds for machines.

View File

@ -1,2 +1,2 @@
The first release of version 4.0; an update that has been in the works for over a year.
Extensive changes, including new gamemodes, customizable rules, a new editor, new graphics, new enemies, unit production, new progression, a campaign, and more. See the in-game changelog link for specific details of what has been added and removed over the past year.
Extensive changes, including new gamemodes, customizable rules, a new editor, new graphics, new enemies, unit production, new progression, a campaign, and more. See the in-game changelog link for specific details of what has been added and removed over the past year.

View File

@ -1,2 +1,2 @@
Fixed multiplayer not syncing positions and shots correctly on certain networks or situations.
Various other bugfixes.
Various other bugfixes.

View File

@ -2,4 +2,4 @@
- Fixed wave timer being extremely slow at high TPS with multithreading enabled
- Fixed scrolling on player menu causing the whole screen to pan
- Updated Polish translation
- Updated Russian translation with new text (Thanks to @Prosta4okua)
- Updated Russian translation with new text (Thanks to @Prosta4okua)

View File

@ -11,4 +11,4 @@ Feature include:
- Cross-platform multiplayer via local networks or dedicated servers
- Custom game rules: Change block costs, enemy stats, starting items, wave timing and more
- A powerful editor, with tools to randomly generate ores, terrain, decoration and apply symmetry to maps
- Customizable map wave layouts
- Customizable map wave layouts

View File

@ -1 +1 @@
A factory-based sandbox tower defense game.
A factory-based sandbox tower defense game.

View File

@ -1 +1 @@
A factory-based sandbox tower defense game.
A factory-based sandbox tower defense game.

View File

@ -1 +1 @@
Mindustry
Mindustry

View File

@ -1 +1 @@
Mindustry
Mindustry

View File

@ -0,0 +1 @@

View File

@ -2,4 +2,4 @@
- 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)
- Cambiamenti interni: il package ora è "mindustry" invece di "io.anuke.mindustry" (i plugin non funzioneranno)

View File

@ -11,4 +11,4 @@ Funzionalità:
- 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
- Ondate delle mappe completamente personalizzabili

View File

@ -1 +1 @@
Un gioco sandbox basato sulla produzione e sulla difesa.
Un gioco sandbox basato sulla produzione e sulla difesa.

View File

@ -1 +1 @@
Un gioco sandbox basato sulla produzione e sulla difesa.
Un gioco sandbox basato sulla produzione e sulla difesa.

View File

@ -1 +1 @@
Mindustry
Mindustry

View File

@ -0,0 +1 @@

View File

@ -11,4 +11,4 @@ Mindustryの特徴:
- ローカルネットワークや専用サーバーで、クロスプラットフォームのマルチプレイが可能
- カスタマイズ可能なゲーム: ブロックのコスト変更、敵のステータス、初期アイテム、ウェーブのタイミング など…
- 強力なエディター、鉱石をランダムに生成したり、地形、デコレーション、左右対称なマップも制作可能
- マップごとにウェーブの構成もカスタマイズ可能
- マップごとにウェーブの構成もカスタマイズ可能

View File

@ -1 +1 @@
工場ベースのサンドボックスタワーディフェンスゲーム。
工場ベースのサンドボックスタワーディフェンスゲーム。

View File

@ -1 +1 @@
Mindustry
Mindustry

View File

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

View File

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

View File

@ -1 +1 @@
Mindustry
Mindustry

View File

@ -2,4 +2,4 @@
- Foi adicionada regra de integridade do bloco
- Adicionado mais equipes internas para modos de jogo alternativos
- Adicionado recursos para melhorar a modificação do servidor
-Grande mudança interna: o pacote agora é "mindustry" em vez de "io.anuke.mindustry" (irá quebrar os plugins)
-Grande mudança interna: o pacote agora é "mindustry" em vez de "io.anuke.mindustry" (irá quebrar os plugins)

View File

@ -11,4 +11,4 @@ Recursos incluidos:
- Multijogador multiplataforma através de redes locais ou servidores dedicados
- Regras personalizadas do jogo: altere os custos de bloqueio, estatísticas do inimigo, itens iniciais, tempo das ondas e muito mais
- Um editor poderoso, com ferramentas para gerar aleatoriamente minérios, terrenos, decoração e aplicar simetria a mapas
- Layouts de rondas de mapa personalizáveis
- Layouts de rondas de mapa personalizáveis

View File

@ -1 +1 @@
Um jogo de defesa de torre de sandbox baseado em construção.
Um jogo de defesa de torre de sandbox baseado em construção.

View File

@ -1 +1 @@
Mindustry
Mindustry

View File

@ -12,4 +12,4 @@
- Кроссплатформенный мультиплеер с поддержкой как и локальных сетей, так и серверов
- Пользовательские настройки игры — изменяйте цену блоков, силу врагов, количество стартовых ресурсов, интервал между волнами и т.д.
- Редактор карт с бесчисленными возможностями, инструментами для случайной генерации руд, рельефа, декораций, а также для симметрии карт
- Настраиваемые раскладки волн для карт
- Настраиваемые раскладки волн для карт

View File

@ -1 +1 @@
Mindustry
Mindustry

View File

@ -1 +1 @@
Mindustry
Mindustry

View File

@ -1 +1 @@
Mindustry
Mindustry

View File

@ -113,4 +113,4 @@
"version": 1,
"author": "xcode"
}
}
}

View File

@ -3,4 +3,4 @@
"version": 1,
"author": "xcode"
}
}
}

View File

@ -1 +1 @@
java -jar server.jar
java -jar server.jar

View File

@ -1 +1 @@
java -jar server.jar
java -jar server.jar

View File

@ -82,4 +82,4 @@ public class ServerLauncher implements ApplicationListener{
Events.fire(new ServerLoadEvent());
}
}
}

View File

@ -2,4 +2,4 @@
{
"address": "mindustry.us.to:6568"
}
]
]

View File

@ -8,4 +8,4 @@ sourceSets{
srcDir "src/test/resources"
}
}
}
}

View File

@ -442,4 +442,4 @@ public class ApplicationTests{
tile.block().handleStack(item, 1, tile, unit);
assertEquals(capacity, tile.entity.items().get(item));
}
}
}

14
tools/run-newline Executable file
View File

@ -0,0 +1,14 @@
#!/usr/bin/env bash
# add newlines to all files
git ls-files -z | while IFS= read -rd '' f; do tail -c1 < "$f" | read -r _ || echo >> "$f"; done
# undo the changes in these
git checkout -- "*.png"
git checkout -- "*.msav"
git checkout -- "*.jar"
git checkout -- "*.ogg"
git checkout -- "*.ico"
git checkout -- "*.icns"
git checkout -- "*.ttf"
git checkout -- "*.glsl"