diff --git a/core/assets/bundles/bundle_de.properties b/core/assets/bundles/bundle_de.properties index ae1b4061ea..b294fe0a97 100644 --- a/core/assets/bundles/bundle_de.properties +++ b/core/assets/bundles/bundle_de.properties @@ -78,13 +78,12 @@ schematic.tagexists = Dieses Tag gibt es schon. stats = Statistiken stat.wave = Wellen besiegt:[accent] {0} +stat.unitsCreated = Einheiten erzeugt:[accent] {0} stat.enemiesDestroyed = Gegner zerstört:[accent] {0} stat.built = Blöcke gebaut:[accent] {0} stat.destroyed = Blöcke zerstört:[accent] {0} stat.deconstructed = Blöcke abgebaut:[accent] {0} -stat.delivered = Übertragene Ressourcen: stat.playtime = Spielzeit:[accent] {0} -stat.rank = Finaler Rang:[accent] {0} globalitems = [accent]Gesamtitems map.delete = Bist du sicher, dass du die Karte "[accent]{0}[]" löschen möchtest? @@ -94,6 +93,7 @@ level.mode = Spielmodus: coreattack = < Der Kern wird angegriffen! > nearpoint = [[ [scarlet]SOFORT DEN SPAWNPUNKT VERLASSEN[] ]\nVernichtung droht database = Kern-Datenbank +database.button = Datenbank savegame = Spiel speichern loadgame = Spiel laden joingame = Spiel beitreten @@ -169,6 +169,7 @@ launchcore = Kern starten filename = Dateiname: unlocked = Neuer Inhalt freigeschaltet! available = Neue Forschung möglich +unlock.incampaign = < Für Details in Kampagne freischalten > completed = [accent]Abgeschlossen techtree = Forschung research.legacy = [accent]5.0[] Forschungsdaten gefunden.\nMöchtest du [accent]diese Daten behalten[] oder [accent]sie löschen[] und neu anfangen (empfohlen)? @@ -215,6 +216,7 @@ hosts.none = [lightgray]Keine LAN-Spiele gefunden! host.invalid = [scarlet]Kann keine Verbindung zum Host herstellen. servers.local = Lokale Server +servers.local.steam = Offene Spiele & Lokale Server servers.remote = Andere Server servers.global = Community-Server @@ -316,7 +318,7 @@ 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]Das kann nicht rückgängig gemacht werden![]\n\nSobald der Import abgeschlossen ist, wird dein Spiel sofort beendet. quit.confirm = Willst du wirklich aufhören? loading = [accent]Wird geladen... -reloading = [accent]Lade Mods neu... +downloading = [accent]Herunterladen... saving = [accent]Speichere... respawn = [accent][[{0}][] um im Kern zu spawnen cancelbuilding = [accent][[{0}][] um den Plan zu leeren @@ -344,9 +346,9 @@ custom = Benutzerdefiniert builtin = Enthalten map.delete.confirm = Bist du sicher, dass du diese Karte löschen willst? Dies kann nicht rückgängig 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]orangen[] Kern zu dieser Karte im Editor hinzu. +map.nospawn = Diese Karte hat keine Kerne, in denen die Spieler beginnen können! Füge einen [#{0}]{1}[] Kern zu dieser Karte im Editor hinzu. map.nospawn.pvp = Diese Karte hat keine Kerne für die gegnerischen Spieler! Füge über den Editor [scarlet] nicht-orange[] Kerne zu dieser Karte hinzu. -map.nospawn.attack = Diese Karte hat keine gegnerischen Kerne, die Spieler angreifen können! Füge über den Editor [scarlet] rote[] Kerne zu dieser Karte hinzu. +map.nospawn.attack = Diese Karte hat keine gegnerischen Kerne, die Spieler angreifen können! Füge über den Editor a [#{0}]{1}[] Kerne zu dieser Karte hinzu. 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} @@ -361,6 +363,7 @@ publish.confirm = Willst du das wirklich veröffentlichen?\n\n[lightgray]Vergewi publish.error = Fehler beim Veröffentlichen des Objekts: {0} steam.error = Fehler beim Laden der Steam-Dienste.\nError: {0} +editor.cliffs = Wände zu Klippen editor.brush = Pinsel editor.openin = Öffne im Editor editor.oregen = Erze generieren @@ -376,6 +379,9 @@ editor.ingame = Im Spiel bearbeiten editor.publish.workshop = Im Workshop veröffentlichen editor.newmap = Neue Karte editor.center = Zur Mitte +editor.search = Karten durchsuchen... +editor.filters = Karten filtern +editor.showAll = Standard-Karten anzeigen workshop = Workshop waves.title = Wellen waves.remove = Entfernen @@ -384,6 +390,7 @@ waves.waves = Welle(n) waves.perspawn = pro Spawn waves.shields = Schilder pro Welle waves.to = bis +waves.max = maximale Einheiten waves.guardian = Boss waves.preview = Vorschau waves.edit = Bearbeiten... @@ -392,6 +399,13 @@ waves.load = Aus der Zwischenablage laden waves.invalid = Ungültige Wellen in der Zwischenablage. waves.copied = Wellen kopiert. waves.none = Keine Gegner definiert.\nInfo: Leere Wellenentwürfe werden automatisch mit dem Standard-Entwurf ersetzt. +waves.sort = Sortieren nach +waves.sort.reverse = Rückwärts sortieren +waves.sort.begin = Anfang +waves.sort.health = Lebenspunkte +waves.sort.type = Sorte +waves.units.hide = Alle verstecken +waves.units.show = Alle anzeigen wavemode.counts = Menge @@ -538,6 +552,7 @@ configure = Anfangsressourcen festlegen loadout = Anfangsressourcen resources = Ressourcen bannedblocks = Gesperrte Blöcke +bannedunits = Gesperrte Einheiten addall = Alle hinzufügen launch.from = Items werden von [accent]{0} []gestartet launch.destination = Ziel: {0} @@ -562,6 +577,8 @@ weather.sandstorm.name = Sandsturm weather.sporestorm.name = Sporensturm weather.fog.name = Nebel +sectorlist = Sektoren +sectorlist.attacked = {0} wird angegriffen sectors.unexplored = [lightgray]Unentdeckt sectors.resources = Ressourcen: sectors.production = Produktion: @@ -617,6 +634,8 @@ sector.biomassFacility.name = Biomass Synthesis Facility sector.windsweptIslands.name = Windswept Islands sector.extractionOutpost.name = Extraction Outpost sector.planetaryTerminal.name = Planetary Launch Terminal +sector.coastline.name = Küstenlinie +sector.navalFortress.name = Wasserfestung sector.groundZero.description = Der optimale Ort, um anzufangen. Schwache Gegner und weniger Ressourcen.\nSammele so viel Kupfer und Blei wie möglich.\nGeh weiter. sector.frozenForest.description = Auch hier, näher an den Bergen, sind die Sporen. Sogar die niedrigen Temperaturen können sie nicht zurückhalten.\n\nLerne, Strom zu verwenden. Baue Verbrennungsgeneratoren und Reparateure. @@ -644,10 +663,12 @@ status.sapped.name = Schwächend status.electrified.name = Elektrisch status.spore-slowed.name = Sporen-verlangsamt status.tarred.name = Teerend +status.overdrive.name = Overdrive status.overclock.name = Übertaktend status.shocked.name = Schockend status.blasted.name = Sprengend status.unmoving.name = Unbeweglich +status.boss.name = Boss settings.language = Sprache settings.data = Spieldaten @@ -875,6 +896,7 @@ setting.seconds = {0} Sekunden setting.milliseconds = {0} Millisekunden setting.fullscreen.name = Vollbild setting.borderlesswindow.name = Randloses Fenster +setting.borderlesswindow.name.windows = Randloses Vollbild setting.borderlesswindow.description = Neustart vielleicht erforderlich. setting.fps.name = FPS anzeigen setting.smoothcamera.name = Sanfte Kamerabewegungen @@ -998,6 +1020,7 @@ rules.wavetimer = Wellen-Timer rules.waves = Wellen rules.attack = Angriff-Modus rules.buildai = KI kann bauen +rules.aitier = KI Stärke rules.cleanupdeadteams = Blöcke von erorberten Teams zerstören (PvP) rules.corecapture = Kern nach Zerstörung einnehmen rules.polygoncoreprotection = Polygonaler Kernschutz @@ -1017,12 +1040,15 @@ rules.deconstructrefundmultiplier = Abbau Ressourcen-Rückerstattung rules.waitForWaveToEnd = Warten bis Welle endet rules.dropzoneradius = Drop-Zonen-Radius:[lightgray] (Kacheln) rules.unitammo = Einheiten benötigen Munition +rules.enemyteam = Gegnerteam +rules.playerteam = Spielerteam rules.title.waves = Wellen rules.title.resourcesbuilding = Ressourcen & Blöcke rules.title.enemy = Gegner rules.title.unit = Einheiten rules.title.experimental = Experimentell rules.title.environment = Umgebung +rules.title.teams = Teams rules.lighting = Blitze rules.enemyLights = Gegnerisches Licht rules.fire = Feuer @@ -1101,13 +1127,13 @@ unit.reign.name = Reign unit.vela.name = Vela unit.corvus.name = Korvus -block.resupply-point.name = Munitionsvorrat block.parallax.name = Parallax block.cliff.name = Klippe block.sand-boulder.name = Sandbrocken block.basalt-boulder.name = Basaltbrocken block.grass.name = Gras block.molten-slag.name = Schlacke +block.pooled-cryofluid.name = Cryoflüssigkeit block.space.name = Weltall block.salt.name = Salz block.salt-wall.name = Salzwand @@ -1141,6 +1167,7 @@ block.core-nucleus.name = Kern: Nukleus block.deep-water.name = Tiefes Wasser block.shallow-water.name = Wasser block.tainted-water.name = Dreckiges Wasser +block.deep-tainted-water.name = Tiefes dreckiges Wasser block.darksand-tainted-water.name = Dreckiges Wasser (Dunkler Sand) block.tar.name = Teer block.stone.name = Stein @@ -1352,6 +1379,7 @@ hint.placeTurret = Platziere \uf861 [accent]Geschütze[], um deine Basis vor Geg hint.breaking = Benutze [accent]Rechtsklick[] und bewege deine Maus, um zu zerstören. hint.breaking.mobile = Aktiviere den \ue817 [accent]Hammer[] unten rechts und tippe, um Blöcke zu zerstören.\n\nHalte deinen Finger auf dem Bildschirm, um eine Fläche auszuwählen. hint.blockInfo = Genauere Blockinformationen können im [accent]Baumenü[] rechts beim [accent][[?][]-Symbol gefunden werden. +hint.derelict = [accent]Derelikte[] Blöcke sind kaputte Teile alter Basen, die nicht mehr funktionieren.\n\nSie können für Ressourcen [accent]abgebaut[] werden. hint.research = Nehme den \ue875 [accent]Forschen[]-Knopf um neue Technologien zu erforschen. hint.research.mobile = Nehme den \ue875 [accent]Forschen[]-Knopf im \ue88c [accent]Menü[], um neue Technologien zu erforschen. hint.unitControl = Halte [accent][[L-STRG][] und [accent]klicke[], um alliierte Einheiten oder Geschütze zu steuern. @@ -1373,6 +1401,7 @@ hint.generator = \uf879 [accent]Verbrennungsgeneratoren[] verbrennen Kohle und hint.guardian = [accent]Boss[]-Einheiten sind gepanzert. Schwache Munition wie [accent]Kupfer[] und [accent]Blei[] sind [scarlet]nicht effektiv[].\n\nBenutze bessere Geschütze oder \uf835 [accent]Graphit[] als \uf861Duo-/\uf859Salvenmunition um einen Boss zu besiegen. hint.coreUpgrade = Kerne können aufgerüstet werden, indem man [accent]bessere Kerne über sie platziert[].\n\nPlatziere einen  [accent]Fundament[]-Kern über einen  [accent]Scherben[]-Kern. Stelle sicher, dass ausreichend Platz verfügbar ist. hint.presetLaunch = Zu grauen [accent]Sektoren[] wie dem [accent]Frozen Forest[] kann man von überall aus hin starten. Es ist nicht nötig, benachbarte Sektoren zu erobern.\n\n[accent]Nummerierte Sektoren[] wie dieser hier sind [accent]optional[]. +hint.presetDifficulty = Dieser Sektor hat eine [scarlet]hohe Gefahrenstufe[].\nOhne richtige Technologie und Vorbereitung ist es [accent]nicht empfohlen[], zu diesem Sektor zu starten. hint.coreIncinerate = Wenn dem Kern Materialien zugeführt werden, für die er keinen Platz mehr hat, werden diese [accent]verbrannt[]. hint.coopCampaign = Wenn du die [accent]Mehrspielerkampagne[] spielst, werden produzierte Items [accent]zu deinen lokalen Sektoren[] geschickt.\n\nNeuen Erforschungen vom Host werden auch übertragen. @@ -1403,7 +1432,7 @@ liquid.slag.description = Kann in Trennern verfeinert oder als Waffe gegen Gegne liquid.oil.description = Wird in fortgeschrittener Materialgewinnung und als brennende Munition verwendet. liquid.cryofluid.description = Wird als Kühlung in Geschützen, Fabriken oder Reaktoren verwendet. -block.resupply-point.description = Füllt Einheiten in der Nähe mit Kupfermunition wieder auf. Nicht mit Einheiten kompatibel, die Strom benötigen. +block.derelict =  [lightgray]Derelikt block.armored-conveyor.description = Bewegt Materialien voran. Materialien können von der Seite nicht auf das Förderband. block.illuminator.description = Eine Lichtquelle. block.message.description = Speichert eine Nachricht, die genutzt wird, um mit Verbündeten zu kommunizieren. @@ -1429,6 +1458,8 @@ block.item-source.description = Produziert unendlich viele Gegenstände. Nur im block.item-void.description = Zerstört Materialien, die hereingegeben werden, ohne Strom zu verbrauchen. Nur im Sandkasten-Modus verfügbar. block.liquid-source.description = Produziert unendlich Flüssigkeiten. Nur im Sandkasten-Modus verfügbar. block.liquid-void.description = Entfernt jegliche Flüssigkeiten. Nur im Sandkasten-Modus verfügbar. +block.payload-source.description = Produziert unendlich Einheiten. Nur im Sandkasten-Modus verfügbar. +block.payload-void.description = Entfernt jegliche Einheiten. Nur im Sandkasten-Modus verfügbar. block.copper-wall.description = Beschützt Blöcke vor Gegnern. block.copper-wall-large.description = Beschützt Blöcke vor Gegnern. block.titanium-wall.description = Beschützt Blöcke vor Gegnern. @@ -1583,7 +1614,7 @@ unit.omura.description = Schießt eine Railgun mit hoher Reichweite, um Gegner z unit.alpha.description = Beschützt den Scherbenkern vor Feinden. Baut Blöcke. unit.beta.description = Beschützt den Fundamentkern vor Feinden. Baut Blöcke. unit.gamma.description = Beschützt den Nukleuskern vor Feinden. Baut Blöcke. -unit.retusa.description = Platziert Minen und heilt verbündete Einheiten. +unit.retusa.description = Schießt zielsuchende Torpedos auf Gegner und heilt verbündete Einheiten. unit.oxynoe.description = Schießt Block-heilendes Feuer auf Gegner und zerstört gegnerische Projektile. unit.cyerce.description = Schießt zielsuchende Cluster-Raketen auf Gegner und heilt verbündete Einheiten. unit.aegires.description = Schockt alle gegnerische Einheiten und Blöcke, die das Energiefeld betreten. Heilt alle verbündete. @@ -1739,4 +1770,4 @@ lenum.mine = Erz von einer Position abbauen. lenum.build = Einen Block bauen. lenum.getblock = Gibt den Blocktyp an den Koordinaten zurück.\nEinheiten müssen nah genug dran sein.\nFeste nicht-Blöcke sind [accent]@solid[]. lenum.within = Prüft, ob eine Einheit in einem Radius um einen Punkt ist. -lenum.boost = Aktiviert / deaktiviert den Boost. +lenum.boost = Aktiviert / deaktiviert den Boost. \ No newline at end of file diff --git a/core/assets/bundles/bundle_es.properties b/core/assets/bundles/bundle_es.properties index 35e6d20c08..e5a1ecbe65 100644 --- a/core/assets/bundles/bundle_es.properties +++ b/core/assets/bundles/bundle_es.properties @@ -379,6 +379,13 @@ editor.ingame = Editar dentro del juego editor.publish.workshop = Publicar en el Steam Workshop editor.newmap = Nuevo Mapa editor.center = Centrar +editor.search = Buscar mapas... +editor.filters = Filtrar Mapas +editor.filters.mode = Modos de juego: +editor.filters.type = Tipo de mapa: +editor.filters.search = Buscar en: +editor.filters.author = Autor +editor.filters.description = Descripción workshop = Steam Workshop waves.title = Oleadas waves.remove = Borrar @@ -412,6 +419,7 @@ wavemode.health = por salud editor.default = [lightgray] details = Detalles... edit = Editar... +variables = Variables editor.name = Nombre: editor.spawn = Aparecer unidad editor.removeunit = Borrar Unidad @@ -1291,6 +1299,7 @@ block.plated-conduit.name = Conducto Acorazado block.phase-conduit.name = Conducto de Fase block.liquid-router.name = Enrutador de Líquidos block.liquid-tank.name = Tanque de Líquidos +block.liquid-container.name = Contenedor de Líquidos block.liquid-junction.name = Cruce de Líquidos block.bridge-conduit.name = Conducto Puente block.rotary-pump.name = Bomba Rotatoria @@ -1337,13 +1346,19 @@ block.disassembler.name = Desensamblador block.silicon-crucible.name = Crisol de silicio block.overdrive-dome.name = Campo de Aceleración block.interplanetary-accelerator.name = Acelerador Interplanetario -#experimental, puede ser eliminado -block.block-forge.name = Forja de Carga -block.block-loader.name = Cargador de Carga -block.block-unloader.name = Descargador de Carga - +block.constructor.name = Constructor +block.constructor.description = Construye estructuras de hasta un tamaño de 2x2. +block.large-constructor.name = Constructor grande +block.large-constructor.description = Construye estructuras de hasta un tamaño de 4x4. +block.deconstructor.name = Deconstructor +block.deconstructor.description = Deconstruye estructuras y unidades, devuelve el 100% de su costo original. +block.payload-loader.name = Cargador de carga útil +block.payload-loader.description = Carga objetos y líquidos en los bloques. +block.payload-unloader.name = Descargador de carga útil +block.payload-unloader.description = Descarga objetos y líquidos de los bloques. block.switch.name = Interruptor -block.micro-processor.name = Micro Processador +block.micro-processor.name = Micro Procesador + block.logic-processor.name = Procesador lógico block.hyper-processor.name = Hiperprocesador block.logic-display.name = Pantalla lógica @@ -1496,6 +1511,7 @@ block.conduit.description = Mueve líquidos hacia delante. Se usa junto con bomb block.pulse-conduit.description = Transporta líquidos rápidamente y almacena más que los conductos estándar. block.plated-conduit.description = Transporta líquidos rápidamente pero no acepta líquidos por los lados. Resiste más ante fugas, por lo que no gotea. block.liquid-router.description = Acepta líquidos de una dirección y los reparte en hasta 3 direcciones equitativamente. También puede almacenar cierta capacidad de líquido. +block-liquid-container.description = Almacena una cantidad considerable de líquidos. Lo devuelve en todas las direcciones de salida válidas, como un enrutador de líquidos. block.liquid-tank.description = Almacena una gran cantidad de líquidos. Lo devuelve en todas direcciones de salida válidas, como un enrutador de líquidos. block.liquid-junction.description = Actúa como un puente para dos conductos que se cruzan. block.bridge-conduit.description = Permite transportar líquidos sobre cualquier terreno o estructura. diff --git a/core/assets/bundles/bundle_fr.properties b/core/assets/bundles/bundle_fr.properties index f9f694b71a..894d9fa228 100644 --- a/core/assets/bundles/bundle_fr.properties +++ b/core/assets/bundles/bundle_fr.properties @@ -288,6 +288,7 @@ save.corrupted = Fichier de sauvegarde corrompu ou invalide ! empty = on = Activé off = Désactivé +save.search = Recherche de parties sauvegardées... save.autosave = Sauvegarde automatique : {0} save.map = Carte : {0} save.wave = Vague {0} @@ -381,7 +382,11 @@ editor.newmap = Nouvelle carte editor.center = Centrer editor.search = Recherche de cartes... editor.filters = Filtrer les cartes -editor.showAll = Afficher les cartes par défaut +editor.filters.mode = Modes de jeu : +editor.filters.type = Type de carte : +editor.filters.search = Rechercher dans : +editor.filters.author = Auteur +editor.filters.description = Description workshop = Steam Workshop waves.title = Vagues waves.remove = Supprimer diff --git a/core/assets/bundles/bundle_in_ID.properties b/core/assets/bundles/bundle_in_ID.properties index 31f14f2df7..797f5f48f3 100644 --- a/core/assets/bundles/bundle_in_ID.properties +++ b/core/assets/bundles/bundle_in_ID.properties @@ -78,13 +78,12 @@ schematic.tagexists = Tanda ini sudah ada. stats = Statistik stat.wave = Gelombang Terkalahkan:[accent] {0} +stat.unitsCreated = Unit Terbentuk:[accent] {0} stat.enemiesDestroyed = Musuh Terhancurkan:[accent] {0} stat.built = Jumlah Blok yang Dibangun:[accent] {0} stat.destroyed = Jumlah Blok Dihancurkan Musuh:[accent] {0} stat.deconstructed = Jumlah Blok Dihancurkan Pemain:[accent] {0} -stat.delivered = Sumber Daya yang Diluncurkan: stat.playtime = Waktu Bermain:[accent] {0} -stat.rank = Nilai Akhir: [accent]{0} globalitems = [accent]Bahan Keseluruhan map.delete = Apakah Anda yakin ingin menghapus peta "[accent]{0}[]"? @@ -94,6 +93,7 @@ level.mode = Mode Permainan: coreattack = < Inti sedang diserang! > nearpoint = [[ [scarlet]TINGGALKAN TITIK JATUH SEGERA[] ]\npenghancuran akan terjadi database = Basis Data Inti +database.button = Basis Data savegame = Simpan Permainan loadgame = Muat Permainan joingame = Bermain Bersama @@ -169,6 +169,7 @@ launchcore = Luncurkan Inti filename = Nama File: unlocked = Konten baru terbuka! available = Penelitian baru tersedia! +unlock.incampaign = < Buka dalam kampanye untuk detail lebih lanjut > completed = [accent]Terselesaikan techtree = Cabang Teknologi research.legacy = Data penelitian [accent]5.0[] ditemukan.\nApakah kamu ingin [accent]memuat data ini[], atau [accent]mengabaikannya[] dan memulai ulang penelitian di kampanye terbaru (disarankan)? @@ -287,6 +288,7 @@ save.corrupted = [accent]File simpanan rusak atau tidak sah!\nJika Anda baru saj empty = on = Aktif off = Nonaktif +save.search = Cari permainan tersimpan... save.autosave = Simpan otomatis: {0} save.map = Peta: {0} save.wave = Gelombang {0} @@ -362,6 +364,7 @@ publish.confirm = Apakah Anda yakin untuk menerbitkan item ini?\n\n[lightgray]Pa publish.error = Terjadi kesalahan saat menerbitkan item: {0} steam.error = Gagal untuk menjalankan layanan Steam.\nKesalahan: {0} +editor.cliffs = Dinding Ke Jurang editor.brush = Kuas editor.openin = Buka di Penyunting editor.oregen = Generasi Sumber Daya @@ -377,6 +380,13 @@ editor.ingame = Sunting dalam Permainan editor.publish.workshop = Terbitkan di Workshop editor.newmap = Peta Baru editor.center = Pusat +editor.search = Cari peta... +editor.filters = Filter Peta +editor.filters.mode = Mode Permainan: +editor.filters.type = Tipe Peta: +editor.filters.search = Cari Dalam: +editor.filters.author = Pembuat +editor.filters.description = Deskripsi workshop = Workshop waves.title = Gelombang waves.remove = Hapus @@ -385,6 +395,7 @@ waves.waves = gelombang waves.perspawn = per muncul waves.shields = perisai/gelombang waves.to = sampai +waves.max = unit maks waves.guardian = Penjaga waves.preview = Pratinjau waves.edit = Sunting... @@ -393,6 +404,13 @@ waves.load = Tempel dari Papan klip waves.invalid = Gelombang tidak valid di papan klip. waves.copied = Gelombang tersalin. waves.none = Tidak ada musuh yang didefinisikan.\nIngat bahwa susunan gelombang yang kosong akan diubah menjadi susunan gelombang standar secara otomatis. +waves.sort = Urut Berdasarkan +waves.sort.reverse = Urut Balik +waves.sort.begin = Mulai +waves.sort.health = Darah +waves.sort.type = Tipe +waves.units.hide = Sembunyikan Semua +waves.units.show = Lihat Semua #memang sengaja diberi huruf kecil wavemode.counts = jumlah @@ -402,6 +420,7 @@ wavemode.health = darah editor.default = [lightgray] details = Detail... edit = Sunting... +variables = Vars editor.name = Nama: editor.spawn = Munculkan Unit editor.removeunit = Hapus Unit @@ -538,7 +557,8 @@ configure = Konfigurasi Muatan loadout = Muatan resources = Sumber Daya -bannedblocks = Balok yang dilarang +bannedblocks = Balok yang Dilarang +bannedunits = Unit yang Dilarang addall = Tambah Semua launch.from = Meluncurkan Dari: [accent]{0} launch.destination = Destinasi: {0} @@ -563,6 +583,8 @@ weather.sandstorm.name = Badai Pasir weather.sporestorm.name = Badai Spora weather.fog.name = Kabut +sectorlist = Sektor +sectorlist.attacked = {0} sedang diserang sectors.unexplored = [lightgray]Belum Ditelusuri sectors.resources = Sumber Daya: sectors.production = Produksi: @@ -618,6 +640,8 @@ sector.biomassFacility.name = Pabrik Sintesis Biomassa sector.windsweptIslands.name = Pulau Bersemilir sector.extractionOutpost.name = Pos Ekstraksi Terdepan sector.planetaryTerminal.name = Pusat Peluncuran Planet +sector.coastline.name = Tepi Pantai +sector.navalFortress.name = Benteng Laut sector.groundZero.description = Lokasi yang optimal untuk bermain satu kali lagi. Sangat sedikit musuh. Beberapa sumber daya dapat dikumpulkan.\nKumpulkan timah dan tembaga sebanyak yang kamu bisa.\nMulai dari sini. sector.frozenForest.description = Disini, dekat dengan gunung, spora sudah menyebar. Suhu dingin tidak dapat menahannya.\n\nHasilkan listrik. Bangun generator pembakar. Pelajari cara menggunakan mender. @@ -645,10 +669,12 @@ status.sapped.name = Melemahkan status.electrified.name = Dialiri Listrik status.spore-slowed.name = Spora Melambat status.tarred.name = Berminyak +status.overdrive.name = Dipercepat status.overclock.name = Melebihi Batas status.shocked.name = Mengkejut status.blasted.name = Meledak status.unmoving.name = Terdiam +status.boss.name = Guardian settings.language = Bahasa settings.data = Data Game @@ -875,7 +901,8 @@ setting.saveinterval.name = Jarak Menyimpan setting.seconds = {0} detik setting.milliseconds = {0} milidetik setting.fullscreen.name = Layar Penuh -setting.borderlesswindow.name = Jendela tak Berbatas[lightgray] +setting.borderlesswindow.name = Jendela tak Berbatas +setting.borderlesswindow.name.windows = Layar Penuh tak Berbatas setting.borderlesswindow.description = Mulai ulang mungkin diperlukan untuk menerapkan perubahan. setting.fps.name = Tunjukkan FPS setting.smoothcamera.name = Kamera Halus @@ -999,10 +1026,11 @@ rules.wavetimer = Pengaturan Waktu Gelombang rules.waves = Gelombang rules.attack = Mode Penyerangan rules.buildai = Bangunan A.I. +rules.aitier = Tingkatan A.I. rules.cleanupdeadteams = Bersihkan Bangunan Tim yang Kalah (PvP) rules.corecapture = Tangkap Inti Saat Kehancuran rules.polygoncoreprotection = Poligon Pelindung Inti -rules.enemyCheat = Sumber Daya A.I. Musuh (Tim Merah) Tak Terbatas +rules.enemyCheat = Sumber Daya A.I. (Tim Merah) Tak Terbatas rules.blockhealthmultiplier = Penggandaan Darah Blok rules.blockdamagemultiplier = Penggandaan Kekuatan Blok rules.unitbuildspeedmultiplier = Penggandaan Kecepatan Munculnya Unit @@ -1018,12 +1046,15 @@ rules.deconstructrefundmultiplier = Penggandaan Kembalinya Bahan Bangunan yang D rules.waitForWaveToEnd = Gelombang Menunggu Musuh rules.dropzoneradius = Radius Titik Muncul:[lightgray] (Blok) rules.unitammo = Unit Membutuhkan Amunisi +rules.enemyteam = Tim Musuh +rules.playerteam = Tim Pemain rules.title.waves = Gelombang rules.title.resourcesbuilding = Sumber Daya & Bangunan rules.title.enemy = Musuh rules.title.unit = Unit rules.title.experimental = Eksperimental rules.title.environment = Lingkungan +rules.title.teams = Tim rules.lighting = Penerangan rules.enemyLights = Sinar dari Musuh rules.fire = Api @@ -1102,13 +1133,13 @@ unit.reign.name = Reign unit.vela.name = Vela unit.corvus.name = Corvus -block.resupply-point.name = Titik Pemasok Ulang block.parallax.name = Parallax block.cliff.name = Cliff block.sand-boulder.name = Batu Pasir Besar block.basalt-boulder.name = Batu Basal Besar block.grass.name = Rumput block.molten-slag.name = Lahar +block.pooled-cryofluid.name = Cairan Dingin block.space.name = Luar Angkasa block.salt.name = Garam block.salt-wall.name = Bukit Garam @@ -1142,6 +1173,7 @@ block.core-nucleus.name = Inti: Nukleus block.deep-water.name = Air Dalam block.shallow-water.name = Air block.tainted-water.name = Air Ternoda +block.deep-tainted-water.name = Air Dalam Ternoda block.darksand-tainted-water.name = Air Ternodai Pasir Hitam block.tar.name = Minyak Mentah block.stone.name = Batu @@ -1268,7 +1300,8 @@ block.pulse-conduit.name = Selang Denyut block.plated-conduit.name = Pipa Terlapis block.phase-conduit.name = Selang Phase block.liquid-router.name = Pengarah Cairan -block.liquid-tank.name = Bak Cairan +block.liquid-tank.name = Tangki Cairan +block.liquid-container.name = Kontainer Cairan block.liquid-junction.name = Simpangan Cairan block.bridge-conduit.name = Jembatan Saluran block.rotary-pump.name = Pompa Putaran @@ -1315,10 +1348,16 @@ block.disassembler.name = Pembongkar block.silicon-crucible.name = Pelebur Raksasa block.overdrive-dome.name = Kubah Projektor Pemercepat block.interplanetary-accelerator.name = Akselerator Antarplanet -#experimental, may be removed -block.block-forge.name = Pemadu Blok -block.block-loader.name = Pemuat Blok -block.block-unloader.name = Pembongkar Blok +block.constructor.name = Konstruktor +block.constructor.description = Membuat struktur hingga ubin berukuran 2x2. +block.large-constructor.name = Konstruktor Besar +block.large-constructor.description = Membuat struktur hingga ubin berukuran 4x4. +block.deconstructor.name = Deskontruktor +block.deconstructor.description = Mendekonstruksi bangunan dan unit. Mengembalikan 100% dari biaya bahan. +block.payload-loader.name = Pemuat Blok +block.payload-loader.description = Memuat cairan dan item ke dalam blok. +block.payload-unloader.name = Pembongkar Blok +block.payload-unloader.description = Membongkar cairan dan item dari blok. block.switch.name = Saklar block.micro-processor.name = Prosesor Mikro @@ -1375,6 +1414,7 @@ hint.generator = \uf879 [accent]Generator Pembakar[] membakar batu bara dan meng hint.guardian = Unit [accent]Penjaga[] adalah unit yang diperkuat. Amunisi lemah seperti [accent]Tembaga[] dan [accent]Timah[] [scarlet]tidak efektif[].\n\nGunakan menara yang lebih bagus atau amunisi yang lebih kuat seperti \uf835 [accent]Grafit[] \uf861Duo/\uf859Salvo untuk menghancurkan Penjaga. hint.coreUpgrade = Inti dapat ditingkatkan dengan cara [accent]meletakkan yang lebih besar diatasnya[].\n\nLetakan sebuah inti  [accent]Fondasi[] diatas inti  [accent]Shard[]. Pastikan terdapat ruang kosong dari bangunan yang lain. hint.presetLaunch = [accent]Zona pendaratan[] yang berwarna abu-abu, seperti [accent]Hutan yang Beku[], dapat diluncurkan dari mana saja. Sektor seperti ini tidak perlu diluncurkan dari sektor terdekat milik kamu.\n\n[accent]Sektor yang bernomor[], seperti yang ini, bisa [accent]dikuasai atau diabaikan[]. +hint.presetDifficulty = Sektor ini memiliki [scarlet]ancaman bahaya musuh yang tinggi[].\nMeluncurkan ke sektor tersebut [accent]tidak disarankan[] tanpa teknologi yang sesuai dan persiapan yang matang. hint.coreIncinerate = Setelah inti penuh dengan suatu barang, barang yang setipe akan [accent]dihancurkan[]. hint.coopCampaign = Ketika bermain [accent]kampanye multiplayer[], barang yang diproduksi di map ini akan diberikan ke [accent]sektor kamu juga[].\n\nSetiap penelitian baru yang dilakukan oleh host juga akan diberikan kepadamu. @@ -1406,7 +1446,6 @@ liquid.oil.description = Digunakan di produksi material lanjutan dan sebagai amu liquid.cryofluid.description = Digunakan sebagai pendingin di reaktor, menara, dan pabrik. block.derelict = [lightgray] Derelik -block.resupply-point.description = Mengisi ulang amunisi unit terdekat dengan tembaga. Tidak dapat mengisi ulang unit yang menggunakan tenaga baterai. block.armored-conveyor.description = Memindahkan barang ke depan. Tidak dapat menerima masukan dari samping. block.illuminator.description = Memancarkan cahaya. block.message.description = Menyimpan pesan untuk komunikasi antar sekutu. @@ -1417,7 +1456,7 @@ block.kiln.description = Membakar pasir dan timah menjadi metaglass. block.plastanium-compressor.description = Memproduksi plastanium dari minyak dan titanium. block.phase-weaver.description = Memproduksi kain phase dari thorium dan banyak pasir. block.alloy-smelter.description = Memproduksi campuran logam dari titanium, timah, silikon dan tembaga. -block.cryofluidmixer.description = Mencampur air dan titanium menjadi cairan dingin. +block.cryofluid-mixer.description = Mencampur air dan titanium menjadi cairan dingin. block.blast-mixer.description = Memproduksi senyawa peledak dari pyratit dan polong spora. block.pyratite-mixer.description = Mencampur batu bara, timah dan pasir menjadi pyratit. block.melter.description = Melelehkan rongsokan menjadi lava. @@ -1432,6 +1471,8 @@ block.item-source.description = Mengeluarkan bahan tak terhingga. Sandbox eksklu block.item-void.description = Menghancurkan bahan apa saja. Sandbox eksklusif. block.liquid-source.description = Mengeluarkan zat cair tak terhingga. Sandbox eksklusif. block.liquid-void.description = Menghancurkan zat cair apa saja. Sandbox eksklusif. +block.payload-source.description = Infinitely outputs payloads. Sandbox only. +block.payload-void.description = Destroys any payloads. Sandbox only. block.copper-wall.description = Melindungi bangunan dari tembakan musuh. block.copper-wall-large.description = Melindungi bangunan dari tembakan musuh. block.titanium-wall.description = Melindungi bangunan dari tembakan musuh. @@ -1472,7 +1513,8 @@ block.conduit.description = Memindahkan cairan ke depan. Digunakan dengan pompa block.pulse-conduit.description = Memindahkan cairan ke depan. Mengantarkan lebih cepat dan banyak daripada saluran biasa. block.plated-conduit.description = Memindahkan cairan ke depan. Tidak menerima cairan dari samping. Tidak bocor. block.liquid-router.description = Menerima cairan dari satu arah dan mengeluarkannya ke 3 arah secara rata. Dapat digunakan untuk menyimpan sejumlah cairan. -block.liquid-tank.description = Menyimpan jumlah cairan yang banyak. Mengeluarkan cairan ke segala arah, sama seperti pengarah cairan. +block.liquid-container.description = Menyimpan jumlah cairan yang banyak. Mengeluarkan cairan ke segala arah, sama seperti pengarah cairan. +block.liquid-tank.description = Menyimpan jumlah cairan yang sangat banyak. Mengeluarkan cairan ke segala arah, sama seperti pengarah cairan. block.liquid-junction.description = Berguna seperti jembatan untuk dua saluran yang bersimpangan. block.bridge-conduit.description = Memindahkan cairan melewati tanah atau bangunan. block.phase-conduit.description = Memindahkan cairan melewati tanah atau bangunan. Memiliki jarak yang lebih jauh daripada jembatan cairan, namun memerlukan tenaga. @@ -1737,6 +1779,7 @@ lenum.itemdrop = Menjatuhkan bahan. lenum.itemtake = Mengambil bahan dari suatu bangunan. lenum.paydrop = Menurunkan muatan yang ada. lenum.paytake = Mengangkut muatan pada lokasi ini. +lenum.payenter = Masuk/mendarat pada blok muatan yang saat ini unit sedang berdiri. lenum.flag = Tanda numerik unit. lenum.mine = Menambang pada sebuah posisi. lenum.build = Membangun sebuah sttruktur. diff --git a/core/assets/bundles/bundle_ja.properties b/core/assets/bundles/bundle_ja.properties index c74e312385..09bb0c0fe2 100644 --- a/core/assets/bundles/bundle_ja.properties +++ b/core/assets/bundles/bundle_ja.properties @@ -288,6 +288,7 @@ save.corrupted = [accent]セーブファイルが無効、または破損しま empty = <空> on = オン off = オフ +save.search = セーブデータを検索... save.autosave = 自動保存: {0} save.map = マップ: {0} save.wave = ウェーブ {0} @@ -381,7 +382,11 @@ editor.newmap = 新しいマップ editor.center = 中心 editor.search = マップを検索... editor.filters = マップをフィルターする -editor.showAll = デフォルトマップを表示 +editor.filters.mode = ゲームモード: +editor.filters.type = マップタイプ: +editor.filters.search = 検索: +editor.filters.author = 作者 +editor.filters.description = 説明 workshop = ワークショップ waves.title = ウェーブ waves.remove = 削除 @@ -415,6 +420,7 @@ wavemode.health = 総体力 editor.default = [lightgray]<デフォルト> details = 詳細... edit = 編集... +variables = 変数 editor.name = 名前: editor.spawn = ユニットを出す editor.removeunit = ユニットを消す @@ -1299,6 +1305,7 @@ block.plated-conduit.name = メッキパイプ block.phase-conduit.name = フェーズパイプ block.liquid-router.name = 液体ルーター block.liquid-tank.name = 液体タンク +block.liquid-container.name = 液体コンテナ block.liquid-junction.name = 液体ジャンクション block.bridge-conduit.name = ブリッジパイプ block.rotary-pump.name = ロータリーポンプ @@ -1345,10 +1352,16 @@ block.disassembler.name = ディスアセンブラー block.silicon-crucible.name = シリコンクルーシブル block.overdrive-dome.name = 加速ドーム block.interplanetary-accelerator.name = 惑星間加速器 -#experimental, may be removed -block.block-forge.name = ブロックフォージ -block.block-loader.name = ブロック積載機 -block.block-unloader.name = ブロック搬出機 +block.constructor.name = コンストラクター +block.constructor.description = 最大で2x2の大きさの構造物を建造します。 +block.large-constructor.name = 大型コンストラクター +block.large-constructor.description = 最大で4x4の大きさの構造物を建造します。 +block.deconstructor.name = デコンストラクター +block.deconstructor.description = 構造物やユニットを解体します。建造費の100%が戻ってきます。 +block.payload-loader.name = ペイロード搬入機 +block.payload-loader.description = 液体や資源をブロックに搬入します。 +block.payload-unloader.name = ペイロード搬出機 +block.payload-unloader.description = ブロックから液体や資源を搬出します。 block.switch.name = スイッチ block.micro-processor.name = マイクロプロセッサー @@ -1505,6 +1518,7 @@ block.conduit.description = 一般的な液体輸送ブロックです。液体 block.pulse-conduit.description = 高度な液体輸送ブロックです。通常のパイプより速くたくさんの液体を輸送することができます。 block.plated-conduit.description = パルスパイプと同じ速度で液体を輸送することができ、耐久性に優れています。\nまた、パイプ以外による側面への入力を受け入れません。 block.liquid-router.description = 搬入したアイテムをほかの3方向へ均等に搬出します。液体の漏れを防ぐことができます。一つの資源から複数に分ける際などに使われます。 +block.liquid-container.description = 中量の液体を保管しておくことができます。液体ルーターと同様に四方へ搬出できます。 block.liquid-tank.description = 大量の液体を保管しておくことができます。需要が不安定な製造設備や重要な施設の冷却水の予備などとして使用されます。 block.liquid-junction.description = パイプを他のパイプと交差できるようにします。それぞれ搬入した液体を前方に搬出します。パイプで複雑な構造を組み立てるときなどに使われます。 block.bridge-conduit.description = 高度な液体輸送ブロックです。地形や建物を超えて、3ブロック離れた場所に液体を輸送することができます。 diff --git a/core/assets/bundles/bundle_ko.properties b/core/assets/bundles/bundle_ko.properties index a542adc4b2..9725656d4e 100644 --- a/core/assets/bundles/bundle_ko.properties +++ b/core/assets/bundles/bundle_ko.properties @@ -288,6 +288,7 @@ save.corrupted = [accent]손상되었거나 잘못된 저장 파일입니다! empty = <비어있음> on = 활성화 off = 비활성화 +save.search = 세이브 파일 검색 save.autosave = 자동저장: {0} save.map = 맵: {0} save.wave = {0} 단계 @@ -381,7 +382,11 @@ editor.newmap = 신규 맵 editor.center = 중앙 editor.search = 맵 검색하기 editor.filters = 맵 필터링하기 -editor.showAll = 기본 맵 보기 +editor.filters.mode = 게임 모드: +editor.filters.type = 맵 유형: +editor.filters.search = 검색: +editor.filters.author = 제작자 +editor.filters.description = 설명 workshop = 창작마당 waves.title = 단계 waves.remove = 삭제 @@ -415,6 +420,7 @@ wavemode.health = 체력 editor.default = [lightgray]<기본값> details = 설명... edit = 편집... +variables = 변수 editor.name = 이름: editor.spawn = 유닛 생성 editor.removeunit = 유닛 삭제 @@ -1342,15 +1348,15 @@ block.disassembler.name = 광재 분해기 block.silicon-crucible.name = 실리콘 도가니 block.overdrive-dome.name = 대형 과부하 프로젝터 block.interplanetary-accelerator.name = 성간 코어 가속기 -block.constructor.name = 제작대 +block.constructor.name = 블록 제작대 block.constructor.description = 최대 2x2 크기의 블록을 제작합니다. -block.large-constructor.name = 대형 제작대 +block.large-constructor.name = 대형 블록 제작대 block.large-constructor.description = 최대 4x4 크기의 블록을 제작합니다. -block.deconstructor.name = 분해기 +block.deconstructor.name = 화물 해체기 block.deconstructor.description = 블록과 유닛을 분해합니다. 건설 비용의 100%를 돌려받습니다. -block.payload-loader.name = 블록 로더 +block.payload-loader.name = 화물 로더 block.payload-loader.description = 들어간 블록에 액체와 아이템을 저장합니다. -block.payload-unloader.name = 블록 언로더 +block.payload-unloader.name = 화물 언로더 block.payload-unloader.description = 들어간 블록에서 액체와 아이템을 가져옵니다. block.switch.name = 스위치 diff --git a/core/assets/bundles/bundle_pt_BR.properties b/core/assets/bundles/bundle_pt_BR.properties index ee276a99a0..eed7d1fdb2 100644 --- a/core/assets/bundles/bundle_pt_BR.properties +++ b/core/assets/bundles/bundle_pt_BR.properties @@ -18,10 +18,12 @@ linkfail = Falha ao abrir o link\nO Url foi copiado para a área de transferênc screenshot = Screenshot salvo para {0} screenshot.invalid = Este mapa é grande demais, você pode estar potencialmente sem memória suficiente para captura de tela. gameover = O núcleo foi destruído. +gameover.disconnect = Desconectado gameover.pvp = O time[accent] {0}[] ganhou! +gameover.waiting = [accent]Esperando pelo próximo mapa... highscore = [accent]Novo recorde! copied = Copiado -indev.popup = [accent]v6[] está atualmente em [accent]alpha[].\n[lightgray]Isso significa:[]\n[scarlet]- A campanha está inacabada[]\n- Está faltando conteúdo\n - A maioria das [scarlet]IAs das unidades[] não funciona adequadamente\n- A maioria das unidades estão inacabadas\n- Tudo o que você ver está sujeito a mudanças ou remoção.\n\nReporte bugs ou crashes em [accent]Github[]. +indev.campaign = [accent]Parabéns! Você chegou ao fim da campanha![]\n\nEsse é todo o conteudo do jogo até o momento. Viagem interplanetária será adicionada em futuras atualizações. indev.notready = Essa parte do jogo ainda não esta pronta load.sound = Sons @@ -39,11 +41,19 @@ be.ignore = Ignorar be.noupdates = Nenhuma atualização encontrada. be.check = Checar por atualizações +mods.browser = Mod Browser +mods.browser.selected = Mod selecionado +mods.browser.add = Instalar +mods.browser.reinstall = Reinstalar +mods.github.open = Repo +mods.browser.sortdate = Ordenar por mais recente +mods.browser.sortstars = Ordenar por estrelas + schematic = Esquema schematic.add = Salvar esquema schematics = Esquemas schematic.replace = Um esquema com esse nome já existe. Substituí-lo? -schematic.exists = Um esquema com esse nome já existe. Substituí-lo? +schematic.exists = Um esquema com esse nome já existe. schematic.import = Importar esquema... schematic.exportfile = Exportar arquivo schematic.importfile = Importar arquivo @@ -56,7 +66,7 @@ schematic.saved = Esquema salvo. schematic.delete.confirm = Esse esquema será apagado. Tem certeza? schematic.rename = Renomear esquema schematic.info = {0}x{1}, {2} blocos -schematic.disabled = [scarlet]Esquemas desativados[]\nVocê precisa de permissão para usar esquemas nesse [accent]mapa[] ou [accent]servidor. +schematic.disabled = [scarlet]Esquemas desativados[]\nVocê não tem permissão para usar esquemas nesse [accent]mapa[] ou [accent]servidor. schematic.tags = Tags: schematic.edittags = Editar Tags schematic.addtag = Adicionar Tag @@ -66,6 +76,7 @@ schematic.renametag = Renomear Tag schematic.tagdelconfirm = Deletar essa tag completamente? schematic.tagexists = Essa tag já existe. +stats = Estatísticas stat.wave = Hordas derrotadas:[accent] {0} stat.enemiesDestroyed = Inimigos destruídos:[accent] {0} stat.built = Construções construídas:[accent] {0} @@ -73,7 +84,6 @@ stat.destroyed = Construções destruídas:[accent] {0} stat.deconstructed = Construções desconstruídas:[accent] {0} stat.delivered = Recursos lançados: stat.playtime = Tempo jogado:[accent] {0} -stat.rank = Classificação final: [accent]{0} globalitems = [accent]Itens Globais map.delete = Certeza que quer deletar o mapa "[accent]{0}[]"? @@ -82,13 +92,16 @@ level.select = Seleção de fase level.mode = Modo de jogo: coreattack = < O núcleo está sob ataque! > nearpoint = [[ [scarlet]SAIA DO PONTO DE SPAWN IMEDIATAMENTE[] ]\nANIQUILAÇÃO IMINENTE -database = Banco de dados +database = Banco de dados do núcleo +database.button = Banco de dados savegame = Salvar jogo loadgame = Carregar jogo joingame = Entrar no jogo customgame = Jogo customi-\nzado newgame = Novo jogo none = +none.found = [lightgray] +none.inmap = [lightgray] minimap = Mini-mapa position = Posição close = Fechar @@ -109,17 +122,20 @@ committingchanges = Enviando mudanças done = Feito feature.unsupported = Seu dispositivo não suporta essa função. -mods.alphainfo = Lembre-se que o sistema de mods está em alpha, e[scarlet] que eles talvez contenham erros e instabilidades[].\nReporte quaisquer problemas no Discord ou GitHub do Mindustry. +mods.initfailed = [red]⚠[] A instância anterior do Mindustry falhou ao inicializar. Provavelmente causado por mods com problema.\n\nPara previnir um loop de crash, [red]todos os mods foram desativados.[] mods = Mods mods.none = [lightgray]Nenhum mod encontrado! mods.guide = Guia de mods mods.report = Reportar um Bug mods.openfolder = Abrir pasta de mods +mods.viewcontent = Ver conteúdo mods.reload = Recarregar mods.reloadexit = O jogo vai fechar, para poder recarregar os mods. +mod.installed = [[Instalado] mod.display = [gray]Mod:[orange] {0} mod.enabled = [lightgray]Ativado mod.disabled = [scarlet]Desativado +mod.multiplayer.compatible = [gray]Compatível com multiplayer mod.disable = Desati-\nvar mod.content = Conteúdo: mod.delete.error = Incapaz de deletar o mod. O arquivo talvez esteja em uso. @@ -152,8 +168,13 @@ planetmap = Mapa do Planeta launchcore = Lançar núcleo filename = Nome do arquivo: unlocked = Novo bloco desbloqueado! +available = Nova pesquisa disponível! +unlock.incampaign = < Desbloqueie na campanha para mais detalhes > completed = [accent]Completado techtree = Árvore Tecnológica +research.legacy = dados de pesquisa da versão [accent]5.0[] encontrados.\nVocê quer [accent]carregar esses dados[], ou [accent]descartar eles[] e recomeçar as pesquisas da nova campanha (recomendado)? +research.load = Carregar +research.discard = Descartar research.list = [lightgray]Pesquise: research = Pesquisar researched = [lightgray]{0} Pesquisado. @@ -188,22 +209,30 @@ hostserver.mobile = Hospedar\nJogo host = Hospedar hosting = [accent]Abrindo servidor... hosts.refresh = Recarregar -hosts.discovering = Descobrindo jogos em lan +hosts.discovering = Descobrindo jogos em LAN hosts.discovering.any = Descobrindo jogos server.refreshing = Atualizando servidor hosts.none = [lightgray]Nenhum jogo LAN encontrado! host.invalid = [scarlet]Não foi possivel hospedar servers.local = Servidores locais +servers.local.steam = Jogos públicos e servidores locais servers.remote = Servidores remotos servers.global = Servidores da comunidade +servers.disclaimer = Servidores da comunidade [accent]não[] controlados pelo desenvolvedor.\n\nOs servidores podem conter conteúdo não apropriado para todas as idades. +servers.showhidden = Mostrar servidores escondidos +server.shown = Mostrar +server.hidden = Esconder + trace = Rastrear jogador trace.playername = Nome do jogador: [accent]{0} trace.ip = IP: [accent]{0} -trace.id = ID unico: [accent]{0} +trace.id = ID: [accent]{0} trace.mobile = Cliente móvel: [accent]{0} trace.modclient = Cliente customizado: [accent]{0} +trace.times.joined = Vezes que entrou: [accent]{0} +trace.times.kicked = Vezes que foi expulso: [accent]{0} invalidid = ID do cliente invalido! Reporte o bug server.bans = Banidos server.bans.none = Nenhum jogador banido encontrado! @@ -216,29 +245,30 @@ server.outdated = [crimson]Servidor desatualizado![] server.outdated.client = [crimson]Cliente desatualizado![] server.version = [lightgray]Versão: {0} server.custombuild = [accent]Versão customizada -confirmban = Certeza que quer banir este jogador? -confirmkick = Certeza que quer expulsar o jogador? -confirmvotekick = Você tem certeza de que quer votar para expulsar este jogador? +confirmban = Certeza que quer banir "{0}[white]"? +confirmkick = Certeza que quer expulsar "{0}[white]"? +confirmvotekick = Você tem certeza de que quer votar para expulsar "{0}[white]"? confirmunban = Certeza que quer desbanir este jogador? -confirmadmin = Certeza que quer fazer este jogador um administrador? -confirmunadmin = Certeza que quer remover o status de adminstrador deste jogador? +confirmadmin = Certeza que quer fazer "{0}[white]" um administrador? +confirmunadmin = Certeza que quer remover o status de adminstrador do "{0}[white]"? joingame.title = Entrar no jogo joingame.ip = IP: disconnect = Desconectado. disconnect.error = Erro de conexão. disconnect.closed = Conexão fechada. disconnect.timeout = Tempo esgotado. -disconnect.data = Falha ao abrir os dados do mundo! +disconnect.data = Falha ao carregar os dados do mundo! cantconnect = Impossível conectar ([accent]{0}[]). connecting = [accent]Conectando... +reconnecting = [accent]Reconectando... connecting.data = [accent]Carregando dados do mundo... -server.port = Port: -server.addressinuse = Senha em uso! +server.port = Porta: +server.addressinuse = Porta em uso! server.invalidport = Numero de port inválido! server.error = [crimson]Erro ao hospedar o servidor: [accent]{0} save.new = Novo save save.overwrite = Você tem certeza que quer sobrescrever este save? -overwrite = sobrescrever +overwrite = Sobrescrever save.none = Nenhum save encontrado! savefail = Falha ao salvar jogo! save.delete.confirm = Certeza que quer deletar este save? @@ -252,12 +282,13 @@ save.newslot = Nome do save: save.rename = Renomear save.rename.text = Novo jogo: selectslot = Selecione um lugar para salvar. -slot = [accent]Conexões {0} +slot = [accent]Slot {0} editmessage = Editar mensagem save.corrupted = [accent]Save corrompido ou inválido! empty = on = Ligado off = Desligado +save.search = Procurando jogos salvos... save.autosave = Salvar automaticamente: {0} save.map = Mapa: {0} save.wave = Horda {0} @@ -276,6 +307,7 @@ cancel = Cancelar openlink = Abrir Link copylink = Copiar link back = Voltar +max = Máximo crash.export = Exportar Históricos de Crashes. crash.none = Nenhum Histórico de Crashes Encontrado. crash.exported = Históricos de Crashes Exportado. @@ -286,25 +318,28 @@ data.exported = Dados exportados. data.invalid = Estes dados de jogo não são válidos. data.import.confirm = Importar dados externos irá deletar[scarlet] todos[] os seus dados atuais.\n[accent]Isso não pode ser desfeito![]\n\nQuando seus dados serão importados, seu jogo irá sair imediatamente. quit.confirm = Você tem certeza que quer sair? -quit.confirm.tutorial = Você tem certeza que você sabe o que você esta fazendo?\nO tutorial pode ser refeito nas [accent] Configurações->Jogo->Refazer Tutorial.[] loading = [accent]Carregando... -reloading = [accent]Recarregando mods... +reloading = [accent]Recarregando... saving = [accent]Salvando... respawn = [accent][[{0}][] para nascer no núcleo cancelbuilding = [accent][[{0}][] para cancelar a construção selectschematic = [accent][[{0}][] para selecionar + copiar pausebuilding = [accent][[{0}][] para parar a construção resumebuilding = [scarlet][[{0}][] para continuar a construção +enablebuilding = [scarlet][[{0}][] para habilitar construção +showui = Interface escondida.\nPressione [accent][[{0}][] para mostrar a interface. wave = [accent]Horda {0} wave.cap = [accent]Horda {0}/{1} wave.waiting = Proxima horda em {0} wave.waveInProgress = [lightgray]Horda em progresso -waiting = Aguardando... +waiting = Esperando... waiting.players = Esperando por jogadores... wave.enemies = [lightgray]{0} inimigos restantes wave.enemy = [lightgray]{0} inimigo restante -wave.guardianwarn = Guardião se aproximando em [accent]{0}[] Hordas. -wave.guardianwarn.one = Guardião se aproximando em [accent]{0}[] Horda. +wave.enemycores = [accent]{0}[lightgray] núcleos inimigos +wave.enemycore = [accent]{0}[lightgray] núcleo inimigo +wave.guardianwarn = Guardião se aproximando em [accent]{0}[] hordas. +wave.guardianwarn.one = Guardião se aproximando em [accent]{0}[] horda. loadimage = Carregar\nimagem saveimage = Salvar\nimagem unknown = Desconhecido @@ -329,6 +364,7 @@ publish.confirm = Você tem certeza de que quer publicar isso?\n\n[lightgray]Pri publish.error = Erro publicando o item: {0} steam.error = Falha em iniciar os serviços da Steam.\nErro: {0} +editor.cliffs = Paredes para Penhascos editor.brush = Pincel editor.openin = Abrir no editor editor.oregen = Geração de minério @@ -344,15 +380,22 @@ editor.ingame = Editar em jogo editor.publish.workshop = Publicar na oficina editor.newmap = Novo mapa editor.center = Centro +editor.search = Procurar mapas... +editor.filters = Filtrar mapas +editor.filters.mode = Modos de jogo: +editor.filters.type = Tipo: +editor.filters.search = Procurar em: +editor.filters.author = Autor +editor.filters.description = Descrição workshop = Oficina waves.title = Hordas waves.remove = Remover -waves.never = waves.every = a cada waves.waves = Horda(s) waves.perspawn = por spawn waves.shields = Escudo/Horda waves.to = para +waves.max = quantidade máxima waves.guardian = Guardião waves.preview = Pré-visualizar waves.edit = Editar... @@ -361,7 +404,15 @@ waves.load = Carregar da área de transferência waves.invalid = Hordas inválidas na área de transferência. waves.copied = Hordas copiadas. waves.none = Sem hordas definidas.\nNote que layouts vazios de hordas serão automaticamente substituídos pelo layout padrão. +waves.sort = Ordenar por +waves.sort.reverse = Inverter ordem +waves.sort.begin = Começar +waves.sort.health = Vida +waves.sort.type = Tipo +waves.units.hide = Esconder tudo +waves.units.show = Mostrar tudo +# esses são intencionalmente em letras minúsculas wavemode.counts = quantidade wavemode.totals = total wavemode.health = vida @@ -369,6 +420,7 @@ wavemode.health = vida editor.default = [lightgray] details = Detalhes... edit = Editar... +variables = Variáveis editor.name = Nome: editor.spawn = Criar unidade editor.removeunit = Remover unidade diff --git a/core/assets/bundles/bundle_ru.properties b/core/assets/bundles/bundle_ru.properties index 6fd6d09df4..32bc7153af 100644 --- a/core/assets/bundles/bundle_ru.properties +++ b/core/assets/bundles/bundle_ru.properties @@ -286,6 +286,7 @@ save.corrupted = [accent]Сохранённый файл повреждён ил empty = <пусто> on = Вкл off = Выкл +save.search = Поиск сохранений... save.autosave = Автосохранение: {0} save.map = Карта: {0} save.wave = Волна {0} @@ -378,7 +379,11 @@ editor.newmap = Новая карта editor.center = Центрировать editor.search = Поиск карт... editor.filters = Фильтры -editor.showAll = Показать карты по умолчанию +editor.filters.mode = Режимы игры: +editor.filters.type = Тип карты +editor.filters.search = Искать по +editor.filters.author = Автору +editor.filters.description = Описанию workshop = Мастерская waves.title = Волны waves.remove = Удалить diff --git a/core/assets/bundles/bundle_th.properties b/core/assets/bundles/bundle_th.properties index 43705689d7..76454a71a8 100644 --- a/core/assets/bundles/bundle_th.properties +++ b/core/assets/bundles/bundle_th.properties @@ -154,7 +154,7 @@ mod.import.file = นำเข้าไฟล์ mod.import.github = นำเข้าม็อดจาก Github mod.jarwarn = [scarlet]ม็อดไฟล์ JAR นั้นค่อนข้างไม่ปลอดภัย[]\nกรุณาเช็กให้แน่ใจว่าคุณนำเข้าม็อดนี้จะแหล่งที่เชื่อถือได้! mod.item.remove = ไอเท็มนี้เป็นส่วนหนึ่งของม็อด [accent]'{0}'[] หากต้องการนำออก กรุณาถอนการติดตั้งม็อดนั้น -mod.remove.confirm = ม็อดนี้จะถูกลบ +mod.remove.confirm = ม็อดนี้จะถูกลบออกไป mod.author = [lightgray]ผู้สร้าง:[] {0} mod.missing = เซฟนี้มีม็อดที่คุณพึ่งอัปเดตหรือไม่ได้ติดตั้งแล้ว อาจทำให้เซฟเสีย คุณแน่จะหรือว่าจะโหลดเซฟนี้?\n[lightgray]ม็อดที่ใช้:\n{0} mod.preview.missing = ก่อนที่จะนำม็อดไปลงในเวิร์กช็อป คุณต้องใส่รูปพรีวิวก่อน\nใส่รูปชื่อ[accent] preview.png[] ลงในโฟลเดอร์ของม็อดแล้วลองอีกครั้ง @@ -233,7 +233,7 @@ trace.mobile = ไคลเอนต์โทรศัพท์: [accent]{0} trace.modclient = ไคลเอนต์ปรับแต่ง: [accent]{0} trace.times.joined = เวลาเข้า: [accent]{0} trace.times.kicked = เวลาโดนเตะ: [accent]{0} -invalidid = client ID ไม่ถูกต้อง! กรุณารายงานบัคนี้ +invalidid = ไคลเอนต์ ID ไม่ถูกต้อง! กรุณารายงานบัคนี้ server.bans = แบน server.bans.none = ไม่พบผู้เล่นที่ถูกแบน! server.admins = แอดมิน @@ -282,12 +282,13 @@ save.newslot = ชื่อเซฟ: save.rename = เปลี่ยนชื่อ save.rename.text = ชื่อใหม่: selectslot = เลือกเซฟ -slot = [accent]Slot {0} +slot = [accent]สล็อต {0} editmessage = แก้ไขข้อความ save.corrupted = ไฟล์เซฟเสียหายหรือไม่ถูกต้อง! empty = <ว่างเปล่า> on = เปิด off = ปิด +save.search = ค้นหาเซฟเกม... save.autosave = เซฟอัตโนมัติ: {0} save.map = แมพ: {0} save.wave = คลื่นที่ {0} @@ -361,14 +362,14 @@ missing = ไอเท็มนี้ถูกลบหรือย้าย\n[l publishing = [accent]กำลังเผยแพร่... publish.confirm = คุณแน่ใจหรือว่าจะเผยแพร่สิ่งนี้?\n\n[lightgray]คุณต้องแน่ใจก่อนว่าคุณเห็นด้วยกับ Workshop EULA มิฉนั้นไอเท็มของคุณจะไม่ปรากฏ! publish.error = เกิดข้อผิดพลาดการเผยแพร่ไอเท็มดังต่อไปนี้: {0} -steam.error = ไม่สามารถเริ่ม Steam service ได้\nError: {0} +steam.error = ไม่สามารถเริ่ม Steam service ได้\nข้อผิดพลาด: {0} editor.cliffs = เปลี่ยนกำแพงเป็นหน้าผา editor.brush = แปรง editor.openin = เปิดในตัวแก้ไข editor.oregen = การเกิดของแร่ editor.oregen.info = การเกิดของแร่: -editor.mapinfo = ข้อมูลของแมพ +editor.mapinfo = ข้อมูลแมพ editor.author = ผู้สร้าง: editor.description = คำอธิบาย: editor.nodescription = แมพจำเป็นต้องมีคำอธิบายอย่างน้อย 4 ตัวอักษรจึงจะสามารถเผยแพร่ได้ @@ -381,7 +382,11 @@ editor.newmap = แมพใหม่ editor.center = ศูนย์กลางแมพ editor.search = ค้นหาแมพ... editor.filters = ตัวกรองแมพ -editor.showAll = แสดงแมพค่าเริ่มต้น +editor.filters.mode = เกมโหมด: +editor.filters.type = ประเภทแมพ: +editor.filters.search = ค้นหาจาก: +editor.filters.author = ผู้สร้าง +editor.filters.description = คำอธิบาย workshop = เวิร์กช็อป waves.title = คลื่น waves.remove = ลบ @@ -415,6 +420,7 @@ wavemode.health = พลังชีวิต editor.default = [lightgray]<ค่าเริ่มต้น> details = รายละเอียด... edit = แก้ไข... +variables = ตัวแปร editor.name = ชื่อ: editor.spawn = สร้างยูนิต editor.removeunit = ลบยูนิต @@ -425,7 +431,7 @@ editor.errorimage = ไฟล์นั้นคือไฟล์รูป ไ editor.errorlegacy = แมพนี้เก่าเกินไปและใช้รูปแบบแมพแบบเก่าที่ไม่สนับสนุนแล้ว editor.errornot = นี่ไม่ใช้ไฟล์แมพ editor.errorheader = ไฟล์แมพนี้เสียหรือไม่ถูกต้อง -editor.errorname = แมพไม่มีการกำหนดชื่อ คุณกำลังโหลดไฟล์เซฟอยู่หรือป่าว? +editor.errorname = แมพไม่มีการกำหนดชื่อ คุณกำลังพยายามโหลดไฟล์เซฟอยู่หรือไม่? editor.update = อัปเดต editor.randomize = สุ่ม editor.apply = ใช้ @@ -563,12 +569,12 @@ guardian = ผู้พิทักษ์ connectfail = [crimson]การเชื่อมต่อผิดพลาด:\n\n[accent]{0} error.unreachable = เซิร์ฟเวอร์ไม่สามารถเข้าถึงได้\nแน่ใจหรือว่าที่อยู่เขียนถูกต้อง? error.invalidaddress = ที่อยู่ไม่ถูกต้อง -error.timedout = Timed out!\nเช็กให้แน่ใจว่า port forwarding ของโฮสต์เปิดอยู่และที่อยู่นั้นถูกต้อง! -error.mismatch = Packet error:\nอาจเกิดจากเวอร์ชั่นของ ไคลเอนต์/เซิร์ฟเวอร์ ไม่ตรงกัน\nเช็กให้แน่ใจว่าคุณและโฮสต์ใช้ Mindustry เวอร์ชั่นล่าสุด! +error.timedout = หมดเวลา!\nเช็กให้แน่ใจว่า port forwarding ของโฮสต์เปิดอยู่และที่อยู่นั้นถูกต้อง! +error.mismatch = ข้อผิดพลาดของแพ็คเก็ต:\nอาจเกิดจากเวอร์ชั่นของ ไคลเอนต์/เซิร์ฟเวอร์ ไม่ตรงกัน\nเช็กให้แน่ใจว่าคุณและโฮสต์ใช้ Mindustry เวอร์ชั่นล่าสุด! error.alreadyconnected = เชื่อมต่ออยู่แล้ว error.mapnotfound = ไม่พบไฟล์แมพ -error.io = Network I/O error -error.any = Error: เครือข่ายที่ไม่รู้จัก +error.io = ข้อผิดพลาด I/O ของเครือข่าย +error.any = ข้อผิดพลาด: เครือข่ายที่ไม่รู้จัก error.bloom = ไม่สามารถเริ่มต้นบลูมได้\nอุปกรณ์ของคุณอาจไม่รองรับ weather.rain.name = ฝน @@ -610,8 +616,8 @@ sector.changeicon = เปลี่ยนไอคอน threat.low = ต่ำ threat.medium = กลาง threat.high = สูง -threat.extreme = ร้ายแรง -threat.eradication = มหาวิบัติ +threat.extreme = วิบัติภัย +threat.eradication = ทำลายล้าง planets = ดาวเคราะห์ @@ -630,8 +636,8 @@ sector.overgrowth.name = โอเวอร์โกรว์ด sector.tarFields.name = ราบลุ่มน้ำมัน sector.saltFlats.name = ที่ราบเกลือ sector.fungalPass.name = ทางผ่านฟังกัล -sector.biomassFacility.name = แหล่งสังเคราะห์ชีวมวล -sector.windsweptIslands.name = หมู่เกาะวินด์สเวปท์ +sector.biomassFacility.name = สถานสังเคราะห์ชีวมวล +sector.windsweptIslands.name = หมู่เกาะพหุวายุ sector.extractionOutpost.name = ด่านส่งทรัพยากร sector.planetaryTerminal.name = ท่าปล่อยจรวดอวกาศยาน sector.coastline.name = แนวชายฝั่ง @@ -1138,7 +1144,7 @@ block.space.name = อวกาศ block.salt.name = เกลือ block.salt-wall.name = กำแพงเกลือ block.pebbles.name = ก้อนกรวด -block.tendrils.name = ไม้เลื้อย +block.tendrils.name = เถาวัลย์ block.sand-wall.name = กำแพงทราย block.spore-pine.name = ต้นสนสปอร์ block.spore-wall.name = กำแพงสปอร์ @@ -1343,15 +1349,10 @@ block.silicon-crucible.name = เบ้าหลอมซิลิคอน block.overdrive-dome.name = โดมเร่งประสิทธิภาพ block.interplanetary-accelerator.name = ฐานเร่งความเร็วระหว่างดาวเคราะห์ block.constructor.name = เครื่องก่อสร้าง -block.constructor.description = สรรค์สร้างสิ่งก่อสร้างขนาดจนถึง 2x2 ช่อง block.large-constructor.name = เครื่องก่อสร้างขนาดใหญ่ -block.large-constructor.description = สรรค์สร้างสิ่งก่อสร้างขนาดจนถึง 4x4 ช่อง block.deconstructor.name = เครื่องลบทำลาย -block.deconstructor.description = ลบทำลายสิ่งก่อสร้างและยูนิต คืน 100% ของทรัพยากรที่ใช้ในการสร้าง block.payload-loader.name = เครื่องโหลดสิ่งบรรทุก -block.payload-loader.description = โหลดของเหลวและไอเท็มเข้าไปในบล็อก block.payload-unloader.name = เครื่องถ่ายสิ่งบรรทุก -block.payload-unloader.description = ถ่ายของเหลวและไอเท็มออกจากบล็อก block.switch.name = สวิตช์ block.micro-processor.name = ตัวประมวลผลขนาดเล็ก @@ -1522,7 +1523,7 @@ block.conduit.description = เคลื่อนย้ายของเหล block.pulse-conduit.description = เคลื่อนย้ายของเหลวไปข้างหน้า เคลื่อนย้ายได้เร็วขึ้นและเก็บของเหลวได้เยอะกว่าท่อน้ำธรรมดา block.plated-conduit.description = เคลื่อนย้ายของเหลวไปข้างหน้า ไม่รับของเหลวจากด้านข้างนอกจากท่อน้ำด้วยกันเอง\nไม่รั่ว และมีเกราะที่หนากว่า block.liquid-router.description = รับของเหลวจากทางเดียวแล้วส่งออกสามทางเท่าๆกัน สามารถเก็บของเหลวได้จำนวนหนึ่ง\nมีประโยชน์สำหรับการส่งของเหลวจากปั้มไปยังหลายที่ -block.liquid-container.description = เก็บของเหลวจำนวนปานกลาง ส่งออกไปรอบด้านคล้ายกับเร้าเตอร์ของเหลว\nเหมาะในการใช้กับเครื่องโหลดและถ่ายสิ่งบรรทุกสำหรับการขนส่งของเหลวทางไกล +block.liquid-container.description = เก็บของเหลวจำนวนปานกลาง ส่งออกไปรอบด้านคล้ายกับ\nเร้าเตอร์ของเหลว เหมาะในการใช้กับเครื่องโหลดและถ่ายสิ่งบรรทุกสำหรับ\nการขนส่งของเหลวทางไกล block.liquid-tank.description = เก็บของเหลวจำนวนมาก ส่งออกไปรอบด้านคล้ายกับเร้าเตอร์ของเหลว\nเหมาะในการใช้เพื่อสร้างกันชนในเวลาที่ของเหลวไม่คงที่\nหรือเวลาที่ใช้ของเหลวเป็นจำนวนมาก block.liquid-junction.description = ทำหน้าที่เป็นสะพานสำหรับท่อน้ำสองท่อตัดกันที่มีของเหลวสองชนิดแล้วจะไปคนละที่ block.bridge-conduit.description = เคลื่อนย้ายของเหลวข้ามสิ่งก่อสร้างหรือกำแพง @@ -1604,6 +1605,11 @@ block.large-logic-display.description = แสดงกราฟิกโดย block.interplanetary-accelerator.description = หอคอยเรลกันแม่เหล็กไฟฟ้าขนาดมหึมา เร่งความเร็วแกนกลางเพื่อบินสู่อวกาศไปยังดาวเคราะห์อื่นๆ block.repair-turret.description = ซ่อมแซมยูนิตที่อยู่ในรัศมีของมันอย่างต่อเนื่อง สามารถใช้ของเหลวมาหล่อเย็นเพื่อเพิ่มประสิทธิภาพได้ block.payload-propulsion-tower.description = บล็อกขนส่งสิ่งบรรทุกทางไกล\nยิงสิ่งบรรทุกไปยังหอเคลื่อนย้ายสิ่งบรรทุกอีกเครื่องที่เชื่อมต่อไว้ +block.constructor.description = สรรค์สร้างสิ่งก่อสร้างขนาดจนถึง 2x2 ช่อง +block.large-constructor.description = สรรค์สร้างสิ่งก่อสร้างขนาดจนถึง 4x4 ช่อง +block.deconstructor.description = ลบทำลายสิ่งก่อสร้างและยูนิต คืนทรัพยากรทั้งหมดที่ใช้ในการก่อสร้าง +block.payload-loader.description = โหลดของเหลวและไอเท็มเข้าไปในบล็อก +block.payload-unloader.description = ถ่ายของเหลวและไอเท็มออกจากบล็อก unit.dagger.description = ยิงกระสุนธรรมดาใส่ศัตรูที่อยู่ใกล้เคียง unit.mace.description = ยิงเปลวไฟเผาไหม้ใส่ศัตรูที่อยู่ใกล้เคียง diff --git a/core/assets/bundles/bundle_tr.properties b/core/assets/bundles/bundle_tr.properties index aac3eca0de..663bb22a6e 100644 --- a/core/assets/bundles/bundle_tr.properties +++ b/core/assets/bundles/bundle_tr.properties @@ -288,6 +288,7 @@ save.corrupted = [accent]Kayıt dosyası bozuk veya geçersiz! empty = on = Aç off = Kapa +save.search = Kayıtlı Oyun Ara... save.autosave = Otomatik kayıt: {0} save.map = Harita: {0} save.wave = Dalga {0} @@ -381,7 +382,11 @@ editor.newmap = Yeni Harita editor.center = Ortala editor.search = Harita Ara... editor.filters = Harita Filtrele -editor.showAll = Varsayılan Haritaları Göster +editor.filters.mode = Oyun Modları: +editor.filters.type = Harita Türleri: +editor.filters.search = Ara: +editor.filters.author = Yapımcı +editor.filters.description = Açıklama workshop = Atölye waves.title = Dalgalar waves.remove = Kaldır diff --git a/core/assets/bundles/bundle_uk_UA.properties b/core/assets/bundles/bundle_uk_UA.properties index 6923debf25..496c819417 100644 --- a/core/assets/bundles/bundle_uk_UA.properties +++ b/core/assets/bundles/bundle_uk_UA.properties @@ -350,6 +350,7 @@ workshop.error = Помилка під час отримання інформа map.publish.confirm = Ви дійсно хочете опублікувати цю мапу?\n\n[lightgray]Спершу переконайтеся, що ви згодні з Ліцензійною угодою Steam, або ваші мапи не з’являться! workshop.menu = Виберіть, що ви хочете зробити з цим предметом. workshop.info = Інформація про предмет +workshop.info = Інформація про предмет changelog = Змінопис (за бажанням): eula = Ліцензійна угода Steam missing = Цей предмет було видалено або переміщено.\n[lightgray]Список Майстерні тепер автоматично від’єднано. @@ -643,6 +644,7 @@ status.overclock.name = Прискорений status.shocked.name = Шокований status.blasted.name = Підірваний status.unmoving.name = Незворушний +status.boss.name = Вартовий settings.language = Мова settings.data = Ігрові дані @@ -1422,6 +1424,8 @@ block.item-source.description = Постійно створює предмети block.item-void.description = Руйнує будь-які предмети. Тільки пісочниця. block.liquid-source.description = Постійно виробляє рідини. Тільки пісочниця. block.liquid-void.description = Випаровує будь-які рідини. Тільки пісочниця. +block.payload-source.description = Нескінченно створює і виводить вантажі. Тільки пісочниця. +block.payload-void.description = Знищує будь-які вантажі. Тільки пісочниця. block.copper-wall.description = Захищає споруди від ворожих снарядів. block.copper-wall-large.description = Захищає споруди від ворожих снарядів. block.titanium-wall.description = Захищає споруди від ворожих снарядів. @@ -1454,7 +1458,7 @@ block.router.details = Необхідне зло. Не використовуй block.distributor.description = Розділяє предмети до 7 інших напрямків порівну. block.overflow-gate.description = Вивантажує лише ліворуч і праворуч, якщо передній шлях заблокований. block.underflow-gate.description = Повна протилежність надмірному затвору. Виводить предмет прямо, якщо лівий і правий шлях заблоковано. -block.mass-driver.description = Найкращий блок для транспортування предметів. Збирає кілька предметів, а потім вистрілює їх до іншої електромагнітної катапульти на велику відстань. Для роботи потребує енергія. +block.mass-driver.description = Найкращий блок для транспортування предметів. Збирає кілька предметів, а потім вистрілює їх до іншої електромагнітної катапульти на велику відстань. Для роботи потребує енергію. block.mechanical-pump.description = Дешевий насос із повільним виходом, але не потребує енергоспоживання. block.rotary-pump.description = Удосконалений насос. Насоси більше викачують, але потребують енергію. block.thermal-pump.description = Найкращий насос. diff --git a/core/assets/bundles/bundle_zh_CN.properties b/core/assets/bundles/bundle_zh_CN.properties index 48ef307c69..00f6469e21 100644 --- a/core/assets/bundles/bundle_zh_CN.properties +++ b/core/assets/bundles/bundle_zh_CN.properties @@ -122,7 +122,7 @@ committingchanges = 正在提交更改 done = 完成 feature.unsupported = 您的设备不支持此特性。 -mods.initfailed = [red]⚠[]Mindustry的上一次启动失败了,可能是异常的模组导致的。 \n\n为了防止连续崩溃,[red]所有模组都被禁用了。 []\n\n这个功能可以在[accent]设置->游戏->游戏启动崩溃后禁用模组[]里关闭。 +mods.initfailed = [red]⚠[]Mindustry的上一次启动失败了,可能是异常的模组导致的。 \n\n为了防止连续崩溃,[red]所有模组都被禁用了。 [] mods = 模组 mods.none = [lightgray]没有找到模组! mods.guide = 模组制作教程 @@ -288,6 +288,7 @@ save.corrupted = 存档损坏或无效! empty = < 空 > on = 开 off = 关 +save.search = 搜索已保存的游戏… save.autosave = 自动保存:{0} save.map = 地图:{0} save.wave = 波次:{0} @@ -379,6 +380,14 @@ editor.ingame = 游戏内编辑 editor.publish.workshop = 上传到创意工坊 editor.newmap = 新地图 editor.center = 居中 +editor.search = 搜索地图… +editor.filters = 筛选地图 +editor.showAll = 显示默认地图 +editor.filters.mode = 游戏模式: +editor.filters.type = 地图类型: +editor.filters.search = 关键词搜索: +editor.filters.author = 作者 +editor.filters.description = 描述 workshop = 创意工坊 waves.title = 波次 waves.remove = 移除 @@ -412,6 +421,7 @@ wavemode.health = 生命值 editor.default = [lightgray]<默认> details = 详情… edit = 编辑… +variables = 变量 editor.name = 名称: editor.spawn = 生成单位 editor.removeunit = 移除单位 @@ -593,7 +603,7 @@ sectors.rename = 重命名区块 sectors.enemybase = [scarlet]敌方基地 sectors.vulnerable = [scarlet]易受攻击 sectors.underattack = [scarlet]遭到攻击![accent]{0}%损毁度 -sectors.survives = [accent]已坚持{0}波 +sectors.survives = [accent]预测可守{0}波 sectors.go = 进入 sector.curcapture = 区块已占领 sector.curlost = 区块已丢失 @@ -635,7 +645,7 @@ sector.coastline.name = 边际海湾 sector.navalFortress.name = 海军要塞 sector.groundZero.description = 踏上旅程的最佳位置。 这里的敌人威胁很小,但资源也少。 \n\n尽你所能收集铅和铜,出发吧! -sector.frozenForest.description = 一个靠近山脉的地方。 哪怕是在这里,也有了孢子扩散的痕迹。 \n不过它们无法在低温下长期存活。 \n\n开始运用电力,建造火力发电机并学会使用修理器。 +sector.frozenForest.description = 一个靠近山脉的地方。 哪怕是在这里,也有了孢子扩散的痕迹。 \n连极寒也无法长久地约束它们。 \n\n开始运用电力,建造火力发电机并学会使用修理器。 sector.saltFlats.description = 盐碱荒滩,位于沙漠的边缘地带,几乎没有什么资源。 \n敌人在这里建立了一个资源存储区。 \n\n摧毁他们的核心,片甲不留。 sector.craters.description = 这片陨石地带有积水,它也是旧时战争的遗迹。 \n\n夺下该区块,收集沙子来冶炼玻璃。 \n用水泵抽水来加速炮塔和钻头。 sector.ruinousShores.description = 穿过荒地就是海滩。 \n这里曾经有一条海岸防线,但现在已所剩无几。 \n一些基础的防御建筑还完好无损,除此之外都变成了废墟。 \n\n继续向外扩张并研究科技。 @@ -694,7 +704,7 @@ no = 否 info.title = 详情 error.title = [scarlet]发生了一个错误 error.crashtitle = 发生了一个错误 -unit.nobuild = [scarlet]不能建造单位 +unit.nobuild = [scarlet]单位不可建造 lastaccessed = [lightgray]上次操作:{0} block.unknown = [lightgray]?? @@ -1075,7 +1085,7 @@ item.phase-fabric.name = 相位织物 item.surge-alloy.name = 巨浪合金 item.spore-pod.name = 孢子荚 item.sand.name = 沙 -item.blast-compound.name = 炸药 +item.blast-compound.name = 爆炸混合物 item.pyratite.name = 硫化物 item.metaglass.name = 钢化玻璃 item.scrap.name = 废料 @@ -1130,6 +1140,7 @@ block.sand-boulder.name = 砂岩 block.basalt-boulder.name = 玄武岩巨石 block.grass.name = 草地 block.molten-slag.name = 矿渣液 +block.pooled-cryofluid.name = 冷冻液 block.space.name = 太空 block.salt.name = 盐碱地 block.salt-wall.name = 盐墙 @@ -1280,7 +1291,7 @@ block.phase-conveyor.name = 相位传送带桥 block.bridge-conveyor.name = 传送带桥 block.plastanium-compressor.name = 塑钢压缩机 block.pyratite-mixer.name = 硫化物混合器 -block.blast-mixer.name = 炸药混合器 +block.blast-mixer.name = 爆炸物混合器 block.solar-panel.name = 太阳能板 block.solar-panel-large.name = 大型太阳能板 block.oil-extractor.name = 石油钻井 @@ -1291,6 +1302,7 @@ block.plated-conduit.name = 电镀导管 block.phase-conduit.name = 相位导管桥 block.liquid-router.name = 液体路由器 block.liquid-tank.name = 储液罐 +block.liquid-container.name = 储液容器 block.liquid-junction.name = 液体交叉器 block.bridge-conduit.name = 导管桥 block.rotary-pump.name = 回转泵 @@ -1337,10 +1349,16 @@ block.disassembler.name = 解离机 block.silicon-crucible.name = 热能坩埚 block.overdrive-dome.name = 超速穹顶投射器 block.interplanetary-accelerator.name = 行星际加速器 -#experimental, may be removed (仅供测试,行将移除) -block.block-forge.name = 方块建造厂 -block.block-loader.name = 方块装载机 -block.block-unloader.name = 方块卸载机 +block.constructor.name = 构造器 +block.constructor.description = 制造尺寸不超过2x2方块的建筑。 +block.large-constructor.name = 大型构造器 +block.large-constructor.description = 制造尺寸不超过4x4方块的建筑。 +block.deconstructor.name = 解构器 +block.deconstructor.description = 解构建筑与单位,并返还100%的制造成本。 +block.payload-loader.name = 荷载装载器 +block.payload-loader.description = 将液体和物品装载进方块中。 +block.payload-unloader.name = 荷载卸载器 +block.payload-unloader.description = 将液体和物品从方块中卸载。 block.switch.name = 开关 block.micro-processor.name = 微型处理器 @@ -1418,7 +1436,7 @@ item.silicon.description = 用于太阳能板、 复杂的电气元件或作为 item.plastanium.description = 用于高级单位、 绝缘材料,或作为分裂性弹药。 item.phase-fabric.description = 用于高级电子设备和自修复建筑。 item.surge-alloy.description = 用于先进武器和反应防御建筑。 -item.spore-pod.description = 用于转化成石油、 炸药或作为燃料。 +item.spore-pod.description = 用于转化成石油、 爆炸混合物或作为燃料。 item.spore-pod.details = 孢子。 可能是人工合成的生命形式,释放对其他生物有毒的气体,极具侵略性。 在某些条件下高度易燃。 item.blast-compound.description = 用作炸弹或爆炸性弹药。 item.pyratite.description = 用于火焰发射类武器和使用燃料的发电设备。 @@ -1440,7 +1458,7 @@ block.plastanium-compressor.description = 用石油和钛生产塑钢。 block.phase-weaver.description = 用钍和沙合成相位织物。 block.alloy-smelter.description = 将钛、 铅、 硅和铜熔合成巨浪合金。 block.cryofluid-mixer.description = 将水和细钛粉混合制成冷冻液。 -block.blast-mixer.description = 利用硫化物和孢子荚生产炸药。 +block.blast-mixer.description = 利用硫化物和孢子荚生产爆炸混合物。 block.pyratite-mixer.description = 把煤炭、 铅和沙子混合成硫化物。 block.melter.description = 将废料熔化成矿渣液。 block.separator.description = 将矿渣液分离成矿物成分。 @@ -1496,7 +1514,8 @@ block.conduit.description = 向前方传输液体。 与泵或者其他导管联 block.pulse-conduit.description = 向前方传输液体。 比普通导管传输液体更快,且能储存更多液体。 block.plated-conduit.description = 向前方传输液体,不接受侧面输入。 不会发生泄露。 block.liquid-router.description = 接受一个方向的液体输入,并平均输出到其他3个方向。 可以储存一定量的液体。 -block.liquid-tank.description = 储存大量液体,并像液体路由器一样朝各个方向输出液体。 +block.liquid-container.description = 储存可观数量的液体,并像液体路由器一样朝各个方向输出液体。 +block.liquid-tank.description = 储存大量的液体,并像液体路由器一样朝各个方向输出液体。 block.liquid-junction.description = 两条交叉导管的桥梁。 block.bridge-conduit.description = 跨越任意地形或建筑物传输液体。 block.phase-conduit.description = 跨越任意地形或建筑物传输液体。 比导管桥范围更大,但需要电力。 @@ -1610,7 +1629,7 @@ unit.omura.description = 向敌人发射远程穿透轨道炮。 可自动生产 unit.alpha.description = 保护初代核心,可建造建筑。 unit.beta.description = 保护次代核心,可建造建筑。 unit.gamma.description = 保护终代核心,可建造建筑。 -unit.retusa.description = 放置水雷,并修复友方单位。 +unit.retusa.description = 向附近的敌人发射追踪鱼雷,并修复友方单位。 unit.oxynoe.description = 向附近的敌人发射火焰束,并修复友方建筑。 具备一台单点防御炮塔,能够防御来袭的子弹。 unit.cyerce.description = 向敌人发射追踪集束导弹,并修复友方单位。 unit.aegires.description = 产生能量场,使范围内的敌方建筑与单位受到电击,对友方则进行修复。 @@ -1761,6 +1780,7 @@ lenum.itemdrop = 将携带的物品放入一座建筑 lenum.itemtake = 从建筑中取出某种物品 lenum.paydrop = 卸下当前载荷 lenum.paytake = 从当前位置拾取载荷 +lenum.payenter = 进入/降落到单位下方的荷载方块中 lenum.flag = 给单位赋予数字形式的标记 lenum.mine = 从某个位置采集矿物 lenum.build = 建造建筑 diff --git a/core/assets/bundles/bundle_zh_TW.properties b/core/assets/bundles/bundle_zh_TW.properties index 9380c166cd..87cfdc91f2 100644 --- a/core/assets/bundles/bundle_zh_TW.properties +++ b/core/assets/bundles/bundle_zh_TW.properties @@ -122,7 +122,7 @@ committingchanges = 遞交變更 done = 完成 feature.unsupported = 您的裝置不支援此功能。 -mods.initfailed = [red]⚠[] Mindustry 無法啟動。這可能是因模組造成。\n\n為了避免不斷閃退,[red]所有的模組已被停用。[]\n\n若要取消此設定,可在[accent]設定->遊戲->閃退後停用模組[]關閉設定. +mods.initfailed = [red]⚠[] Mindustry 無法啟動。這可能是因模組造成。\n\n為了避免不斷閃退,[red]所有的模組已被停用。[] mods = 模組 mods.none = [lightgray]找不到模組! mods.guide = 模組指南 @@ -363,6 +363,7 @@ publish.confirm = 您確定要發布嗎?\n\n[lightgray]首先確定您同意 W publish.error = 發佈項目時發生問題:{0} steam.error = Steam 服務初始化失敗。\n錯誤:{0} +editor.cliffs = 牆轉為懸崖 editor.brush = 筆刷 editor.openin = 在編輯器中開啟 editor.oregen = 礦石生成 @@ -378,6 +379,9 @@ editor.ingame = 在遊戲中編輯 editor.publish.workshop = 在工作坊上發佈 editor.newmap = 新地圖 editor.center = 中心 +editor.search = 尋找地圖... +editor.filters = 篩選地圖 +editor.showAll = 顯示內建地圖 workshop = 工作坊 waves.title = 波次 waves.remove = 移除 @@ -400,6 +404,8 @@ waves.sort.reverse = 反向排序 waves.sort.begin = 開始 waves.sort.health = 血量 waves.sort.type = 兵種 +waves.units.hide = 全部隱藏 +waves.units.show = 全部顯示 #校正用空行 wavemode.counts = 數量 @@ -628,6 +634,8 @@ sector.biomassFacility.name = 生物質合成工廠 sector.windsweptIslands.name = 風之島 sector.extractionOutpost.name = 萃取哨站 sector.planetaryTerminal.name = 星際發射站 +sector.coastline.name = 海岸 +sector.navalFortress.name = 海上要塞 sector.groundZero.description = 再次開始的最佳位置。敵人威脅程度低。資源少。\n盡可能地採集鉛與銅。\n繼續前進。 sector.frozenForest.description = 即使是在如此靠近山脈的地方,孢子也已經擴散了。如此低溫也無法永遠遏止它們。\n\n開始冒險發電。建造火力發電機。並學習使用修理單位。 @@ -1125,6 +1133,7 @@ block.sand-boulder.name = 沙礫巨岩 block.basalt-boulder.name = 玄武岩巨石 block.grass.name = 草 block.molten-slag.name = 熔渣 +block.pooled-cryofluid.name = 冷凍液 block.space.name = 太空 block.salt.name = 鹽 block.salt-wall.name = 鹽牆 @@ -1158,6 +1167,7 @@ block.core-nucleus.name = 核心:核子 block.deep-water.name = 深水 block.shallow-water.name = 水 block.tainted-water.name = 污水 +block.deep-tainted-water.name = 深汙水 block.darksand-tainted-water.name = 黑沙污水 block.tar.name = 焦油 block.stone.name = 石頭 @@ -1390,7 +1400,8 @@ hint.waveFire = 以[accent]水[]裝填的[accent]波浪[]會自動撲滅附近 hint.generator = \uf879 [accent]燃燒發電機[]消耗煤炭產生能源給相鄰的方塊。\n\n使用 \uf87f [accent]能量節點[]增加電力涵蓋範圍。 hint.guardian = [accent]頭目[]擁有厚實的裝甲。較弱的彈藥如[accent]銅[]和[accent]鉛[]並[scarlet]沒有效果[].\n\n使用更高等的砲臺或以\uf835 [accent]石墨[]配合\uf861雙砲、\uf859齊射砲摧毀頭目。 hint.coreUpgrade = 核心可以透過在上面[accent]覆蓋一個更高等級的核心[]來升級。\n\n放置  [accent]核心:基地[] 到  [accent]核心:碎片[] 上. 確保沒有其他障礙物。 -hint.presetLaunch = 灰色的[accent]降落地區[],例如[accent]冰凍森林[],可由任何地區發射。這類地區無須由相鄰地區進攻。\n\n[accent]數字編號地區[],像是這一個,可不是完成戰役的必要條件。 +hint.presetLaunch = 灰色的[accent]降落地區[],例如[accent]冰凍森林[],可由任何地區發射。這類地區無須由相鄰地區進攻。\n\n[accent]數字編號地區[],如同這一個,不是完成戰役的必要條件。 +hint.presetDifficulty = 此地區為[scarlet]高危險等級[]區域。\n[accent]不建議[]在準備好科技和資源以前發射至此區域。 hint.coreIncinerate = 當任一物品的核心庫存滿了後,後續進入的同種資源會被[accent]銷毀[]。 hint.coopCampaign = 遊玩[accent]多人合作戰役[]時,同地圖所生產的資源皆會被送入[accent]自己的地區[]。\n\n任何新科技也會單向同步到自己的科技。 @@ -1603,7 +1614,7 @@ unit.omura.description = 對敵人發射遠程穿透型砲彈。建造曳光戰 unit.alpha.description = 抵禦敵軍對核心:碎片的攻擊。建造建築物。 unit.beta.description = 抵禦敵軍對核心:基地的攻擊。建造建築物。 unit.gamma.description = 抵禦敵軍對核心:核子的攻擊。建造建築物。 -unit.retusa.description = 布置水雷。修復友方單位。 +unit.retusa.description = 對周遭敵人發射追蹤魚雷。修復友方單位。 unit.oxynoe.description = 射出帶回復建築的火焰。具小型方陣炮。 unit.cyerce.description = 發射追蹤集束飛彈。修復友方單位。 unit.aegires.description = 電擊所有在能量場內的敵方單位、建築。修復友方單位。 diff --git a/core/assets/contributors b/core/assets/contributors index 2dd89085a9..85c23f7c7d 100644 --- a/core/assets/contributors +++ b/core/assets/contributors @@ -128,4 +128,5 @@ SAMBUYYA genNAowl TranquillyUnpleasant Darkness6030 -hortiSquash \ No newline at end of file +hortiSquash +King-BR diff --git a/core/src/mindustry/async/PhysicsProcess.java b/core/src/mindustry/async/PhysicsProcess.java index c62281802c..4d7bc59aae 100644 --- a/core/src/mindustry/async/PhysicsProcess.java +++ b/core/src/mindustry/async/PhysicsProcess.java @@ -38,7 +38,7 @@ public class PhysicsProcess implements AsyncProcess{ //find Unit without bodies and assign them for(Unit entity : group){ - if(entity.type == null) continue; + if(entity == null || entity.type == null) continue; if(entity.physref == null){ PhysicsBody body = new PhysicsBody(); diff --git a/core/src/mindustry/graphics/Pixelator.java b/core/src/mindustry/graphics/Pixelator.java index 7d40dc8ff5..12eed4e255 100644 --- a/core/src/mindustry/graphics/Pixelator.java +++ b/core/src/mindustry/graphics/Pixelator.java @@ -5,6 +5,7 @@ import arc.graphics.*; import arc.graphics.Texture.*; import arc.graphics.g2d.*; import arc.graphics.gl.*; +import arc.math.*; import arc.util.*; import static arc.Core.*; @@ -35,6 +36,8 @@ public class Pixelator implements Disposable{ w = (int)(Core.camera.width * renderer.landScale() / renderer.getScale()); h = (int)(Core.camera.height * renderer.landScale() / renderer.getScale()); } + w = Mathf.clamp(w, 2, graphics.getWidth()); + h = Mathf.clamp(h, 2, graphics.getHeight()); buffer.resize(w, h); diff --git a/core/src/mindustry/graphics/g3d/PlanetGrid.java b/core/src/mindustry/graphics/g3d/PlanetGrid.java index 1282b38d7c..993ca34c25 100644 --- a/core/src/mindustry/graphics/g3d/PlanetGrid.java +++ b/core/src/mindustry/graphics/g3d/PlanetGrid.java @@ -210,7 +210,7 @@ public class PlanetGrid{ static int tileCount(int size){ return 10 * Mathf.pow(3, size) + 2; - }/// + } static int cornerCount(int size){ return 20 * Mathf.pow(3, size); diff --git a/core/src/mindustry/type/Weapon.java b/core/src/mindustry/type/Weapon.java index dc83c9282f..5d7ca4fcc4 100644 --- a/core/src/mindustry/type/Weapon.java +++ b/core/src/mindustry/type/Weapon.java @@ -97,6 +97,8 @@ public class Weapon implements Cloneable{ public boolean parentizeEffects; /** internal value used for alternation - do not change! */ public int otherSide = -1; + /** draw Z offset relative to the default value */ + public float layerOffset = 0f; /** sound used for shooting */ public Sound shootSound = Sounds.pew; /** sound used for weapons that have a delay */ @@ -155,12 +157,16 @@ public class Weapon implements Cloneable{ Draw.rect(outlineRegion, wx, wy, outlineRegion.width * Draw.scl * -Mathf.sign(flipSprite), - region.height * Draw.scl, + outlineRegion.height * Draw.scl, weaponRotation); } } public void draw(Unit unit, WeaponMount mount){ + //apply layer offset, roll it back at the end + float z = Draw.z(); + Draw.z(z + layerOffset); + float rotation = unit.rotation - 90, weaponRotation = rotation + (rotate ? mount.rotation : 0), @@ -171,12 +177,8 @@ public class Weapon implements Cloneable{ Drawf.shadow(wx, wy, shadow); } - if(outlineRegion.found() && top){ - Draw.rect(outlineRegion, - wx, wy, - outlineRegion.width * Draw.scl * -Mathf.sign(flipSprite), - region.height * Draw.scl, - weaponRotation); + if(top){ + drawOutline(unit, mount); } Draw.rect(region, @@ -196,6 +198,8 @@ public class Weapon implements Cloneable{ Draw.blend(); Draw.color(); } + + Draw.z(z); } public void update(Unit unit, WeaponMount mount){ diff --git a/core/src/mindustry/ui/dialogs/JoinDialog.java b/core/src/mindustry/ui/dialogs/JoinDialog.java index 501804f32e..377200c711 100644 --- a/core/src/mindustry/ui/dialogs/JoinDialog.java +++ b/core/src/mindustry/ui/dialogs/JoinDialog.java @@ -365,7 +365,8 @@ public class JoinDialog extends BaseDialog{ global.clear(); global.background(null); - for(ServerGroup group : defaultServers){ + for(int i = 0; i < defaultServers.size; i ++){ + ServerGroup group = defaultServers.get((i + defaultServers.size/2) % defaultServers.size); boolean hidden = group.hidden(); if(hidden && !showHidden){ continue; diff --git a/core/src/mindustry/ui/fragments/ChatFragment.java b/core/src/mindustry/ui/fragments/ChatFragment.java index 59026146c8..c7d2c174eb 100644 --- a/core/src/mindustry/ui/fragments/ChatFragment.java +++ b/core/src/mindustry/ui/fragments/ChatFragment.java @@ -257,6 +257,12 @@ public class ChatFragment extends Table{ return shown; } + /** @deprecated prefixes are ignored now, just add raw messages */ + @Deprecated + public void addMessage(String pointless, String message){ + addMessage(message); + } + public void addMessage(String message){ if(message == null) return; messages.insert(0, message); diff --git a/core/src/mindustry/world/Block.java b/core/src/mindustry/world/Block.java index 70c682819f..0327c36ab0 100644 --- a/core/src/mindustry/world/Block.java +++ b/core/src/mindustry/world/Block.java @@ -265,6 +265,8 @@ public class Block extends UnlockableContent{ public boolean quickRotate = true; /** Main subclass. Non-anonymous. */ public @Nullable Class subclass; + /** Determines if this block gets a higher unloader priority. */ + public boolean highUnloadPriority = false; public float selectScroll; //scroll position for certain blocks public Prov buildType = null; //initialized later diff --git a/core/src/mindustry/world/blocks/distribution/StackConveyor.java b/core/src/mindustry/world/blocks/distribution/StackConveyor.java index 030319a447..d19004d243 100644 --- a/core/src/mindustry/world/blocks/distribution/StackConveyor.java +++ b/core/src/mindustry/world/blocks/distribution/StackConveyor.java @@ -42,6 +42,7 @@ public class StackConveyor extends Block implements Autotiler{ hasItems = true; itemCapacity = 10; conveyorPlacement = true; + highUnloadPriority = true; ambientSound = Sounds.conveyor; ambientSoundVolume = 0.004f; @@ -312,7 +313,7 @@ public class StackConveyor extends Block implements Autotiler{ @Override public boolean acceptItem(Building source, Item item){ - if(this == source) return true; //player threw items + if(this == source) return items.total() < itemCapacity && (!items.any() || items.has(item)); //player threw items if(cooldown > recharge - 1f) return false; //still cooling down return !((state != stateLoad) //not a loading dock || (items.any() && !items.has(item)) //incompatible items diff --git a/core/src/mindustry/world/blocks/payloads/PayloadLoader.java b/core/src/mindustry/world/blocks/payloads/PayloadLoader.java index 67b826d55a..6f34af5b61 100644 --- a/core/src/mindustry/world/blocks/payloads/PayloadLoader.java +++ b/core/src/mindustry/world/blocks/payloads/PayloadLoader.java @@ -160,8 +160,8 @@ public class PayloadLoader extends PayloadBlock{ public boolean shouldExport(){ return payload != null && ( exporting || - (payload.block().hasLiquids && payload.build.liquids.total() >= payload.block().liquidCapacity - 0.001f) || - (payload.block().hasItems && payload.block().separateItemCapacity && content.items().contains(i -> payload.build.items.get(i) >= payload.block().itemCapacity))); + (payload.block().hasLiquids && liquids.total() >= 0.1f && payload.build.liquids.total() >= payload.block().liquidCapacity - 0.001f) || + (payload.block().hasItems && items.any() && payload.block().separateItemCapacity && content.items().contains(i -> payload.build.items.get(i) >= payload.block().itemCapacity))); } @Override diff --git a/core/src/mindustry/world/blocks/storage/StorageBlock.java b/core/src/mindustry/world/blocks/storage/StorageBlock.java index 01b50b10bf..9b0d482153 100644 --- a/core/src/mindustry/world/blocks/storage/StorageBlock.java +++ b/core/src/mindustry/world/blocks/storage/StorageBlock.java @@ -25,6 +25,7 @@ public class StorageBlock extends Block{ flags = EnumSet.of(BlockFlag.storage); allowResupply = true; envEnabled = Env.any; + highUnloadPriority = true; } @Override diff --git a/core/src/mindustry/world/blocks/storage/Unloader.java b/core/src/mindustry/world/blocks/storage/Unloader.java index 3e5561e617..abd4b4a99c 100644 --- a/core/src/mindustry/world/blocks/storage/Unloader.java +++ b/core/src/mindustry/world/blocks/storage/Unloader.java @@ -85,8 +85,9 @@ public class Unloader extends Block{ if(sortItem != null){ item = sortItem; - for(int pos = 0; pos < proximity.size; pos++){ - var other = proximity.get(pos); + for(int j = 0; j < proximity.size; j++){ + int pos = (offset + j) % proximity.size; + var other = proximity.get(j); boolean interactable = other.interactable(team); //set the stats of all buildings in possibleBlocks @@ -105,8 +106,9 @@ public class Unloader extends Block{ boolean isDistinct = false; Item possibleItem = content.item(total); - for(int pos = 0; pos < proximity.size; pos++){ - var other = proximity.get(pos); + for(int j = 0; j < proximity.size; j++){ + int pos = (offset + j) % proximity.size; + var other = proximity.get(j); boolean interactable = other.interactable(team); //set the stats of all buildings in possibleBlocks while we are at it @@ -136,13 +138,11 @@ public class Unloader extends Block{ pb.loadFactor = (other.getMaximumAccepted(item) == 0) || (other.items == null) ? 0 : other.items.get(item) / (float)other.getMaximumAccepted(item); } - //sort so it gives full priority to blocks that can give but not receive (mainly plast and storage), and then by load - possibleBlocks.sort((e1, e2) -> { - // TODO: instead of canLoad it should be ((instance of Storage) || (is it a plast belt i can unload from)) - // otherwise a 100% full factory will get full priority over the storage/plast, barely an issue but still wasting trades and thus speed - int canLoad = Boolean.compare(e2.canLoad, e1.canLoad); - return (canLoad != 0) ? canLoad : Float.compare(e1.loadFactor, e2.loadFactor); - }); + //sort so it gives full priority to blocks that can give but not receive (stackConveyors and Storage), and then by load + possibleBlocks.sort(Structs.comps( + Structs.comparingBool(e -> e.building.block.highUnloadPriority), + Structs.comparingFloat(e -> e.loadFactor) + )); ContainerStat dumpingFrom = null; ContainerStat dumpingTo = null; @@ -164,7 +164,7 @@ public class Unloader extends Block{ } //trade the items - if(dumpingFrom != null && dumpingTo != null && dumpingFrom.loadFactor != dumpingTo.loadFactor){ + if(dumpingFrom != null && dumpingTo != null && (dumpingFrom.loadFactor != dumpingTo.loadFactor || dumpingFrom.building.block.highUnloadPriority)){ dumpingTo.building.handleItem(this, item); dumpingFrom.building.removeStack(item, 1); any = true; @@ -233,4 +233,4 @@ public class Unloader extends Block{ sortItem = id == -1 ? null : content.items().get(id); } } -} \ No newline at end of file +} diff --git a/servers_v6.json b/servers_v6.json index 5b5f51cf97..39130c65cd 100644 --- a/servers_v6.json +++ b/servers_v6.json @@ -1,11 +1,15 @@ [ + { + "name": "Mindustry Central", + "address": ["n2.mindustry.me:4019", "mindustry.me:2034", "mindustry.me:2035"] + }, { "name": "RCM", "address": ["185.104.248.61", "easyplay.su"] }, { - "name": "SMokeOfAnarchy.duckdns.org", - "address": ["smokeofanarchy.duckdns.org:6853"] + "name": "SkaarjDustry", + "address": ["skaarjproject.duckdns.org"] }, { "name": "{AA}", diff --git a/servers_v7.json b/servers_v7.json index bb1d766baa..9da1fdac62 100644 --- a/servers_v7.json +++ b/servers_v7.json @@ -1,4 +1,8 @@ [ + { + "name": "Mindustry Central", + "address": ["n2.mindustry.me:4019", "mindustry.me:2034", "mindustry.me:2035"] + }, { "name": "mindustry.pl", "address": ["0.baseduser.eu.org:6000", "0.baseduser.eu.org:6666", "0.baseduser.eu.org:6966"] @@ -59,13 +63,17 @@ "name": "Phoenix Network", "address": ["172.104.253.198"] }, + { + "name": "Xpdustry", + "address": ["xpdustry.fr:7000"] + }, { "name": "Pandorum", "address": ["pandorum.su:5018", "pandorum.su:5019", "pandorum.su:5020"] }, { "name": "MindustryBR", - "address": ["n2.mindustry.me:4003", "n2.mindustry.me:4005", "n2.mindustry.me:4008", "n2.mindustry.me:4009", "n2.mindustry.me:4010"] + "address": ["n2.mindustry.me:4003", "n2.mindustry.me:4005", "n2.mindustry.me:4008", "panel.mindustry.me:2005", "n2.mindustry.me:4010"] }, { "name": "LostDustry",