diff --git a/annotations/build.gradle b/annotations/build.gradle index d87bfffb22..d6f05e0038 100644 --- a/annotations/build.gradle +++ b/annotations/build.gradle @@ -1,5 +1,3 @@ -apply plugin: "java" - sourceCompatibility = 1.8 sourceSets.main.java.srcDirs = ["src/main/java/"] sourceSets.main.resources.srcDirs = ["src/main/resources/"] \ No newline at end of file diff --git a/build.gradle b/build.gradle index 6ea0740d35..224253c31c 100644 --- a/build.gradle +++ b/build.gradle @@ -166,17 +166,17 @@ project(":desktop"){ compileJava.options.compilerArgs += ["-XDignore.symbol.file"] dependencies{ - compile project(":core") - compile arcModule("natives:natives-box2d-desktop") - compile arcModule("natives:natives-desktop") - compile arcModule("natives:natives-freetype-desktop") + implementation project(":core") + implementation arcModule("natives:natives-box2d-desktop") + implementation arcModule("natives:natives-desktop") + implementation arcModule("natives:natives-freetype-desktop") - if(debugged()) compile project(":debug") + if(debugged()) implementation project(":debug") - compile "com.github.Anuken:steamworks4j:$steamworksVersion" + implementation "com.github.Anuken:steamworks4j:$steamworksVersion" - compile arcModule("backends:backend-sdl") - compile 'com.github.MinnDevelopment:java-discord-rpc:v2.0.1' + implementation arcModule("backends:backend-sdl") + implementation 'com.github.MinnDevelopment:java-discord-rpc:v2.0.1' } } @@ -202,19 +202,19 @@ project(":ios"){ } dependencies{ - compile project(":core") + implementation project(":core") - compile arcModule("natives:natives-ios") - compile arcModule("natives:natives-freetype-ios") - compile arcModule("natives:natives-box2d-ios") - compile arcModule("backends:backend-robovm") + implementation arcModule("natives:natives-ios") + implementation arcModule("natives:natives-freetype-ios") + implementation arcModule("natives:natives-box2d-ios") + implementation arcModule("backends:backend-robovm") compileOnly project(":annotations") } } project(":core"){ - apply plugin: "java" + apply plugin: "java-library" task preGen{ outputs.upToDateWhen{ false } @@ -247,15 +247,15 @@ project(":core"){ dependencies{ compileJava.dependsOn(preGen) - compile "org.lz4:lz4-java:1.4.1" - compile arcModule("arc-core") - compile arcModule("extensions:freetype") - compile arcModule("extensions:box2d") - compile arcModule("extensions:g3d") - compile arcModule("extensions:fx") - compile arcModule("extensions:arcnet") - compile "org.mozilla:rhino-runtime:1.7.12" - if(localArc() && debugged()) compile arcModule("extensions:recorder") + api "org.lz4:lz4-java:1.4.1" + api arcModule("arc-core") + api arcModule("extensions:freetype") + api arcModule("extensions:box2d") + api arcModule("extensions:g3d") + api arcModule("extensions:fx") + api arcModule("extensions:arcnet") + api "org.mozilla:rhino-runtime:1.7.12" + if(localArc() && debugged()) api arcModule("extensions:recorder") compileOnly project(":annotations") annotationProcessor project(":annotations") @@ -266,9 +266,9 @@ project(":server"){ apply plugin: "java" dependencies{ - compile project(":core") - compile arcModule("natives:natives-box2d-desktop") - compile arcModule("backends:backend-headless") + implementation project(":core") + implementation arcModule("natives:natives-box2d-desktop") + implementation arcModule("backends:backend-headless") } } @@ -279,9 +279,9 @@ project(":tests"){ testImplementation project(":core") testImplementation "org.junit.jupiter:junit-jupiter-params:5.3.1" testImplementation "org.junit.jupiter:junit-jupiter-api:5.3.1" + testImplementation arcModule("backends:backend-headless") + testImplementation arcModule("natives:natives-box2d-desktop") testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine:5.3.1" - compile arcModule("backends:backend-headless") - compile arcModule("natives:natives-box2d-desktop") } test{ @@ -297,31 +297,31 @@ project(":tools"){ apply plugin: "java" dependencies{ - compile project(":core") + implementation project(":core") - compile arcModule("natives:natives-desktop") - compile arcModule("natives:natives-freetype-desktop") - compile arcModule("natives:natives-box2d-desktop") - compile arcModule("backends:backend-headless") + implementation arcModule("natives:natives-desktop") + implementation arcModule("natives:natives-freetype-desktop") + implementation arcModule("natives:natives-box2d-desktop") + implementation arcModule("backends:backend-headless") - compile "org.reflections:reflections:0.9.12" + implementation "org.reflections:reflections:0.9.12" } } project(":annotations"){ - apply plugin: "java" + apply plugin: "java-library" dependencies{ - compile 'com.squareup:javapoet:1.12.1' - compile "com.github.Anuken.Arc:arc-core:$arcHash" - compile files("${System.getProperty('java.home')}/../lib/tools.jar") + implementation 'com.squareup:javapoet:1.12.1' + implementation "com.github.Anuken.Arc:arc-core:$arcHash" + implementation files("${System.getProperty('java.home')}/../lib/tools.jar") } } task deployAll{ task cleanDeployOutput{ doFirst{ - if("${getBuildVersion()}" == "custom build" || "${getBuildVersion()}" == "") throw new IllegalArgumentException("----\n\nSET A BUILD NUMBER FIRST!\n\n----") + if(getBuildVersion() == "custom build" || getBuildVersion() == "") throw new IllegalArgumentException("----\n\nSET A BUILD NUMBER FIRST!\n\n----") if(!project.hasProperty("release")) throw new IllegalArgumentException("----\n\nSET THE RELEASE PROJECT PROPERTY FIRST!\n\n----") delete{ diff --git a/core/assets-raw/sprites/blocks/liquid/pump-liquid.png b/core/assets-raw/sprites/blocks/liquid/mechanical-pump-liquid.png similarity index 100% rename from core/assets-raw/sprites/blocks/liquid/pump-liquid.png rename to core/assets-raw/sprites/blocks/liquid/mechanical-pump-liquid.png diff --git a/core/assets-raw/sprites/blocks/liquid/rotary-pump-liquid.png b/core/assets-raw/sprites/blocks/liquid/rotary-pump-liquid.png new file mode 100644 index 0000000000..141b9591fe Binary files /dev/null and b/core/assets-raw/sprites/blocks/liquid/rotary-pump-liquid.png differ diff --git a/core/assets-raw/sprites/blocks/liquid/thermal-pump-liquid.png b/core/assets-raw/sprites/blocks/liquid/thermal-pump-liquid.png new file mode 100644 index 0000000000..141b9591fe Binary files /dev/null and b/core/assets-raw/sprites/blocks/liquid/thermal-pump-liquid.png differ diff --git a/core/assets/bundles/bundle.properties b/core/assets/bundles/bundle.properties index 622c2fbc97..c6a53558e8 100644 --- a/core/assets/bundles/bundle.properties +++ b/core/assets/bundles/bundle.properties @@ -1,4 +1,4 @@ -credits.text = Created by [ROYAL]Anuken[] - [SKY]anukendev@gmail.com[] +credits.text = Created by [royal]Anuken[] - [sky]anukendev@gmail.com[] credits = Credits contributors = Translators and Contributors discord = Join the Mindustry Discord! @@ -101,7 +101,7 @@ feature.unsupported = Your device does not support this feature. mods.alphainfo = Keep in mind that mods are in alpha, and[scarlet] may be very buggy[].\nReport any issues you find to the Mindustry GitHub or Discord. mods.alpha = [accent](Alpha) mods = Mods -mods.none = [LIGHT_GRAY]No mods found! +mods.none = [lightgray]No mods found! mods.guide = Modding Guide mods.report = Report Bug mods.openfolder = Open Folder @@ -126,7 +126,7 @@ mod.import.file = Import File mod.import.github = Import From GitHub mod.item.remove = This item is part of the[accent] '{0}'[] mod. To remove it, uninstall that mod. mod.remove.confirm = This mod will be deleted. -mod.author = [LIGHT_GRAY]Author:[] {0} +mod.author = [lightgray]Author:[] {0} mod.missing = This save contains mods that you have recently updated or no longer have installed. Save corruption may occur. Are you sure you want to load it?\n[lightgray]Mods:\n{0} mod.preview.missing = Before publishing this mod in the workshop, you must add an image preview.\nPlace an image named[accent] preview.png[] into the mod's folder and try again. mod.folder.missing = Only mods in folder form can be published on the workshop.\nTo convert any mod into a folder, simply unzip its file into a folder and delete the old zip, then restart your game or reload your mods. @@ -291,8 +291,8 @@ builtin = Built-In map.delete.confirm = Are you sure you want to delete this map? This action cannot be undone! map.random = [accent]Random Map map.nospawn = This map does not have any cores for the player to spawn in! Add a[accent] orange[] core to this map in the editor. -map.nospawn.pvp = This map does not have any enemy cores for player to spawn into! Add[SCARLET] non-orange[] cores to this map in the editor. -map.nospawn.attack = This map does not have any enemy cores for player to attack! Add[SCARLET] red[] cores to this map in the editor. +map.nospawn.pvp = This map does not have any enemy cores for player to spawn into! Add[scarlet] non-orange[] cores to this map in the editor. +map.nospawn.attack = This map does not have any enemy cores for player to attack! Add[scarlet] red[] cores to this map in the editor. map.invalid = Error loading map: corrupted or invalid map file. workshop.update = Update Item workshop.error = Error fetching workshop details: {0} @@ -591,11 +591,11 @@ bar.poweramount = Power: {0} bar.poweroutput = Power Output: {0} bar.items = Items: {0} bar.capacity = Capacity: {0} +bar.units = Units: {0}/{1} bar.liquid = Liquid bar.heat = Heat bar.power = Power bar.progress = Build Progress -bar.spawned = Units: {0}/{1} bar.input = Input bar.output = Output @@ -714,7 +714,7 @@ keybind.toggle_block_status.name = Toggle Block Statuses keybind.move_x.name = Move X keybind.move_y.name = Move Y keybind.mouse_move.name = Follow Mouse -keybind.dash.name = Dash +keybind.boost.name = Boost keybind.schematic_select.name = Select Region keybind.schematic_menu.name = Schematic Menu keybind.schematic_flip_x.name = Flip Schematic X diff --git a/core/assets/bundles/bundle_be.properties b/core/assets/bundles/bundle_be.properties index a9e9518b11..348bea8ad4 100644 --- a/core/assets/bundles/bundle_be.properties +++ b/core/assets/bundles/bundle_be.properties @@ -1,4 +1,4 @@ -credits.text = Стваральнiк [ROYAL]Anuken[] — [SKY]anukendev@gmail.com[]\n\nЁсць недапрацоўкі ў перакладзе або хочаце знайсці саюзнікаў для сумеснай гульні?\nПішыце ў аф. [accent]discord-сервер Mindustry[] у канал [accent]#translations[].\n\nРэдактар і перакладчык на беларускую мову:\n[cyan]K[gray]evi[cyan]TV[gray]#9923 +credits.text = Стваральнiк [royal]Anuken[] — [sky]anukendev@gmail.com[]\n\nЁсць недапрацоўкі ў перакладзе або хочаце знайсці саюзнікаў для сумеснай гульні?\nПішыце ў аф. [accent]discord-сервер Mindustry[] у канал [accent]#translations[].\n\nРэдактар і перакладчык на беларускую мову:\n[cyan]K[gray]evi[cyan]TV[gray]#9923 credits = Аўтары contributors = Перакладчык discord = Далучайцеся да нашага Discord! @@ -101,7 +101,7 @@ feature.unsupported = Ваша прылада не падтрымлівае гэ mods.alphainfo = Майце на ўвазе, што мадыфікацыі знаходзяцца ў альфа-версіі і [scarlet]могуць утрымліваць шмат памылак[]. Дакладвайце аб любых праблемах, якія Вы знойдзеце ў Mindustry Github або Discord. mods.alpha = [accent](Альфа) mods = Мадыфікацыі -mods.none = [LIGHT_GRAY]Мадыфікацыі не знойдзены! +mods.none = [lightgray]Мадыфікацыі не знойдзены! mods.guide = Кіраўніцтва па модам mods.report = Паведаміць пра памылку mods.openfolder = Адкрыць тэчку з мадыфікацыямі @@ -126,7 +126,7 @@ mod.import.file = Import File mod.import.github = Імпартаваць мод з GitHub mod.item.remove = Гэты прадмет з’яўляецца часткай мадыфікацыі [accent]«{0}»[]. Каб выдаліць яго, выдаліце саму мадыфікацыю. mod.remove.confirm = Гэтая мадыфікацыя будзе выдалена. -mod.author = [LIGHT_GRAY]Аўтар:[] {0} +mod.author = [lightgray]Аўтар:[] {0} mod.missing = Гэта захаванне ўтрымлівае мадыфікацыю, якое вы нядаўна абнавілі ці яна больш не ўсталяваная. Можа здарыцца пашкоджанне захавання. Вы ўпэўненыя, што хочаце загрузіць яго?\n[lightgray]Мадыфікацыі:\n{0} mod.preview.missing = Перад публікацыяй гэтай мадыфікацыі ў майстэрні, вы павінны дадаць малюнак прадпрагляду.\nРазмесціце малюнак з імем[accent] preview.png[] у тэчцы мадыфікацыі і паспрабуйце зноў. mod.folder.missing = Мадыфікацыі могуць быць апублікаваныя ў майстэрні толькі ў выглядзе тэчкі.\nКаб канвертаваць любы мод у тэчку, проста выміце яго з архіва і выдаліце стары архіў .zip, затым перазапусціце гульню ці перазагрузіце мадыфікацыі. @@ -291,8 +291,8 @@ builtin = Убудаваная map.delete.confirm = Вы сапраўды жадаеце выдаліць гэтую карту? Гэта дзеянне не можа быць адменена! map.random = [accent]Выпадковая карта map.nospawn = Гэтая карта не мае ні аднаго ядра, у якім гулец можа з’явіцца! Дадайце[accent] аранжавае[] ядро на гэтую карту ў рэдактары. -map.nospawn.pvp = У гэтай карты няма варожых ядраў, у якіх гулец можа з’явіцца! Дадайце[SCARLET] не аранжавае[] ядро на гэтую карту ў рэдактары. -map.nospawn.attack = У гэтай карты няма варожых ядраў для нападу гульцом! Дадайце[SCARLET] ружовае[] ядро на гэтую карту ў рэдактары. +map.nospawn.pvp = У гэтай карты няма варожых ядраў, у якіх гулец можа з’явіцца! Дадайце[scarlet] не аранжавае[] ядро на гэтую карту ў рэдактары. +map.nospawn.attack = У гэтай карты няма варожых ядраў для нападу гульцом! Дадайце[scarlet] ружовае[] ядро на гэтую карту ў рэдактары. map.invalid = Памылка загрузкі карты: пашкоджаны або недапушчальны файл карты. workshop.update = Абнавіць змесціва workshop.error = Памылка загрузкі інфармацыі з Майстэрні: {0} @@ -761,7 +761,7 @@ mode.help.title = Апісанне рэжымаў mode.survival.name = Выжыванне mode.survival.description = Звычайны рэжым. Неабходна здабываць рэсурсы, а хвалі наступаюць аўтаматычна. \n[gray]Патрабуюцца пункту з’яўлення ворагаў на карце для гульні. mode.sandbox.name = Пясочніца -mode.sandbox.description = Бясконцыя рэсурсы і няма таймера хваль. [Gray]Можна самім выклікаць хвалю. +mode.sandbox.description = Бясконцыя рэсурсы і няма таймера хваль. [gray]Можна самім выклікаць хвалю. mode.editor.name = Рэдактар mode.pvp.name = PvP mode.pvp.description = Змагайцеся супраць іншых гульцоў. \n[gray]Для гульні патрабуецца як мінімум 2 ядра рознага колеру на карце. diff --git a/core/assets/bundles/bundle_cs.properties b/core/assets/bundles/bundle_cs.properties index 62a67c9b08..3e3f552169 100644 --- a/core/assets/bundles/bundle_cs.properties +++ b/core/assets/bundles/bundle_cs.properties @@ -1,4 +1,4 @@ -credits.text = Vytvořil [ROYAL]Anuken[] - [SKY]anukendev@gmail.com[] +credits.text = Vytvořil [royal]Anuken[] - [sky]anukendev@gmail.com[] credits = Titulky contributors = Překladatelé a sponzoři discord = Připoj se k Mindustry\nna Discord serveru! @@ -199,7 +199,7 @@ server.edit = Upravit server server.outdated = [crimson]Zastaralá verze serveru![] server.outdated.client = [crimson]Zastaralá verze klienta![] server.version = [gray]Verze: {0} {1}[] -server.custombuild = [yellow]Upravená verze hry[] +server.custombuild = [accent]Upravená verze hry[] confirmban = Jsi si jistý, že chceš zakázat tohoto hráče? confirmkick = Jsi si jistý, že chceš vykopnout tohoto hráče? confirmvotekick = Jsi si jistý, že chceš hlasovat pro vykopnutí tohoto hráče? @@ -291,8 +291,8 @@ builtin = Vestavěno map.delete.confirm = Jsi si jistý, že chceš tuto mapu smazat? Tato akce je nevratná! map.random = [accent]Náhodná mapa[] map.nospawn = Na této mapě nejsou jádra, u kterých by se mohli zrodit hráči. Přidej v editoru do této mapy aspoň jedno [accent]oranžové[] jádro. -map.nospawn.pvp = Tato mapa nemá nepřátelská jádra, u kterých by se mohli zrodit hráči. Přidej v editoru do této mapy aspoň jedno [SCARLET]neoranžové[] jádro. -map.nospawn.attack = Tato mapa nemá nepřátelská jádra, která by mohla být zničena. Přidej v editoru do této mapy aspoň jedno [SCARLET]červené[] jádro. +map.nospawn.pvp = Tato mapa nemá nepřátelská jádra, u kterých by se mohli zrodit hráči. Přidej v editoru do této mapy aspoň jedno [scarlet]neoranžové[] jádro. +map.nospawn.attack = Tato mapa nemá nepřátelská jádra, která by mohla být zničena. Přidej v editoru do této mapy aspoň jedno [scarlet]červené[] jádro. map.invalid = Chyba v načítání mapy: poškozený nebo neplatný soubor mapy. workshop.update = Aktualizovat položku workshop.error = Chyba při načítání podrobností z Workshopu na Steamu: {0} diff --git a/core/assets/bundles/bundle_de.properties b/core/assets/bundles/bundle_de.properties index d5741f0f11..ec25aa579a 100644 --- a/core/assets/bundles/bundle_de.properties +++ b/core/assets/bundles/bundle_de.properties @@ -1,4 +1,4 @@ -credits.text = Entwickelt von [ROYAL]Anuken[] - [SKY]anukendev@gmail.com[]\n\n[GRAY] +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! @@ -18,7 +18,7 @@ screenshot = Screenshot gespeichert unter {0} screenshot.invalid = Karte zu groß! Eventuell nicht ausreichend Arbeitsspeicher für Screenshot. gameover = Der Kern wurde zerstört. gameover.pvp = Das[accent] {0}[] Team ist siegreich! -highscore = [YELLOW]Neuer Highscore! +highscore = [accent]Neuer Highscore! copied = Kopiert. load.sound = Audio @@ -199,7 +199,7 @@ server.edit = Server bearbeiten server.outdated = [crimson]Veralteter Server![] server.outdated.client = [crimson]Veralteter Client![] server.version = [lightgray]Version: {0} -server.custombuild = [yellow]Benutzerdefinierter Build +server.custombuild = [accent]Benutzerdefinierter Build confirmban = Bist du sicher, dass du diesen Spieler verbannen möchtest? confirmkick = Bist du sicher, dass du diesen Spieler rauswerfen willst? confirmvotekick = Bist du sicher, dass du darüber abstimmen willst, diesen Spieler rauszuwerfen? @@ -290,9 +290,9 @@ custom = Benutzerdefiniert builtin = Enthalten 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 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.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 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ädigte oder ungültige Kartendatei. workshop.update = Objekt aktualisieren workshop.error = Fehler beim Laden von Workshop-Details: {0} diff --git a/core/assets/bundles/bundle_es.properties b/core/assets/bundles/bundle_es.properties index 67c4e81d36..2536c7d461 100644 --- a/core/assets/bundles/bundle_es.properties +++ b/core/assets/bundles/bundle_es.properties @@ -1,4 +1,4 @@ -credits.text = Creado por [ROYAL]Anuken[] - [SKY]anukendev@gmail.com[] +credits.text = Creado por [royal]Anuken[] - [sky]anukendev@gmail.com[] credits = Créditos contributors = Traductores y Contribuidores discord = ¡Únete al Discord de Mindustry! @@ -87,7 +87,7 @@ save.quit = Guardar & Salir maps = Mapas maps.browse = Navegar por los Mapas continue = Continuar -maps.none = [LIGHT_GRAY]¡No se han encontrado mapas! +maps.none = [lightgray]¡No se han encontrado mapas! invalid = Invalido pickcolor = Escoge Color preparingconfig = Preparando Configuración @@ -101,7 +101,7 @@ feature.unsupported = Tu dispositivo no soporta esta función. mods.alphainfo = Ten en cuenta que los mods estan en versión Alpha, y[scarlet] pueden tener varios problemas[].\nReporta cualquier error que encuentres en la página de GitHub de Mindustry o Discord. mods.alpha = [accent](Alpha) mods = Mods -mods.none = [LIGHT_GRAY]No se encontraron Mods! +mods.none = [lightgray]No se encontraron Mods! mods.guide = Guia de Modding mods.report = Reportar Error mods.openfolder = Abrir carpeta de mods @@ -126,7 +126,7 @@ mod.import.file = Import File mod.import.github = Importar Mod de Github mod.item.remove = Este objeto es parte del[accent] '{0}'[] mod. Para eliminarlo, desinstala ese mod. mod.remove.confirm = Este mod va a ser eliminado.\n¿Quieres continuar? -mod.author = [LIGHT_GRAY]Autor:[] {0} +mod.author = [lightgray]Autor:[] {0} mod.missing = Esta partida guardada usa mods que has actualizado recientemente o que ya no has instalado. Se puede corromper la partida guardada. ¿Estás seguro de que quieres cargarla?\n[lightgray]Mods:\n{0} mod.preview.missing = Antes de publicar este mod en el Steam Workshop, debe añadir una imagen de vista previa.\nAñada una imagen con nombre[accent] preview.png[] en la carpeta del mod e intente nuevamente. mod.folder.missing = Solo los mods en forma de carpeta se pueden publicar en el Steam Workshop.\nPara convertir cualquier mod en una carpeta, simplemente descomprima su archivo a una carpeta y elimine el zip anterior, luego reinicie su juego o vuelva a cargar sus mods. @@ -139,9 +139,9 @@ filename = Nombre del archivo: unlocked = ¡Nuevo Bloque Desbloqueado! completed = [accent]Completado techtree = Árbol de Tecnologías -research.list = [LIGHT_GRAY]investigación: +research.list = [lightgray]investigación: research = Investigación -researched = [LIGHT_GRAY]{0} investigado. +researched = [lightgray]{0} investigado. players = {0} jugadores online players.single = {0} jugador online players.search = buscar @@ -164,8 +164,8 @@ server.kicked.customClient = Este servidor no soporta versiones personalizadas. server.kicked.gameover = ¡Fin del juego! server.kicked.serverRestarting = Se esta reiniciando el servidor. server.versions = Tu versión:[accent] {0}[]\nVersión del servidor:[accent] {1}[] -host.info = El botón [accent]host[] crea un servidor en el puerto [scarlet]6567[]. \nCualquier persona en la misma [LIGHT_GRAY]wifi o red local[] debería poder ver tu servidor en la lista de servidores.\n\nSi quieres que cualquier persona se pueda conectar de cualquier lugar por IP, la [accent]asignación de puertos[] es requerida.\n\n[LIGHT_GRAY]Nota: Si alguien experimenta problemas conectándose a tu partida LAN, asegúrate de permitir a Mindustry acceso a tu red local mediante la configuración de tu firewall. -join.info = Aquí, puedes escribir la [accent]IP de un server[] para conectarte, o descubrir servidores de [accent]red local[] para conectarte.\nLAN y WAN es soportado para jugar en multijugador.\n\n[LIGHT_GRAY]Nota: No hay una lista automática global de servidores; si quieres conectarte por IP, tendrás que preguntarle al anfitrión por la IP. +host.info = El botón [accent]host[] crea un servidor en el puerto [scarlet]6567[]. \nCualquier persona en la misma [lightgray]wifi o red local[] debería poder ver tu servidor en la lista de servidores.\n\nSi quieres que cualquier persona se pueda conectar de cualquier lugar por IP, la [accent]asignación de puertos[] es requerida.\n\n[lightgray]Nota: Si alguien experimenta problemas conectándose a tu partida LAN, asegúrate de permitir a Mindustry acceso a tu red local mediante la configuración de tu firewall. +join.info = Aquí, puedes escribir la [accent]IP de un server[] para conectarte, o descubrir servidores de [accent]red local[] para conectarte.\nLAN y WAN es soportado para jugar en multijugador.\n\n[lightgray]Nota: No hay una lista automática global de servidores; si quieres conectarte por IP, tendrás que preguntarle al anfitrión por la IP. hostserver = Crear Servidor invitefriends = Invitar Amigos hostserver.mobile = Crear\nJuego @@ -199,7 +199,7 @@ server.edit = Editar Servidor server.outdated = [crimson]¡Servidor desactualizado![] server.outdated.client = [crimson]¡Cliente desactualizado![] server.version = [lightgray]Versión: {0} -server.custombuild = [yellow]Versión personalizada +server.custombuild = [accent]Versión personalizada confirmban = ¿Estás seguro de querer banear este jugador? confirmkick = ¿Estás seguro de querer expulsar este jugador? confirmvotekick = ¿Estás seguro de querer hechar por votación a este jugador? @@ -278,11 +278,11 @@ pausebuilding = [accent][[{0}][] para pausar la construcción resumebuilding = [scarlet][[{0}][] para resumir la construcción wave = [accent]Oleada {0} wave.waiting = Oleada en {0} -wave.waveInProgress = [LIGHT_GRAY]Oleada en progreso +wave.waveInProgress = [lightgray]Oleada en progreso waiting = Esperando... waiting.players = Esperando jugadores... -wave.enemies = [LIGHT_GRAY]{0} Enemigos Restantes -wave.enemy = [LIGHT_GRAY]{0} Enemigo Restante +wave.enemies = [lightgray]{0} Enemigos Restantes +wave.enemy = [lightgray]{0} Enemigo Restante loadimage = Cargar Imagen saveimage = Guardar Imagen unknown = Desconocido @@ -291,8 +291,8 @@ builtin = Incorporado map.delete.confirm = ¿Estás seguro de querer borrar este mapa? ¡Recuerda que está acción no se puede deshacer! map.random = [accent]Mapa Aleatorio map.nospawn = ¡Este mapa no tiene ningún núcleo en el cual pueda aparecer el jugador! Agrega un núcleo[accent] orange[] [white]al mapa con el editor. -map.nospawn.pvp = ¡Este mapa no tiene ningún núcleo enemigo para que aparezca el jugador! Añade un núcleo[SCARLET] red[] a este mapa en el editor. -map.nospawn.attack = ¡Este mapa no tiene núcleos para que el jugador ataque! Añade núcleos[SCARLET] red[] a este mapa en el editor. +map.nospawn.pvp = ¡Este mapa no tiene ningún núcleo enemigo para que aparezca el jugador! Añade un núcleo[scarlet] red[] a este mapa en el editor. +map.nospawn.attack = ¡Este mapa no tiene núcleos para que el jugador ataque! Añade núcleos[scarlet] red[] a este mapa en el editor. map.invalid = Error cargando el mapa: archivo corrupto o inválido. workshop.update = Actualizar artículo workshop.error = Error al obtener detalles del Steam Workshop: {0} @@ -337,7 +337,7 @@ waves.load = Cargar del Portapapeles waves.invalid = Oleadas inválidaas en el portapapeles. waves.copied = Oleadas copiadas. waves.none = No hay enemigos definidos.\nNótese que las listas de oleadas vacías se sustituirán por la lista por defecto. -editor.default = [LIGHT_GRAY] +editor.default = [lightgray] details = Detalles... edit = Editar... editor.name = Nombre: @@ -399,7 +399,7 @@ toolmode.fillteams.description = Llena equipos en vez de bloques. toolmode.drawteams = Dibujar Equipos toolmode.drawteams.description = Dibuja equipos en vez de bloques. -filters.empty = [LIGHT_GRAY]¡No hay filtros! Añade uno con el botón de abajo. +filters.empty = [lightgray]¡No hay filtros! Añade uno con el botón de abajo. filter.distort = Distorsionar filter.noise = Ruido filter.enemyspawn = Enemy Spawn Select @@ -453,15 +453,15 @@ mapeditor = Editor de Mapa abandon = Abandonar abandon.text = Esta zona y sus recursos se perderán ante el enemigo. locked = Bloqueado -complete = [LIGHT_GRAY]Completado: +complete = [lightgray]Completado: requirement.wave = Alcanzar la oleada {0} en {1} requirement.core = Destruir el núcleo enemigo en {0} requirement.unlock = Desbloquear {0} -resume = Continuar Zona:\n[LIGHT_GRAY]{0} -bestwave = [LIGHT_GRAY]Récord: {0} +resume = Continuar Zona:\n[lightgray]{0} +bestwave = [lightgray]Récord: {0} launch = Lanzar launch.title = Lanzamiento Exitoso -launch.next = [LIGHT_GRAY]próxima oportunidad en la oleada {0} +launch.next = [lightgray]próxima oportunidad en la oleada {0} launch.unable2 = [scarlet]No se puede LANZAR.[] launch.confirm = Esto lanzará todos los recursos al núcleo.\nNo podrás volver a esta base. launch.skip.confirm = Si saltas la oleada ahora, no podrás lanzar recursos hasta unas oleadas después. @@ -469,9 +469,9 @@ uncover = Descubrir configure = Configurar carga inicial bannedblocks = Bloques prohibidos addall = Añadir todo -configure.locked = [LIGHT_GRAY]Para configurar la carga inicial: {0}. +configure.locked = [lightgray]Para configurar la carga inicial: {0}. configure.invalid = La cantidad debe estar entre 0 y {0}. -zone.unlocked = [LIGHT_GRAY]{0} desbloqueado. +zone.unlocked = [lightgray]{0} desbloqueado. zone.requirement.complete = Oleada {0} alcanzada:\nrequerimientos de la zona {1} cumplidos. zone.config.unlocked = Carga desbloqueada:[lightgray]\n{0} zone.resources = Recursos Detectados: @@ -548,7 +548,7 @@ blocks.output = Salida blocks.booster = Potenciador blocks.tiles = Tiles requeridos blocks.affinities = Afinidades -block.unknown = [LIGHT_GRAY]??? +block.unknown = [lightgray]??? blocks.powercapacity = Capacidad de Energía blocks.powershot = Energía/Disparo blocks.damage = Daño @@ -641,7 +641,7 @@ setting.flow.name = Display Resource Flow Rate[scarlet] (experimental) setting.buildautopause.name = Auto-pausar construcción setting.animatedwater.name = Agua Animada setting.animatedshields.name = Escudos Animados -setting.antialias.name = Antialias[LIGHT_GRAY] (necesita reiniciar)[] +setting.antialias.name = Antialias[lightgray] (necesita reiniciar)[] setting.playerindicators.name = Player Indicators setting.indicators.name = Indicadores de Aliados setting.autotarget.name = Auto apuntado @@ -670,11 +670,11 @@ setting.seconds = {0} Segundos setting.blockselecttimeout.name = Tiempo de espera de selección de bloque setting.milliseconds = {0} milisegundos setting.fullscreen.name = Pantalla Completa -setting.borderlesswindow.name = Ventana sin Bordes[LIGHT_GRAY] (podría requerir un reinicio) +setting.borderlesswindow.name = Ventana sin Bordes[lightgray] (podría requerir un reinicio) setting.fps.name = Mostrar FPS setting.blockselectkeys.name = Mostrar teclas de selección de bloque setting.vsync.name = Vsync (Limita los fps a los Hz de tu pantalla) -setting.pixelate.name = Pixelar [LIGHT_GRAY](podría reducir el rendimiento) +setting.pixelate.name = Pixelar [lightgray](podría reducir el rendimiento) setting.minimap.name = Mostrar Minimapa setting.position.name = Mostrar posición del jugador. setting.musicvol.name = Volumen de la Música @@ -782,14 +782,14 @@ rules.blockhealthmultiplier = Multiplicador de salud de bloque rules.playerhealthmultiplier = Multiplicador de la vida del jugador rules.playerdamagemultiplier = Multiplicador del daño del jugador rules.unitdamagemultiplier = Multiplicador del daño de unidades -rules.enemycorebuildradius = Radio de No-Construcción del Núcleo Enemigo:[LIGHT_GRAY] (casillas) -rules.respawntime = Tiempo de reaparición:[LIGHT_GRAY] (seg) -rules.wavespacing = Tiempo entre oleadas:[LIGHT_GRAY] (seg) +rules.enemycorebuildradius = Radio de No-Construcción del Núcleo Enemigo:[lightgray] (casillas) +rules.respawntime = Tiempo de reaparición:[lightgray] (seg) +rules.wavespacing = Tiempo entre oleadas:[lightgray] (seg) rules.buildcostmultiplier = Multiplicador de coste de construcción rules.buildspeedmultiplier = Multiplicador de velocidad de construcción rules.deconstructrefundmultiplier = Multiplicador de Devolución de Desconstrucción rules.waitForWaveToEnd = Las oleadas esperan a los enemigos -rules.dropzoneradius = Radio de zona de caída:[LIGHT_GRAY] (casillas) +rules.dropzoneradius = Radio de zona de caída:[lightgray] (casillas) rules.respawns = Reapariciones máximas por oleada rules.limitedRespawns = Límite de reapariciones rules.title.waves = Oleadas @@ -828,20 +828,20 @@ liquid.slag.name = Fundido liquid.oil.name = Petróleo liquid.cryofluid.name = Criogénico item.corestorable = [lightgray]Guardable en el núcleo: {0} -item.explosiveness = [LIGHT_GRAY]Explosividad: {0} -item.flammability = [LIGHT_GRAY]Inflamabilidad: {0} -item.radioactivity = [LIGHT_GRAY]Radioactividad: {0} -unit.health = [LIGHT_GRAY]Vida: {0} -unit.speed = [LIGHT_GRAY]Velocidad: {0} +item.explosiveness = [lightgray]Explosividad: {0} +item.flammability = [lightgray]Inflamabilidad: {0} +item.radioactivity = [lightgray]Radioactividad: {0} +unit.health = [lightgray]Vida: {0} +unit.speed = [lightgray]Velocidad: {0} unit.weapon = [lightgray]Weapon: {0} unit.itemcapacity = [lightgray]Item Capacity: {0} unit.minespeed = [lightgray]Mining Speed: {0}% unit.minepower = [lightgray]Mining Power: {0} unit.ability = [lightgray]Ability: {0} unit.buildspeed = [lightgray]Building Speed: {0}% -liquid.heatcapacity = [LIGHT_GRAY]Capacidad Térmica: {0} -liquid.viscosity = [LIGHT_GRAY]Viscosidad: {0} -liquid.temperature = [LIGHT_GRAY]Temperatura: {0} +liquid.heatcapacity = [lightgray]Capacidad Térmica: {0} +liquid.viscosity = [lightgray]Viscosidad: {0} +liquid.temperature = [lightgray]Temperatura: {0} block.cliff.name = Cliff block.sand-boulder.name = Piedra de Arena @@ -871,7 +871,7 @@ block.thruster.name = Propulsor block.kiln.name = Horno block.graphite-press.name = Prensa de grafito block.multi-press.name = Multi-Prensa -block.constructing = {0}\n[LIGHT_GRAY](Construyendo) +block.constructing = {0}\n[lightgray](Construyendo) block.spawn.name = Punto de generación block.core-shard.name = Núcleo: Fragmento block.core-foundation.name = Núcleo: Fundación @@ -1065,7 +1065,7 @@ tutorial.drill.mobile = Minar manualmente no es muy eficiente.\nLos [accent]Tala tutorial.blockinfo = Cada bloque tiene diferentes estadísticas. Cada taladro solo puede minar ciertos minerales.\nPara comprobar la información y estadísticas de un bloque,[accent] toca el botón "?" mientras lo tienes seleccionado en el menú de construcción.[]\n\n[accent]Accede a las estadísticas del Taladro Mecánico ahora.[] tutorial.conveyor = Las [accent]Cintas Transportadoras[] se usan para transportar recursos al núcleo.\nConstruye una línea de transportadores del taladro al núcleo. tutorial.conveyor.mobile = Las [accent]Cintas Transportadoras[] se usan para transportar recursos al núcleo.\nConstruye una línea de transportadores del taladro al núcleo.\n[accent] Construye una línea manteniendo el dedo unos segundos[] y arrastrando hacia una dirección.\n\n[accet]{0}/{1} cintas colocadas en línea\n[ccent]]0/1 recursos transportados. -tutorial.turret = Debes construir estructuras defensivas para repeler al [LIGHT_GRAY]enemigo[].\nConstruye una torreta dúo cerca de tu base. +tutorial.turret = Debes construir estructuras defensivas para repeler al [lightgray]enemigo[].\nConstruye una torreta dúo cerca de tu base. tutorial.drillturret = Los dúos requieren[accent] munición de cobre[]para disparar.\nColoca un taladro junto a la torre para darle cobre. \nTambien puedes hacer una línea de transportadores desde el taladro hasta el dúo. tutorial.pause = Durante la batalla, puedes[accent]pausar el juego.[]\nPuedes dejar estructuras en cola mientras pausas.\n\n[accent]Pulsa Espacio para pausar. tutorial.pause.mobile = Durante la batalla, puedes[accent] pausar el juego.[]\nPuedes dejar estructuras en cola mientras pausas.\n\n[accent]Pulsa este boton de arriba a la izquierda para pausar. @@ -1075,7 +1075,7 @@ tutorial.breaking = Muchas veces hace falta destruir bloques.\n[accent]Mantén e tutorial.breaking.mobile = Muchas veces hace falta destruir bloques.\n[accent]Selecciona el modo de desonstrucción[], después toca un bloque para comenzar a romperlo.\nDestruye un área manteniendo tu dedo algunos segundos[] y arrastrando hacia una dirección.\nUsa el botón de confirmación para confirmar la destrucción.\n\n[accent]Destruye todos los bloques de chatarra de la izquierda de tu núcleo usando la selección de área.[] tutorial.withdraw = En algunas situaciones, es necesario coger recursos directamente de bloques.\nPara hacer esto, [accent]toca un bloque[] con recursos en él, después [accent]toca el recurso[] en el inventario.\nSe pueden sacar múltiples recursos [accent]tocando y manteniendo[].\n\n[accent]Saca algo de cobre del núcleo.[] tutorial.deposit = Deposita recursos en bloques arrastrándolos de tu nave al bloque de destino.\n\n[accent]Deposita tu cobre otra vez al núcleo.[] -tutorial.waves = El[LIGHT_GRAY] enemigo[] se acerca.\n\nDefiende tu núcleo por 2 oleadas. Construye más torretas y taladros. Mina más cobre. +tutorial.waves = El[lightgray] enemigo[] se acerca.\n\nDefiende tu núcleo por 2 oleadas. Construye más torretas y taladros. Mina más cobre. tutorial.waves.mobile = El[lightgray] enemigo[] se acerca.\n\nDefiende tu núcleo por 2 oleadas. Tu nave disparará automáticamente a los enemigos.\nConstruye más torretas y taladros. Mina más cobre. tutorial.launch = Una vez llegues a cierta oleada, podrás[accent]lanzar el núcleo[], dejando atrás tus defensas y los recursos en tu núcleo.[]\nEstos recursos pueden ser usados para investigar nueva tecnología.\n\n[accent]Pulsa el botón de lanzamiento. @@ -1157,7 +1157,7 @@ block.titanium-conveyor.description = Bloque de transporte avanzado. Mueve objet block.plastanium-conveyor.description = Mueve ítems por lotes.\nAcepta ítems por detrás, y los descarga en tres direcciones hacia el frente, como un enrutador. block.armored-conveyor.description = Mueve items a la misma veolcidad que una cinta de titanio, pero tiene mas defensa. No acepta entradas por los lados a menos que sean lineas transportadoras. block.junction.description = Actúa como puente para dos transportadores que se cruzan. Útil en situaciones con dos diferentes transportadores transportando diferentes materiales a diferentes lugares. -block.bridge-conveyor.description = Bloque avanado de transporte. Puede transportar objetos por encima hasta 3 casillas de cualquier terreno o construcción. +block.bridge-conveyor.description = Bloque avanzado de transporte. Puede transportar objetos por encima hasta 3 casillas de cualquier terreno o construcción. block.phase-conveyor.description = Bloque de transporte avanzado. Usa energía para transportar objetos a otro transportador de fase conectado a través de varias casillas. block.sorter.description = Clasifica objetos. Si un objeto es igual al seleccionado, pasará al frente. Si no, el objeto saldrá por la izquierda y la derecha. block.inverted-sorter.description = Procesa elementos como un clasificador estándar, pero en su lugar pasa elementos seleccionados a los lados. @@ -1183,7 +1183,7 @@ block.surge-tower.description = Un nodo con un gran alcance con menos conexiones block.diode.description = La energía de la batería puede fluir a través de este bloque en una sola dirección, pero solo si el otro lado tiene menos energía almacenada. block.battery.description = Guarda energía cuando hay abundancia y proporciona energía cuando hay escasez de energía mientras la batería tenga energía. block.battery-large.description = Almacena mucha más energía que una batería normal. -block.combustion-generator.description = Genera energía quemando aceite o matteriales inflamables. +block.combustion-generator.description = Genera energía quemando aceite o materiales inflamables. block.thermal-generator.description = Genera una gran cantidad de energía con la lava. block.turbine-generator.description = Más eficiente que un generador de combustión, pero requiere agua adicional. block.differential-generator.description = Genera grandes cantidades de energía. Utiliza la diferencia de temperatura entre el fluído criogenico y la quema de piratita. @@ -1202,8 +1202,8 @@ block.oil-extractor.description = Usa grandes cantidades de energía, arena y ag block.core-shard.description = La primera iteración de la cápsula del núcleo. Una vez destruido, todo el contacto con la región es perdido. No permitas que esto ocurra. block.core-foundation.description = La segunda versión del núcleo. Mejor blindado. Almacena más recursos. block.core-nucleus.description = La tercera y última iteración de la cápsula del núcleo. Muy bien blindado. Almacena cantidades masivas dde recursos. -block.vault.description = Almacena una gran cantidad de objetos. Úsalo para crear almacenes cuando no hay una demanda constante de materales. Un [LIGHT_GRAY] unloader[] puede usarse para obtener objetos del almacén. -block.container.description = Almacena una pequeña cantidad de objetos. Úsalo para crear almacenes cuando no hay una demanda constante de materales. Un [LIGHT_GRAY] unloader[] puede usarse para obtener objetos del contenedor. +block.vault.description = Almacena una gran cantidad de objetos. Úsalo para crear almacenes cuando no hay una demanda constante de materales. Un [lightgray] unloader[] puede usarse para obtener objetos del almacén. +block.container.description = Almacena una pequeña cantidad de objetos. Úsalo para crear almacenes cuando no hay una demanda constante de materales. Un [lightgray] unloader[] puede usarse para obtener objetos del contenedor. block.unloader.description = Descarga objetos de un contenedor, almacén o el núcleo a un transportador o directamente a un bloque adyacente. El tipo de objeto descargado puede ser cambiado tocando el descagador. block.launch-pad.description = Lanza paquetes de recursos sin necesitar lanzar con el núcleo. block.launch-pad-large.description = Una versión mejorada del pad de lanzamiento. Almacena más recursos y los lanza más frecuentemente. diff --git a/core/assets/bundles/bundle_et.properties b/core/assets/bundles/bundle_et.properties index c76461f8d4..c002a01a5f 100644 --- a/core/assets/bundles/bundle_et.properties +++ b/core/assets/bundles/bundle_et.properties @@ -1,4 +1,4 @@ -credits.text = Autor: [ROYAL]Anuken[] - [SKY]anukendev@gmail.com[] +credits.text = Autor: [royal]Anuken[] - [sky]anukendev@gmail.com[] credits = Tegijad contributors = Tõlkijad ja panustajad discord = Liitu Mindustry Discordi serveriga! @@ -101,7 +101,7 @@ feature.unsupported = Your device does not support this feature. mods.alphainfo = Keep in mind that mods are in alpha, and[scarlet] may be very buggy[].\nReport any issues you find to the Mindustry GitHub or Discord. mods.alpha = [accent](Alpha) mods = Mods -mods.none = [LIGHT_GRAY]No mods found! +mods.none = [lightgray]No mods found! mods.guide = Modding Guide mods.report = Report Bug mods.openfolder = Open Mod Folder @@ -126,7 +126,7 @@ mod.import.file = Import File mod.import.github = Import GitHub Mod mod.item.remove = This item is part of the[accent] '{0}'[] mod. To remove it, uninstall that mod. mod.remove.confirm = This mod will be deleted. -mod.author = [LIGHT_GRAY]Author:[] {0} +mod.author = [lightgray]Author:[] {0} mod.missing = This save contains mods that you have recently updated or no longer have installed. Save corruption may occur. Are you sure you want to load it?\n[lightgray]Mods:\n{0} mod.preview.missing = Before publishing this mod in the workshop, you must add an image preview.\nPlace an image named[accent] preview.png[] into the mod's folder and try again. mod.folder.missing = Only mods in folder form can be published on the workshop.\nTo convert any mod into a folder, simply unzip its file into a folder and delete the old zip, then restart your game or reload your mods. @@ -199,7 +199,7 @@ server.edit = Kohanda serverit server.outdated = [crimson]Aegunud server![] server.outdated.client = [crimson]Aegunud versioon![] server.version = [lightgray]v{0} {1} -server.custombuild = [yellow]Kohandatud versioon +server.custombuild = [accent]Kohandatud versioon confirmban = Oled kindel, et soovid keelata sellel mängjal siin mängida? confirmkick = Oled kindel, et soovid selle mängija välja visata? confirmvotekick = Oled kindel, et soovid selle mängija mängust välja hääletada? @@ -291,8 +291,8 @@ builtin = Sisse-ehitatud map.delete.confirm = Oled kindel, et soovid maailma kustutada? Seda ei saa tagasi võtta! map.random = [accent]Suvaline maailm map.nospawn = Selles maailmas ei ole mängijate tuumikuid!\nLisa redaktoris sellele maailmale[accent] oranž[] tuumik. -map.nospawn.pvp = Selles maailmas ei ole piisavalt mängijate tuumikuid!\nLisa redaktoris sellele maailmale[SCARLET] mitte-oranže[] tuumikuid. -map.nospawn.attack = Selles maailmas ei ole mängijate poolt rünnatavaid vaenlaste tuumikuid!\nLisa redaktoris sellele maailmale[SCARLET] punaseid[] tuumikuid. +map.nospawn.pvp = Selles maailmas ei ole piisavalt mängijate tuumikuid!\nLisa redaktoris sellele maailmale[scarlet] mitte-oranže[] tuumikuid. +map.nospawn.attack = Selles maailmas ei ole mängijate poolt rünnatavaid vaenlaste tuumikuid!\nLisa redaktoris sellele maailmale[scarlet] punaseid[] tuumikuid. map.invalid = Viga maailma laadimisel: ebasobiv või riknenud fail. workshop.update = Update Item workshop.error = Error fetching workshop details: {0} diff --git a/core/assets/bundles/bundle_eu.properties b/core/assets/bundles/bundle_eu.properties index 8b36262e7c..d2bf23c503 100644 --- a/core/assets/bundles/bundle_eu.properties +++ b/core/assets/bundles/bundle_eu.properties @@ -1,4 +1,4 @@ -credits.text = Egilea: [ROYAL]Anuken[] - [SKY]anukendev@gmail.com[] +credits.text = Egilea: [royal]Anuken[] - [sky]anukendev@gmail.com[] credits = Kredituak contributors = Itzultzaile eta kolaboratzaileak discord = Elkartu Mindustry Discord-era! @@ -101,7 +101,7 @@ feature.unsupported = Zure gailuak ez du ezaugarri hau onartzen. mods.alphainfo = Kontuan izan mod-ak alfa egoeran daudela, eta [scarlet] akats ugari izan ditzakete[].\nEman arazoen berri Mindustry-ren GitHub or Discord zerbitzuetan. mods.alpha = [accent](Alfa) mods = Mod-ak -mods.none = [LIGHT_GRAY]Ez da mod-ik aurkitu! +mods.none = [lightgray]Ez da mod-ik aurkitu! mods.guide = Mod-ak sortzeko gida mods.report = Eman akatsaren berri mods.openfolder = Ireki Mod-en karpeta @@ -126,7 +126,7 @@ mod.import.file = Import File mod.import.github = Inportatu GitHub Mod-a mod.item.remove = This item is part of the[accent] '{0}'[] mod. To remove it, uninstall that mod. mod.remove.confirm = Mod hau ezabatuko da. -mod.author = [LIGHT_GRAY]Egilea:[] {0} +mod.author = [lightgray]Egilea:[] {0} mod.missing = Gordetako partida honek eguneratu dituzun edo jada instalatuta ez dituzun mod-ak ditu. Gordetako partida izorratu daiteke. Ziur kargatu nahi duzula?\n[lightgray]Mod-ak:\n{0} mod.preview.missing = Mod hau tailerrean argitaratu aurretik, aurrebista bat gehitu behar diozu.\nKokatu[accent] preview.png[] izeneko irudi bat mod-aren karpetan eta saiatu berriro. mod.folder.missing = Karpeta formatuko mod-ak besterik ezin dira argitaratu tailerrean.\nEdozein mod karpetara bihurtzeko, deskopnrimitu fitxategia eta ezabatu zip zaharra, gero berrabiarazi jolasa edo birkargatu zure mod-ak. @@ -199,7 +199,7 @@ server.edit = Editatu zerbitzaria server.outdated = [crimson]Zaharkitutako zerbitzaria![] server.outdated.client = [crimson]Zaharkitutako bezeroa![] server.version = [gray]v{0} {1} -server.custombuild = [yellow]Konpilazio pertsonalizatua +server.custombuild = [accent]Konpilazio pertsonalizatua confirmban = Ziur jokalari hau debekatu nahi duzula? confirmkick = Ziur jokalari hau kanporatu nahi duzula? confirmvotekick = Ziur hokalari hau botatzearen alde bozkaytu nahi duzula? @@ -291,8 +291,8 @@ builtin = Jolas barnekoa map.delete.confirm = Ziur mapa hau ezabatu nahi duzula? Ekintza hau ezin da desegin! map.random = [accent]Ausazko mapa map.nospawn = Mapa honek ez du muinik jokalaria sortu dadin! Gehitu muin [accent] laranja[] bat mapa honi editorean. -map.nospawn.pvp = Mapa honek ez du etsaien muinik jokalaria sortu dadin! Gehitu [SCARLET]laranja ez den[] muinen bat edo batzuk mapa honi editorean. -map.nospawn.attack = Mapa honek ez du etsaien muinik jokalariak eraso dezan! Gehitu muin [SCARLET]gorriak[] mapa honi editorean. +map.nospawn.pvp = Mapa honek ez du etsaien muinik jokalaria sortu dadin! Gehitu [scarlet]laranja ez den[] muinen bat edo batzuk mapa honi editorean. +map.nospawn.attack = Mapa honek ez du etsaien muinik jokalariak eraso dezan! Gehitu muin [scarlet]gorriak[] mapa honi editorean. map.invalid = Errorea mapa kargatzean: Mapa-fitxategi baliogabe edo hondatua. workshop.update = Eguneratu elementua workshop.error = Errorea tailerreko xehetasunak eskuratzean: {0} diff --git a/core/assets/bundles/bundle_fi.properties b/core/assets/bundles/bundle_fi.properties index 5368eed9a0..f9d4f0ce64 100644 --- a/core/assets/bundles/bundle_fi.properties +++ b/core/assets/bundles/bundle_fi.properties @@ -1,4 +1,4 @@ -credits.text = Pelin tehnyt [ROYAL]Anuken[] - [SKY]anukendev@gmail.com[] +credits.text = Pelin tehnyt [royal]Anuken[] - [sky]anukendev@gmail.com[] credits = Tekijät contributors = Kääntäjät ja avustajat discord = Liity Mindustryn Discordiin! @@ -101,7 +101,7 @@ 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.none = [lightgray]Modeja ei löytynyt! mods.guide = Modaamisopas mods.report = Raportoi ohjelmistovirhe mods.openfolder = Avaa modikansio @@ -126,7 +126,7 @@ mod.import.file = Import File mod.import.github = Tuo GitHub Modi mod.item.remove = Tämä esine on osa[accent] '{0}'[] modia. Poistaaksesi sen, sinun tulee poistaa tuon modin vasennus mod.remove.confirm = Tämä modi poistetaan. -mod.author = [LIGHT_GRAY]Author:[] {0} +mod.author = [lightgray]Author:[] {0} mod.missing = This save contains mods that you have recently updated or no longer have installed. Save corruption may occur. Are you sure you want to load it?\n[lightgray]Mods:\n{0} mod.preview.missing = Before publishing this mod in the workshop, you must add an image preview.\nPlace an image named[accent] preview.png[] into the mod's folder and try again. mod.folder.missing = Only mods in folder form can be published on the workshop.\nTo convert any mod into a folder, simply unzip its file into a folder and delete the old zip, then restart your game or reload your mods. @@ -199,7 +199,7 @@ server.edit = Muokkaa palvelinta server.outdated = [crimson]Vanhentunut palvelin![] server.outdated.client = [crimson]Vanhentunut asiakasohjelma![] server.version = [gray]v{0} {1} -server.custombuild = [yellow]Custom Build +server.custombuild = [accent]Custom Build 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? @@ -291,8 +291,8 @@ builtin = Sisäänrakennettu map.delete.confirm = Oletko varma että haluat poistaa tämän kartan? Poistoa ei voi peruuttaa! map.random = [accent]Satunnainen kartta map.nospawn = Tässä kartassa ei ole ytimiä joihin syntyä! Lisää[accent] oranssi[] ydin karttaan editorissa. -map.nospawn.pvp = This map does not have any enemy cores for player to spawn into! Add[SCARLET] non-orange[] cores to this map in the editor. -map.nospawn.attack = This map does not have any enemy cores for player to attack! Add[SCARLET] red[] cores to this map in the editor. +map.nospawn.pvp = This map does not have any enemy cores for player to spawn into! Add[scarlet] non-orange[] cores to this map in the editor. +map.nospawn.attack = This map does not have any enemy cores for player to attack! Add[scarlet] red[] cores to this map in the editor. map.invalid = Virhe ladatessa karttaa: korruptoitunut tai väärä karttatiedosto. workshop.update = Update Item workshop.error = Error fetching workshop details: {0} diff --git a/core/assets/bundles/bundle_fr.properties b/core/assets/bundles/bundle_fr.properties index 48e8b51ed8..184489dd3b 100644 --- a/core/assets/bundles/bundle_fr.properties +++ b/core/assets/bundles/bundle_fr.properties @@ -1,4 +1,4 @@ -credits.text = Créé par [ROYAL]Anuken[] - [SKY]anukendev@gmail.com[]\n\n[GRAY] +credits.text = Créé par [royal]Anuken[] - [sky]anukendev@gmail.com[]\n\n[gray] credits = Crédits contributors = Traducteurs et contributeurs discord = Rejoignez le Discord de Mindustry @@ -101,7 +101,7 @@ feature.unsupported = Votre appareil ne supporte pas cette fonctionnalité. mods.alphainfo = Gardez à l'esprit que les mods sont en alpha et[scarlet] peuvent être très buggés[].\nMerci de signaler les problèmes que vous rencontrez via le GitHub ou le Discord Mindustry. mods.alpha = [accent](Alpha) mods = Mods -mods.none = [LIGHT_GRAY]Aucun mod trouvé! +mods.none = [lightgray]Aucun mod trouvé! mods.guide = Guide de Modding mods.report = Signaler un Bug mods.openfolder = Ouvrir le dossier des mods @@ -126,7 +126,7 @@ mod.import.file = Import File mod.import.github = Importer un mod GitHub mod.item.remove = Cet objet fait partie du mod[accent] '{0}'[]. Pour le supprimer, désinstallez le mod en question. mod.remove.confirm = Ce mod sera supprimé. -mod.author = [LIGHT_GRAY]Auteur:[] {0} +mod.author = [lightgray]Auteur:[] {0} mod.missing = Cette sauvegarde contient des mods que vous avez récemment mis à jour ou que vous avez désinstallés. Votre sauvegarde risque d'être corrompue. Êtes-vous sûr(e) de vouloir l'importer?\n[lightgray]Mods:\n{0} mod.preview.missing = Avant de publier ce mod dans le workshop, vous devez ajouter une image servant d'aperçu.\nPlacez une image nommée[accent] preview.png[] dans le dossier du mod et réessayez. mod.folder.missing = Seuls les mods sous forme de dossiers peuvent être publiés sur le Workshop.\nPour convertir n'importe quel mod en un dossier, dézippez-le tout simplement dans un dossier et supprimez l'ancien zip, puis redémarrez votre jeu ou rechargez vos mods. @@ -199,7 +199,7 @@ server.edit = Modifier le serveur server.outdated = [crimson]Serveur obsolète![] server.outdated.client = [crimson]Client obsolète![] server.version = [lightgray]Version: {0} {1} -server.custombuild = [yellow]Version personnalisée +server.custombuild = [accent]Version personnalisée confirmban = Souhaitez-vous vraiment bannir ce joueur? confirmkick = Souhaitez-vous vraiment expulser ce joueur? confirmvotekick = Voulez-vous vraiment voter l'expulsion de ce joueur? @@ -291,8 +291,8 @@ builtin = Intégré map.delete.confirm = Voulez-vous vraiment supprimer cette carte? Cette action ne peut pas être annulée! map.random = [accent]Carte aléatoire map.nospawn = Cette carte n'a pas de base pour qu'un joueur puisse y apparaître! Ajoutez une base[accent] orange[] sur cette carte dans l'éditeur. -map.nospawn.pvp = Cette carte n'a pas de base ennemie pour qu'un joueur ennemi puisse y apparaître! Ajoutez au moins une base [SCARLET] non-orange[] dans l'éditeur. -map.nospawn.attack = Cette carte n'a aucune base ennemie à attaquer! Veuillez ajouter une base[SCARLET] rouge[] sur cette carte dans l'éditeur. +map.nospawn.pvp = Cette carte n'a pas de base ennemie pour qu'un joueur ennemi puisse y apparaître! Ajoutez au moins une base [scarlet] non-orange[] dans l'éditeur. +map.nospawn.attack = Cette carte n'a aucune base ennemie à attaquer! Veuillez ajouter une base[scarlet] rouge[] sur cette carte dans l'éditeur. map.invalid = Erreur lors du chargement de la carte: carte corrompue ou invalide. workshop.update = Mettre à jour workshop.error = Erreur lors de la récupération des détails du Workshop: {0} @@ -828,20 +828,20 @@ liquid.slag.name = Scories liquid.oil.name = Pétrole liquid.cryofluid.name = Liquide Cryogénique item.corestorable = [lightgray]Stockable dans le Noyau: {0} -item.explosiveness = [LIGHT_GRAY]Explosivité: {0} -item.flammability = [LIGHT_GRAY]Inflammabilité: {0} -item.radioactivity = [LIGHT_GRAY]Radioactivité: {0} -unit.health = [LIGHT_GRAY]Santé: {0} -unit.speed = [LIGHT_GRAY]Rapidité: {0} +item.explosiveness = [lightgray]Explosivité: {0} +item.flammability = [lightgray]Inflammabilité: {0} +item.radioactivity = [lightgray]Radioactivité: {0} +unit.health = [lightgray]Santé: {0} +unit.speed = [lightgray]Rapidité: {0} unit.weapon = [lightgray]Weapon: {0} unit.itemcapacity = [lightgray]Item Capacity: {0} unit.minespeed = [lightgray]Mining Speed: {0}% unit.minepower = [lightgray]Mining Power: {0} unit.ability = [lightgray]Ability: {0} unit.buildspeed = [lightgray]Building Speed: {0}% -liquid.heatcapacity = [LIGHT_GRAY]Capacité Thermique: {0} -liquid.viscosity = [LIGHT_GRAY]Viscosité: {0} -liquid.temperature = [LIGHT_GRAY]Température: {0} +liquid.heatcapacity = [lightgray]Capacité Thermique: {0} +liquid.viscosity = [lightgray]Viscosité: {0} +liquid.temperature = [lightgray]Température: {0} block.cliff.name = Cliff block.sand-boulder.name = Bloc de Sable diff --git a/core/assets/bundles/bundle_fr_BE.properties b/core/assets/bundles/bundle_fr_BE.properties index f8f51acf84..fcf8f417fe 100644 --- a/core/assets/bundles/bundle_fr_BE.properties +++ b/core/assets/bundles/bundle_fr_BE.properties @@ -1,4 +1,4 @@ -credits.text = Créé par [ROYAL]Anuken[] - [SKY]anukendev@gmail.com[] +credits.text = Créé par [royal]Anuken[] - [sky]anukendev@gmail.com[] credits = Crédits contributors = Traducteurs et contributeurs discord = Rejoignez le discord de Mindustry ! @@ -87,7 +87,7 @@ save.quit = Save & Quit maps = Cartes maps.browse = Browse Maps continue = Continue -maps.none = [LIGHT_GRAY]Aucune carte trouvée! +maps.none = [lightgray]Aucune carte trouvée! invalid = Invalid pickcolor = Pick Color preparingconfig = Preparing Config @@ -101,7 +101,7 @@ feature.unsupported = Your device does not support this feature. mods.alphainfo = Keep in mind that mods are in alpha, and[scarlet] may be very buggy[].\nReport any issues you find to the Mindustry GitHub or Discord. mods.alpha = [accent](Alpha) mods = Mods -mods.none = [LIGHT_GRAY]No mods found! +mods.none = [lightgray]No mods found! mods.guide = Modding Guide mods.report = Report Bug mods.openfolder = Open Mod Folder @@ -126,7 +126,7 @@ mod.import.file = Import File mod.import.github = Import GitHub Mod mod.item.remove = This item is part of the[accent] '{0}'[] mod. To remove it, uninstall that mod. mod.remove.confirm = This mod will be deleted. -mod.author = [LIGHT_GRAY]Author:[] {0} +mod.author = [lightgray]Author:[] {0} mod.missing = This save contains mods that you have recently updated or no longer have installed. Save corruption may occur. Are you sure you want to load it?\n[lightgray]Mods:\n{0} mod.preview.missing = Before publishing this mod in the workshop, you must add an image preview.\nPlace an image named[accent] preview.png[] into the mod's folder and try again. mod.folder.missing = Only mods in folder form can be published on the workshop.\nTo convert any mod into a folder, simply unzip its file into a folder and delete the old zip, then restart your game or reload your mods. @@ -139,9 +139,9 @@ filename = Nom du fichier: unlocked = Nouveau bloc debloqué! completed = [accent]Terminé techtree = Arbre technologique -research.list = [LIGHT_GRAY]Recherche: +research.list = [lightgray]Recherche: research = Recherche -researched = [LIGHT_GRAY]{0} recherchée. +researched = [lightgray]{0} recherchée. players = {0} joueurs players.single = {0} joueur players.search = search @@ -164,8 +164,8 @@ server.kicked.customClient = Ce serveur ne supporte pas les versions personnalis server.kicked.gameover = Vous avez perdu ! server.kicked.serverRestarting = The server is restarting. server.versions = Votre version:[accent] {0}[]\nVersion du serveur:[accent] {1}[] -host.info = Le bouton [accent]héberger[] héberge un serveur sur les ports [scarlet]6567[] et [scarlet]6568.[]\nN'importe qui sur le même [LIGHT_GRAY]réseau wifi ou local[] devrait pouvoir voir votre serveur dans sa liste de serveurs.\n\nSi vous voulez que les gens puissent se connecter de n'importe où grâce à l'IP, [accent]rediriger les ports[] est requis.\n\n[LIGHT_GRAY]Note:Si quelqu'un éprouve des difficultés à se connecter à votre partie LAN, assurez-vous que vous avez autorisé Mindustry à accéder à votre réseau local dans les paramètres de votre pare-feu. -join.info = Ici, vous pouvez entrer l' [accent]IP d'un serveur[] pour s'y connecter, ou découvrir les serveurs[accent]sur votre réseau local[] pour s'y connecter.\nLes parties multijoueur LAN et WAN sont toutes deux supportées.\n\n[LIGHT_GRAY]Note: Aucune liste globale des serveurs n'est génerée automatiquement: si vous voulez vous connecter à un serveur par IP, vous devrez demander l'IP à l'hébergeur. +host.info = Le bouton [accent]héberger[] héberge un serveur sur les ports [scarlet]6567[] et [scarlet]6568.[]\nN'importe qui sur le même [lightgray]réseau wifi ou local[] devrait pouvoir voir votre serveur dans sa liste de serveurs.\n\nSi vous voulez que les gens puissent se connecter de n'importe où grâce à l'IP, [accent]rediriger les ports[] est requis.\n\n[lightgray]Note:Si quelqu'un éprouve des difficultés à se connecter à votre partie LAN, assurez-vous que vous avez autorisé Mindustry à accéder à votre réseau local dans les paramètres de votre pare-feu. +join.info = Ici, vous pouvez entrer l' [accent]IP d'un serveur[] pour s'y connecter, ou découvrir les serveurs[accent]sur votre réseau local[] pour s'y connecter.\nLes parties multijoueur LAN et WAN sont toutes deux supportées.\n\n[lightgray]Note: Aucune liste globale des serveurs n'est génerée automatiquement: si vous voulez vous connecter à un serveur par IP, vous devrez demander l'IP à l'hébergeur. hostserver = Héberger un serveur invitefriends = Invite Friends hostserver.mobile = Héberger\nUne partie @@ -277,12 +277,12 @@ selectschematic = [accent][[{0}][] to select+copy pausebuilding = [accent][[{0}][] to pause building resumebuilding = [scarlet][[{0}][] to resume building wave = [accent]Vague {0} -wave.waiting = [LIGHT_GRAY]Prochaine vague dans {0} -wave.waveInProgress = [LIGHT_GRAY]Vague en cours -waiting = [LIGHT_GRAY]En attente... +wave.waiting = [lightgray]Prochaine vague dans {0} +wave.waveInProgress = [lightgray]Vague en cours +waiting = [lightgray]En attente... waiting.players = En attente de joueurs ... -wave.enemies = [LIGHT_GRAY]{0} Ennemis restants -wave.enemy = [LIGHT_GRAY]{0} Ennemi restant +wave.enemies = [lightgray]{0} Ennemis restants +wave.enemy = [lightgray]{0} Ennemi restant loadimage = Charger l'image saveimage = Sauvegarder l'image unknown = Inconnu @@ -290,9 +290,9 @@ custom = Personnalisé builtin = Pré-fait map.delete.confirm = Êtes-vous sûr de vouloir effacer cette carte ? Cette action est irréversible ! map.random = [accent]Carte aléatoire -map.nospawn = Cette carte ne possède pas de base pour que le joueur puisse apparaître !Ajouter un [ROYAL]base bleue[] sur cette carte dans l'éditeur. -map.nospawn.pvp = Cette carte ne contient aucune base ennemi dans lequel le joueur apparaît!\nAjoutez des bases [SCARLET]rouge[] à cette carte dans l'éditeur. -map.nospawn.attack = Cette carte ne contient aucune base ennemi à attaquer! Ajoutez des bases [SCARLET]rouge[] à cette carte dans l'éditeur. +map.nospawn = Cette carte ne possède pas de base pour que le joueur puisse apparaître !Ajouter un [royal]base bleue[] sur cette carte dans l'éditeur. +map.nospawn.pvp = Cette carte ne contient aucune base ennemi dans lequel le joueur apparaît!\nAjoutez des bases [scarlet]rouge[] à cette carte dans l'éditeur. +map.nospawn.attack = Cette carte ne contient aucune base ennemi à attaquer! Ajoutez des bases [scarlet]rouge[] à cette carte dans l'éditeur. map.invalid = Erreur lors du chargement de la carte: carte corrompue ou invalide. workshop.update = Update Item workshop.error = Error fetching workshop details: {0} @@ -337,7 +337,7 @@ waves.load = Coller depuis le Presse-papiers waves.invalid = Vagues invalides dans le Presse-papiers. waves.copied = Vagues copiées. waves.none = Aucun ennemi défini.\nNotez que les dispositions vides seront automatiquement remplacées par la dispositions par défaut. -editor.default = [LIGHT_GRAY] +editor.default = [lightgray] details = Details... edit = Modifier... editor.name = Nom: @@ -399,7 +399,7 @@ toolmode.fillteams.description = Remplissez les équipes au lieu de blocs. toolmode.drawteams = Tirage au sort des équipes toolmode.drawteams.description = Dessinez des équipes au lieu de blocs. -filters.empty = [LIGHT_GRAY]Aucun filtre! Ajoutez-en un avec les boutons ci-dessous. +filters.empty = [lightgray]Aucun filtre! Ajoutez-en un avec les boutons ci-dessous. filter.distort = Déformation filter.noise = Bruit filter.enemyspawn = Enemy Spawn Select @@ -453,15 +453,15 @@ mapeditor = Éditeur de carte abandon = Abandonner abandon.text = Cette zone et toutes ses ressources seront perdues. locked = Verrouillé -complete = [LIGHT_GRAY]Compléter: +complete = [lightgray]Compléter: requirement.wave = Reach Wave {0} in {1} requirement.core = Destroy Enemy Core in {0} requirement.unlock = Unlock {0} -resume = Reprendre la partie en cours:\n[LIGHT_GRAY]{0} -bestwave = [LIGHT_GRAY]Meilleur: {0} +resume = Reprendre la partie en cours:\n[lightgray]{0} +bestwave = [lightgray]Meilleur: {0} launch = Lancement launch.title = Lancement réussi -launch.next = [LIGHT_GRAY]Prochaine opportunité à la vague {0} +launch.next = [lightgray]Prochaine opportunité à la vague {0} launch.unable2 = [scarlet]Unable to LAUNCH.[] launch.confirm = Cela lancera toutes les ressources dans votre noyau.\nVous ne pourrez pas revenir à cette base. launch.skip.confirm = If you skip now, you will not be able to launch until later waves. @@ -469,9 +469,9 @@ uncover = Découvrir configure = Configurer le transfert des ressources. bannedblocks = Banned Blocks addall = Add All -configure.locked = [LIGHT_GRAY]Atteigner la vague {0}\npour configurer le transfert des ressources. +configure.locked = [lightgray]Atteigner la vague {0}\npour configurer le transfert des ressources. configure.invalid = Amount must be a number between 0 and {0}. -zone.unlocked = [LIGHT_GRAY]{0} Débloquée. +zone.unlocked = [lightgray]{0} Débloquée. zone.requirement.complete = Vague {0} atteinte:\n{1} Exigences de la zone complétées zone.config.unlocked = Loadout unlocked:[lightgray]\n{0} zone.resources = Ressources détectées: @@ -548,7 +548,7 @@ blocks.output = Ressource(s) produite(s) blocks.booster = Booster blocks.tiles = Required Tiles blocks.affinities = Affinities -block.unknown = [LIGHT_GRAY]Inconnu +block.unknown = [lightgray]Inconnu blocks.powercapacity = Capacité d'énergie blocks.powershot = Énergie/Tir blocks.damage = Damage @@ -641,7 +641,7 @@ setting.flow.name = Display Resource Flow Rate[scarlet] (experimental) setting.buildautopause.name = Auto-Pause Building setting.animatedwater.name = Eau animée setting.animatedshields.name = Boucliers Animés -setting.antialias.name = Antialias[LIGHT_GRAY] (demande le redémarrage de l'appareil)[] +setting.antialias.name = Antialias[lightgray] (demande le redémarrage de l'appareil)[] setting.playerindicators.name = Player Indicators setting.indicators.name = Indicateurs d'alliés setting.autotarget.name = Visée automatique @@ -670,11 +670,11 @@ setting.seconds = {0} Secondes setting.blockselecttimeout.name = Block Select Timeout setting.milliseconds = {0} milliseconds setting.fullscreen.name = Plein écran -setting.borderlesswindow.name = Fenêtre sans bordure[LIGHT_GRAY] (peut nécessiter un redémarrage) +setting.borderlesswindow.name = Fenêtre sans bordure[lightgray] (peut nécessiter un redémarrage) setting.fps.name = Afficher FPS setting.blockselectkeys.name = Show Block Select Keys setting.vsync.name = VSync -setting.pixelate.name = Pixélisé [LIGHT_GRAY](peut diminuer les performances)[] +setting.pixelate.name = Pixélisé [lightgray](peut diminuer les performances)[] setting.minimap.name = Montrer la minimap setting.position.name = Show Player Position setting.musicvol.name = Volume de la musique @@ -782,14 +782,14 @@ rules.blockhealthmultiplier = Block Health Multiplier rules.playerhealthmultiplier = Multiplicateur de la santé des joueurs rules.playerdamagemultiplier = Multiplicateur de dégât des joueurs rules.unitdamagemultiplier = Multiplicateur de dégât des unités -rules.enemycorebuildradius = Rayon de non-construction autour de la base ennemi:[LIGHT_GRAY] (tuiles) -rules.respawntime = Temps de réapparition:[LIGHT_GRAY] (sec) -rules.wavespacing = Espacement des vagues:[LIGHT_GRAY] (sec) +rules.enemycorebuildradius = Rayon de non-construction autour de la base ennemi:[lightgray] (tuiles) +rules.respawntime = Temps de réapparition:[lightgray] (sec) +rules.wavespacing = Espacement des vagues:[lightgray] (sec) rules.buildcostmultiplier = Multiplicateur de coût de construction rules.buildspeedmultiplier = Multiplicateur de vitesse de construction rules.deconstructrefundmultiplier = Deconstruct Refund Multiplier rules.waitForWaveToEnd = Les vagues attendent les ennemis -rules.dropzoneradius = Rayon de la zone de largage:[LIGHT_GRAY] (tuiles) +rules.dropzoneradius = Rayon de la zone de largage:[lightgray] (tuiles) rules.respawns = Max d'apparition par vague rules.limitedRespawns = Limite d'apparition rules.title.waves = Vagues @@ -828,20 +828,20 @@ liquid.slag.name = Scorie liquid.oil.name = Pétrole liquid.cryofluid.name = Liquide Cryogénique item.corestorable = [lightgray]Storable in Core: {0} -item.explosiveness = [LIGHT_GRAY]Explosivité: {0} -item.flammability = [LIGHT_GRAY]Inflammabilité: {0} -item.radioactivity = [LIGHT_GRAY]Radioactivité: {0} -unit.health = [LIGHT_GRAY]Santé: {0} -unit.speed = [LIGHT_GRAY]Vitesse: {0} +item.explosiveness = [lightgray]Explosivité: {0} +item.flammability = [lightgray]Inflammabilité: {0} +item.radioactivity = [lightgray]Radioactivité: {0} +unit.health = [lightgray]Santé: {0} +unit.speed = [lightgray]Vitesse: {0} unit.weapon = [lightgray]Weapon: {0} unit.itemcapacity = [lightgray]Item Capacity: {0} unit.minespeed = [lightgray]Mining Speed: {0}% unit.minepower = [lightgray]Mining Power: {0} unit.ability = [lightgray]Ability: {0} unit.buildspeed = [lightgray]Building Speed: {0}% -liquid.heatcapacity = [LIGHT_GRAY]Capacité Thermique {0} -liquid.viscosity = [LIGHT_GRAY]Viscosité: {0} -liquid.temperature = [LIGHT_GRAY]Température: {0} +liquid.heatcapacity = [lightgray]Capacité Thermique {0} +liquid.viscosity = [lightgray]Viscosité: {0} +liquid.temperature = [lightgray]Température: {0} block.cliff.name = Cliff block.sand-boulder.name = Sable rocheux @@ -871,7 +871,7 @@ block.thruster.name = Propulseur block.kiln.name = Four a métaverre block.graphite-press.name = Presse à graphite block.multi-press.name = Multi-Presse -block.constructing = {0}\n[LIGHT_GRAY](En construction) +block.constructing = {0}\n[lightgray](En construction) block.spawn.name = Générateur d'ennemi block.core-shard.name = Core: Shard block.core-foundation.name = Core: Fondation @@ -1066,7 +1066,7 @@ tutorial.drill.mobile = Le minage manuel est inefficace.\n[accent]Des foreuses[] tutorial.blockinfo = Chaque bloc a des statistiques différentes. Chaque foreuse ne peut extraire que certains minerais.\nPour vérifier les informations et les statistiques d'un bloc,[accent] tapez sur le "?" tout en le sélectionnant dans le menu de compilation.[]\n\n[accent]Accédez aux statistiques de la foreuse mécanique maintenant.[] tutorial.conveyor = [accent]Convoyeurs[] sont utilisés pour transporter des articles à la base.\nFaire une ligne de convoyeurs de la foreuse à la base.\n[accent]Maintenez le clique droit de la souris pour placer dans une ligne.[]\nMaintenir[accent] CTRL[] en sélectionnant une ligne à placer en diagonale.\n\n[accent]Placez 2 convoyeurs avec l'outil ligne, puis livrez un article dans la base. tutorial.conveyor.mobile = [accent]Convoyeurs[] sont utilisés pour transporter des articles à la base.\nFaire une ligne de convoyeurs de la foreuse à la base.\n[accent] Placez dans une ligne en maintenant votre doigt appuyé pendant quelques secondes[] et en le faisant glisser dans une direction.\n\n[accent]Placez 2 convoyeurs avec l'outil ligne, puis livrez un article dans la base. -tutorial.turret = Des constructions défensives doivent être construites pour repousser [LIGHT_GRAY]les ennemis[].Construisez une tourelle "duo" près de votre base. +tutorial.turret = Des constructions défensives doivent être construites pour repousser [lightgray]les ennemis[].Construisez une tourelle "duo" près de votre base. tutorial.drillturret = Les tourelles "Duo" ont besoin de [accent]munitions en cuivre[] pour tirer.\nPlacez une foreuse à côté de la tourelle pour l'approvisionner avec du cuivre. tutorial.pause = Pendant le combat, vous pouvez[accent] mettre le jeu en pause.[]\nVous pouvez construire des bâtiments pendant que le jeu est en pause.\n\n[accent]Appuyez sur espace pour mettre le jeu en pause. tutorial.pause.mobile = Pendant le combat, vous pouvez[accent] mettre le jeu en pause.[]\nVous pouvez construire des bâtiments pendant que le jeu est en pause.\n\n[accent]Appuyez sur le bouton en haut à gauche pour mettre le jeu en pause. @@ -1076,7 +1076,7 @@ tutorial.breaking = Les blocs doivent souvent être détruits.\n[accent]Maintene tutorial.breaking.mobile = Les blocs doivent souvent être détruits.\n[accent]Sélectionnez le mode de déconstruction[], puis appuyez sur un bloc pour commencer à le casser.\nDétruisez une zone en maintenant votre doigt enfoncé pendant quelques secondes[] et glisser dans une direction.\nAppuyez sur la coche(V) pour confirmer.\n\n[accent]Détruisez tous les blocs de ferraille à gauche de votre base à l'aide de la sélection de zone. tutorial.withdraw = Dans certaines situations, il est nécessaire de prendre des articles directement des blocs..\nPour faire ça, [accent]tapez sur un bloc[] avec des articles à l'intérieur, alors [accent]appuyez sur l'élément[] dans l'inventaire.\nPlusieurs éléments peuvent être retirés en [accent]tapotant et en maintenant enfoncée la touche[].\n\n[accent]Retirez un peu de cuivre de votre base.[] tutorial.deposit = Déposez les éléments dans des blocs en les faisant glisser de votre vaisseau vers un module de stockage.\n\n[accent]Déposez votre cuivre dans la base.[] -tutorial.waves = Les [LIGHT_GRAY]ennemies[] approchent.\n\nDéfendez votre base durant 2 vagues.\nConstruisez plus de tourelles et de foreuses. Minez plus de cuivre. +tutorial.waves = Les [lightgray]ennemies[] approchent.\n\nDéfendez votre base durant 2 vagues.\nConstruisez plus de tourelles et de foreuses. Minez plus de cuivre. tutorial.waves.mobile = [lightgray]Les ennemies approchent[].\n\nDéfendez votre base durant 2 vagues. Votre vaisseau tirera automatiquement sur les ennemis.\nConstruisez plus de tourelles et de foreuses. Minez plus de cuivre. tutorial.launch = Une fois que vous atteignez une vague spécifique, vous êtes en mesure de[accent] lancer votre base[], laissant vos défenses derrière vous et[accent] en obtenant toutes les ressources de votre base.[]\nCes ressources peuvent ensuite servir à la recherche de nouvelles technologies.\n\n[accent]Appuyez sur le bouton de lancement. @@ -1202,8 +1202,8 @@ block.oil-extractor.description = Utilise de grandes quantités d'énergie pour block.core-shard.description = La première version de la base centrale. Une fois détruit, tout contact avec la région est perdu. Ne laissez pas cela arriver. block.core-foundation.description = La deuxième version de la base centrale. Mieux blindé. Stocke plus de ressources. block.core-nucleus.description = La troisième et dernière version de la base centrale. Extrêmement bien blindé. Stocke des quantités massives de ressources. -block.vault.description = Stocke une grande quantité d'objets. Utilisez-le pour créer des tampons lorsqu'il existe une demande non constante de matériaux. [LIGHT_GRAY]Un déchargeur[] peut être utilisé pour récupérer des éléments du coffre-fort. -block.container.description = Stocke une petite quantité d'objets. Utilisez-le pour créer des tampons lorsqu'il existe une demande non constante de matériaux. [LIGHT_GRAY]Un déchargeur[] peut être utilisé pour récupérer des éléments du conteneur. +block.vault.description = Stocke une grande quantité d'objets. Utilisez-le pour créer des tampons lorsqu'il existe une demande non constante de matériaux. [lightgray]Un déchargeur[] peut être utilisé pour récupérer des éléments du coffre-fort. +block.container.description = Stocke une petite quantité d'objets. Utilisez-le pour créer des tampons lorsqu'il existe une demande non constante de matériaux. [lightgray]Un déchargeur[] peut être utilisé pour récupérer des éléments du conteneur. block.unloader.description = Décharge des articles d'un conteneur, d'une chambre forte ou d'un noyau sur un convoyeur ou directement dans un bloc adjacent.\nLe type d'élément à décharger peut être modifié en tapotant sur le déchargeur. block.launch-pad.description = Lance des lots d'articles sans qu'il soit nécessaire de procéder à un lancement de base. Inachevé. block.launch-pad-large.description = Une version améliorée de la rampe de lancement. Stocke plus d'articles. Lancements plus fréquemment. diff --git a/core/assets/bundles/bundle_in_ID.properties b/core/assets/bundles/bundle_in_ID.properties index 2d5724e064..ad6c00f00b 100644 --- a/core/assets/bundles/bundle_in_ID.properties +++ b/core/assets/bundles/bundle_in_ID.properties @@ -1,4 +1,4 @@ -credits.text = Diciptakan oleh [ROYAL]Anuken[] - [SKY]anukendev@gmail.com[] +credits.text = Diciptakan oleh [royal]Anuken[] - [sky]anukendev@gmail.com[] credits = Kredit contributors = Penerjemah dan Kontributor discord = Bergabung di Discord Mindustry! @@ -87,7 +87,7 @@ save.quit = Simpan & Keluar maps = Maps maps.browse = Cari Peta continue = Lanjutkan -maps.none = [LIGHT_GRAY]Peta tidak ditemukan! +maps.none = [lightgray]Peta tidak ditemukan! invalid = Tidak valid pickcolor = Pilih warna preparingconfig = Menyiapkan Konfigurasi @@ -101,7 +101,7 @@ feature.unsupported = Perangkat Anda tidak mendukung fitur ini. mods.alphainfo = Perlu diingat bahwa mod masih dalam perkembangan, dan[scarlet] bisa mengalami kerusakan[].\nLapor isu atau masalah di Github atau Discord Mindustry. mods.alpha = [accent](Alpha) mods = Mod -mods.none = [LIGHT_GRAY]Tidak ada mod yang ditemukan! +mods.none = [lightgray]Tidak ada mod yang ditemukan! mods.guide = Panduan Modding mods.report = Lapor Kesalahan mods.openfolder = Buka Folder Mod @@ -126,7 +126,7 @@ mod.import.file = Import File mod.import.github = Impor Mod GitHub mod.item.remove = Item ini merupakan bagian dari mod[accent] '{0}'[] mod. Untuk dihilangkan, hapus mod ini. mod.remove.confirm = Mod ini akan dihapus. -mod.author = [LIGHT_GRAY]Pencipta:[] {0} +mod.author = [lightgray]Pencipta:[] {0} mod.missing = Simpanan ini mengandung mod yang telah diperbarui atau sudah lama tidak dipasang. Kemungkinan akan terjadi perubahan. Apakah Anda yakin untuk memuatnya?\n[lightgray]Mods:\n{0} mod.preview.missing = Sebelum menerbitkan mod di dalam workshop, kamu harus memberi foto pratinjau.\nBeri sebuah foto dinamakan[accent] preview.png[] ke dalam folder mod dan ulang kembali. mod.folder.missing = Hanya mod dengan format folder yang dapat diterbitkan di workshop.\nUntuk mengubah mod menjadi folder, unzip file mod tersebut dan bentuk sebuah folder, kemudian ulang game Anda atau mod Anda.. @@ -139,9 +139,9 @@ filename = Nama File: unlocked = Konten baru terbuka! completed = [accent]Terselesaikan techtree = Cabang Teknologi -research.list = [LIGHT_GRAY]Penelitian: +research.list = [lightgray]Penelitian: research = Penelitian -researched = [LIGHT_GRAY]{0} telah diteliti. +researched = [lightgray]{0} telah diteliti. players = {0} pemain aktif players.single = {0} pemain aktif players.search = cari @@ -164,8 +164,8 @@ server.kicked.customClient = Server ini tidak mendukung versi modifikasi. Downlo server.kicked.gameover = Permainan telah berakhir! server.kicked.serverRestarting = Server sedang mengulang kembali. server.versions = Versi Anda:[accent] {0}[]\nVersi server:[accent] {1}[] -host.info = Tombol [accent]host[] akan membuat server sementara di port [scarlet]6567[]. \nSemua orang yang memiliki [LIGHT_GRAY]Wi-Fi atau jaringan lokal[] akan bisa melihat server anda di daftar server mereka.\n\nJika Anda ingin pemain dari mana saja memasuki servermu dengan IP, dibutuhkan untuk melakukan [accent]port forwarding[].\n\n[LIGHT_GRAY]Diingat: Jika seseorang mengalami masalah memasuki permainan LAN-mu, pastikan Anda telah mengizinkan Mindustry akses ke jaringan lokalmu di pengaturan firewall. -join.info = Disini, Anda bisa memasuki [accent]server IP[], atau menemukan [accent]server lokal[] untuk bermain bersama.\nLAN dan WAN mendukung permainan bersama.\n\n[LIGHT_GRAY]Ingat: Tidak ada daftar server global; jika anda ingin bergabung dengan seseorang memakai IP, Anda perlu menanyakan host tentang IP mereka. +host.info = Tombol [accent]host[] akan membuat server sementara di port [scarlet]6567[]. \nSemua orang yang memiliki [lightgray]Wi-Fi atau jaringan lokal[] akan bisa melihat server anda di daftar server mereka.\n\nJika Anda ingin pemain dari mana saja memasuki servermu dengan IP, dibutuhkan untuk melakukan [accent]port forwarding[].\n\n[lightgray]Diingat: Jika seseorang mengalami masalah memasuki permainan LAN-mu, pastikan Anda telah mengizinkan Mindustry akses ke jaringan lokalmu di pengaturan firewall. +join.info = Disini, Anda bisa memasuki [accent]server IP[], atau menemukan [accent]server lokal[] untuk bermain bersama.\nLAN dan WAN mendukung permainan bersama.\n\n[lightgray]Ingat: Tidak ada daftar server global; jika anda ingin bergabung dengan seseorang memakai IP, Anda perlu menanyakan host tentang IP mereka. hostserver = Host Permainan invitefriends = Undang Teman hostserver.mobile = Host\nPermainan @@ -199,7 +199,7 @@ server.edit = Sunting Server server.outdated = [crimson]Server Kadaluarsa![] server.outdated.client = [crimson]Client Kadaluarsa![] server.version = [lightgray]Versi: {0} {1} -server.custombuild = [yellow]Bentuk Modifikasi +server.custombuild = [accent]Bentuk Modifikasi confirmban = Anda yakin ingin melarang pemain ini untuk masuk lagi? confirmkick = Anda yakin ingin mengeluarkan pemain ini? confirmvotekick = Anda yakin ingin memulai pemungutan suara untuk mengeluarkan pemain ini? @@ -277,12 +277,12 @@ selectschematic = [accent][[{0}][] untuk memilih+salin pausebuilding = [accent][[{0}][] untuk berhenti membangun resumebuilding = [scarlet][[{0}][] untuk lanjut membangun wave = [accent]Gelombang {0} -wave.waiting = [LIGHT_GRAY]Gelombang di {0} -wave.waveInProgress = [LIGHT_GRAY]Gelombang sedang berlangsung -waiting = [LIGHT_GRAY]Menunggu... +wave.waiting = [lightgray]Gelombang di {0} +wave.waveInProgress = [lightgray]Gelombang sedang berlangsung +waiting = [lightgray]Menunggu... waiting.players = Menunggu pemain lainnya... -wave.enemies = [LIGHT_GRAY]{0} Musuh Tersisa -wave.enemy = [LIGHT_GRAY]{0} Musuh Tersisa +wave.enemies = [lightgray]{0} Musuh Tersisa +wave.enemy = [lightgray]{0} Musuh Tersisa loadimage = Memuat Gambar saveimage = Simpan Gambar unknown = Tak diketahui @@ -290,9 +290,9 @@ custom = Modifikasi builtin = Terpasang map.delete.confirm = Anda yakin ingin menghapus peta ini? Aksi ini tidak bisa diubah! map.random = [accent]Peta Acak -map.nospawn = Peta ini tidak memiliki inti agar pemain bisa muncul! Tambahkan inti [ROYAL] biru[] kedalam peta di penyunting. -map.nospawn.pvp = Peta ini tidak memiliki inti agar pemain lawan bisa muncul! Tambahkan inti[SCARLET] selain biru[] kedalam peta di penyunting. -map.nospawn.attack = Peta ini tidak memiliki inti musuh agar pemain bisa menyerang! Tambahkan inti[SCARLET] merah[] kedalam peta di penyunting. +map.nospawn = Peta ini tidak memiliki inti agar pemain bisa muncul! Tambahkan inti [royal] biru[] kedalam peta di penyunting. +map.nospawn.pvp = Peta ini tidak memiliki inti agar pemain lawan bisa muncul! Tambahkan inti[scarlet] selain biru[] kedalam peta di penyunting. +map.nospawn.attack = Peta ini tidak memiliki inti musuh agar pemain bisa menyerang! Tambahkan inti[scarlet] merah[] kedalam peta di penyunting. map.invalid = Terjadi kesalahan saat memuat peta: rusak atau file peta tidak valid. workshop.update = Perbarui Item workshop.error = Terjadi kesalahan saat mengambil detail workshop: {0} @@ -337,7 +337,7 @@ 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. -editor.default = [LIGHT_GRAY] +editor.default = [lightgray] details = Detail... edit = Sunting... editor.name = Nama: @@ -399,7 +399,7 @@ toolmode.fillteams.description = Mengisi tim bukannya blok. toolmode.drawteams = Gambar Tim toolmode.drawteams.description = Menggambar tim bukannya blok. -filters.empty = [LIGHT_GRAY]Tidak ada filter! Tambahkan dengan tombol dibawah. +filters.empty = [lightgray]Tidak ada filter! Tambahkan dengan tombol dibawah. filter.distort = Kerusakkan filter.noise = Kebisingan filter.enemyspawn = Enemy Spawn Select @@ -453,15 +453,15 @@ mapeditor = Penyunting Peta abandon = Tinggalkan abandon.text = Zona ini dan semua sumber daya didalamnya akan berada di tangan musuh. locked = Terkunci -complete = [LIGHT_GRAY]Mencapai: +complete = [lightgray]Mencapai: requirement.wave = Capai gelombang {0} dalam {1} requirement.core = Hancurkan inti musuh dalam {0} requirement.unlock = Buka {0} -resume = Lanjutkan Zona:\n[LIGHT_GRAY]{0} -bestwave = [LIGHT_GRAY]Gelombang Terbaik: {0} +resume = Lanjutkan Zona:\n[lightgray]{0} +bestwave = [lightgray]Gelombang Terbaik: {0} launch = < MELUNCUR > launch.title = Berhasil Meluncur -launch.next = [LIGHT_GRAY]kesempatan berikutnya di gelombang {0} +launch.next = [lightgray]kesempatan berikutnya di gelombang {0} launch.unable2 = [scarlet]Tidak dapat MELUNCUR.[] launch.confirm = Ini akan meluncurkan semua sumber daya di inti.\nAnda tidak bisa kembali lagi ke tempat ini. launch.skip.confirm = Jika Anda lewati sekarang, Anda tidak akan dapat meluncur hingga gelombang berikutnya. @@ -469,9 +469,9 @@ uncover = Buka configure = Konfigurasi Muatan bannedblocks = Balok yang dilarang addall = Tambah Semu -configure.locked = [LIGHT_GRAY]Buka konfigurasi muatan: Gelombang {0}. +configure.locked = [lightgray]Buka konfigurasi muatan: Gelombang {0}. configure.invalid = Jumlah harua berupa angka diantara 0 dan {0}. -zone.unlocked = [LIGHT_GRAY]{0} terbuka. +zone.unlocked = [lightgray]{0} terbuka. zone.requirement.complete = Gelombang {0} terselesaikan:\nPersyaratan zona {1} tercapai. zone.config.unlocked = Permuatan terbuka:[lightgray]\n{0} zone.resources = Sumber Daya Terdeteksi: @@ -548,7 +548,7 @@ blocks.output = Pengeluaran blocks.booster = Pendorong blocks.tiles = Kotak yang dibutuhkan blocks.affinities = Afinitas -block.unknown = [LIGHT_GRAY]??? +block.unknown = [lightgray]??? blocks.powercapacity = Kapasitas Tenaga blocks.powershot = Tenaga/Tembakan blocks.damage = Kerusakan @@ -641,7 +641,7 @@ setting.flow.name = Display Resource Flow Rate[scarlet] (experimental) setting.buildautopause.name = Jeda Otomatis saat Membangun setting.animatedwater.name = Animasi Perairan setting.animatedshields.name = Animasi Pelindung -setting.antialias.name = Antialiasi[LIGHT_GRAY] (membutuhkan restart)[] +setting.antialias.name = Antialiasi[lightgray] (membutuhkan restart)[] setting.playerindicators.name = Player Indicators setting.indicators.name = Indikasi Musuh/Teman Lain setting.autotarget.name = Target Secara Otomatis @@ -670,11 +670,11 @@ setting.seconds = {0} Sekon setting.blockselecttimeout.name = Waktu Habis Pemilihan Blok setting.milliseconds = {0} milisekon setting.fullscreen.name = Layar Penuh -setting.borderlesswindow.name = Jendela tak Berbatas[LIGHT_GRAY] (mungkin memerlukan mengulang kembali) +setting.borderlesswindow.name = Jendela tak Berbatas[lightgray] (mungkin memerlukan mengulang kembali) setting.fps.name = Tunjukkan FPS setting.blockselectkeys.name = Tunjukkan Kunci Pilih Blok setting.vsync.name = VSync -setting.pixelate.name = Mode Pixel[LIGHT_GRAY] (menonaktifkan animasi) +setting.pixelate.name = Mode Pixel[lightgray] (menonaktifkan animasi) setting.minimap.name = Tunjukkan Peta Kecil setting.position.name = Tunjukkan Posisi Pemain setting.musicvol.name = Volume Musik @@ -782,14 +782,14 @@ rules.blockhealthmultiplier = Multiplikasi Darah Blok rules.playerhealthmultiplier = Multiplikasi Darah Pemain rules.playerdamagemultiplier = Multiplikasi Kekuatan Pemain rules.unitdamagemultiplier = Multiplikasi Kekuatan Unit -rules.enemycorebuildradius = Dilarang Membangun Radius Inti Musuh :[LIGHT_GRAY] (blok) -rules.respawntime = Waktu Respawn:[LIGHT_GRAY] (detik) -rules.wavespacing = Jarak Gelombang:[LIGHT_GRAY] (detik) +rules.enemycorebuildradius = Dilarang Membangun Radius Inti Musuh :[lightgray] (blok) +rules.respawntime = Waktu Respawn:[lightgray] (detik) +rules.wavespacing = Jarak Gelombang:[lightgray] (detik) rules.buildcostmultiplier = Multiplikasi Harga Bangunan rules.buildspeedmultiplier = Multiplikasi Waktu Pembuatan Bangunan rules.deconstructrefundmultiplier = Penggembalian Dana Mendekonstraksi Blok rules.waitForWaveToEnd = Gelombang menunggu musuh -rules.dropzoneradius = Radius Titik Muncul:[LIGHT_GRAY] (Blok) +rules.dropzoneradius = Radius Titik Muncul:[lightgray] (Blok) rules.respawns = Maksimal muncul kembali setiap gelombang rules.limitedRespawns = Batas Muncul Kembali rules.title.waves = Gelombang @@ -828,20 +828,20 @@ liquid.slag.name = Terak liquid.oil.name = Minyak liquid.cryofluid.name = Cairan Dingin item.corestorable = [lightgray]Yang dapat disimpan di Inti: {0} -item.explosiveness = [LIGHT_GRAY]Tingkat Keledakan: {0}% -item.flammability = [LIGHT_GRAY]Tingkat Kebakaran: {0}% -item.radioactivity = [LIGHT_GRAY]Tingkat Radioaktif: {0}% -unit.health = [LIGHT_GRAY]Darah: {0} -unit.speed = [LIGHT_GRAY]Kecepatan: {0} +item.explosiveness = [lightgray]Tingkat Keledakan: {0}% +item.flammability = [lightgray]Tingkat Kebakaran: {0}% +item.radioactivity = [lightgray]Tingkat Radioaktif: {0}% +unit.health = [lightgray]Darah: {0} +unit.speed = [lightgray]Kecepatan: {0} unit.weapon = [lightgray]Weapon: {0} unit.itemcapacity = [lightgray]Item Capacity: {0} unit.minespeed = [lightgray]Mining Speed: {0}% unit.minepower = [lightgray]Mining Power: {0} unit.ability = [lightgray]Ability: {0} unit.buildspeed = [lightgray]Building Speed: {0}% -liquid.heatcapacity = [LIGHT_GRAY]Kapasitas Panas: {0} -liquid.viscosity = [LIGHT_GRAY]Kelekatan: {0} -liquid.temperature = [LIGHT_GRAY]Suhu: {0} +liquid.heatcapacity = [lightgray]Kapasitas Panas: {0} +liquid.viscosity = [lightgray]Kelekatan: {0} +liquid.temperature = [lightgray]Suhu: {0} block.cliff.name = Cliff block.sand-boulder.name = Batu Pasir @@ -871,7 +871,7 @@ block.thruster.name = Pendorong block.kiln.name = Pengeringan block.graphite-press.name = Pencetak Grafit block.multi-press.name = Multi-Cetak -block.constructing = {0} [LIGHT_GRAY](Konstruksi) +block.constructing = {0} [lightgray](Konstruksi) block.spawn.name = Muncul Musuh block.core-shard.name = Inti: Bagian block.core-foundation.name = Inti: Pondasi @@ -1066,7 +1066,7 @@ tutorial.drill.mobile = Menambang manual tidak efisien.\n[accent]Bor []dapat men tutorial.blockinfo = Setiap blok memiliki status berbeda. Setiap bor hanya dapat menambang bijih tertentu.\nUntuk mencari info sebuah blok,[accent] Tekan tombol "?" saat memilih blok dari menu bangunan.[]\n\n[accent]Akses status Bor Mekanik sekarang.[] tutorial.conveyor = [accent]Pengantar[] digunakan untuk transportasi item ke inti.\nJejerlah pengantar dari bor ke inti. tutorial.conveyor.mobile = [accent]Pengantar[] digunakan untuk transportasi item ke inti.\nJejerlah pengantar dari bor ke inti.\n[accent] Buat sebuah garis dengan menekan jarimu selama beberapa detik[] dan tarik dengan suatu arah.\n\n[accent]{0}/{1} item dari garis pengantar\n[accent]0/1 terkirim -tutorial.turret = Struktur pertahanan harus dibuat untuk menangkal [LIGHT_GRAY] musuh[].\nBangun menara "duo" dekat intimu. +tutorial.turret = Struktur pertahanan harus dibuat untuk menangkal [lightgray] musuh[].\nBangun menara "duo" dekat intimu. tutorial.drillturret = Menara "duo" membutuhkan[accent] amunisi tembaga []untuk menembak.\nTaruh bor didekat menara untuk mengisinya dengan tembaga. tutorial.pause = Disaat bermain, kamu dapat[accent] menjeda game.[]\nKamu berhenti membangun selama jeda.\n\n[accent]Tekan spasi untuk jeda. tutorial.pause.mobile = Disaat bermain, kamu dapat[accent] menjeda game.[]\nKamu berhenti membangun selama jeda.\n\n[accent]Tekan tombol ini di atas-kiri untuk jeda. @@ -1076,7 +1076,7 @@ tutorial.breaking = Blok biasanya butuh untuk dihapus.\n[accent]Tekan mouse-kana tutorial.breaking.mobile = Blok biasanya butuh untuk dihapus.\n[accent]Tekan mode dekonstraksi[], kemudian tekan blok untuk mulai menghapus.\nHapus sebuah area dengan menahan jari beberapa detik[] dan tarik ke suatu arah .\nTekan tombol centang untuk mengonfirmasi.\n\n[accent]Hapus semua blok kepingan di sebelah intimu. tutorial.withdraw = Di beberapa situasi, mengambil item dari blok diperlukan.\nUntuk melakukan ini, [accent]tekan sebuah blok[] berisi sebuah item, kemudian [accent]tekan item itu[] dalam inventaris.\nItem dengan jumlah banyak dapat diambil[accent]dengan cara menahan[].\n\n[accent]Ambil beberapa tembaga dari inti.[] tutorial.deposit = Setor item dari pesawatmu ke suatu blok dengan cara menarik itemnya.\n\n[accent]Setor kembali tembagamu ke inti.[] -tutorial.waves = [LIGHT_GRAY] Musuh[] mendatang.\n\nLindungi intimu selama 2 gelombang. Bangun lebih banyak kubah dan bor. +tutorial.waves = [lightgray] Musuh[] mendatang.\n\nLindungi intimu selama 2 gelombang. Bangun lebih banyak kubah dan bor. tutorial.waves.mobile = Para[lightgray] Musuh[] telah muncul.\n\nLindungi intimu selama 2 gelombang. Pesawatmu akan menembak musuh secara otomatis.\nBuat lebih banyak kubah dan bor. Tambang tembaga lebih banyak. tutorial.launch = Saat kamu mencapai gelombang tertentu, kamu dapat[accent] meluncurkan intimu[], meninggalkan pertahananmu[accent] mendapatkan semua sumber daya di intimu.[]\nSumber daya ini digunakan sebagai riset teknologi.\n\n[accent]Tekan tombol meluncur. @@ -1202,8 +1202,8 @@ block.oil-extractor.description = Menggunakan tenaga cukup besar untuk mengekstr block.core-shard.description = Versi pertama dari pengulangan kapsul inti. Jika hancur, Semua kontak dengan daerah akan hilang. Jangan biarkan ini terjadi. block.core-foundation.description = Versi kedua dari intk. Lebih kuat. Menyimpan banyak sumber daya. block.core-nucleus.description = Versi ketiga dan pengulangan terakhir dari kapsul inti. Sangkat kuat. Menyimpan sangat banyak sumberr daya. -block.vault.description = Menyimpan semua tipe item berkuantitas besar. [LIGHT_GRAY] pembongkar muatan[] bisa digunakan untuk mengeluarkan item dari gudang. -block.container.description = Menyimpan semua tipe item. [LIGHT_GRAY] pembongkar muatan[] bisa digunakan untuk mengeluarkan item dari kontainer. +block.vault.description = Menyimpan semua tipe item berkuantitas besar. [lightgray] pembongkar muatan[] bisa digunakan untuk mengeluarkan item dari gudang. +block.container.description = Menyimpan semua tipe item. [lightgray] pembongkar muatan[] bisa digunakan untuk mengeluarkan item dari kontainer. block.unloader.description = Mengeluarkan item dari kontainer, gudang atau inti kedalam pengantar atau langsung ke blok yang dituju. Tipe item yang dimuat bisa diganti dengan mengetuk pembongkar muatan. block.launch-pad.description = Meluncurkan beberapa item tanpa meninggalkan tempat. block.launch-pad-large.description = Sebuah alas luncur yang ditingkatkan. Menyimpan lebih banyak item dan lebih sering meluncur. diff --git a/core/assets/bundles/bundle_it.properties b/core/assets/bundles/bundle_it.properties index 2d6b763c5f..b93df31df1 100644 --- a/core/assets/bundles/bundle_it.properties +++ b/core/assets/bundles/bundle_it.properties @@ -1,4 +1,4 @@ -credits.text = Creato da [ROYAL]Anuken[] - [SKY]anukendev@gmail.com[] +credits.text = Creato da [royal]Anuken[] - [sky]anukendev@gmail.com[] credits = Crediti contributors = Traduttori e Contributori discord = Entra nel server Discord di Mindustry! @@ -199,7 +199,7 @@ server.edit = Modifica Server server.outdated = [crimson]Server Obsoleto![] server.outdated.client = [crimson]Client Obsoleto![] server.version = [gray]v{0} {1} -server.custombuild = [yellow]Build Personalizzata +server.custombuild = [accent]Build Personalizzata confirmban = Sei sicuro di voler bandire "{0}[white]"? confirmkick = Sei sicuro di voler espellere "{0}[white]"? confirmvotekick = Sei sicuro di voler votare per l'espulsione di "{0}[white]"? diff --git a/core/assets/bundles/bundle_ja.properties b/core/assets/bundles/bundle_ja.properties index cb78be37b8..4463c9f3f3 100644 --- a/core/assets/bundles/bundle_ja.properties +++ b/core/assets/bundles/bundle_ja.properties @@ -1,4 +1,4 @@ -credits.text = 制作者 [ROYAL]Anuken[] - [SKY]anukendev@gmail.com[] +credits.text = 制作者 [royal]Anuken[] - [sky]anukendev@gmail.com[] credits = クレジット contributors = 翻訳や開発に協力してくださった方々 discord = MindustryのDiscordに参加! @@ -101,7 +101,7 @@ feature.unsupported = あなたのデバイスはこの機能をサポートし mods.alphainfo = Mods機能は実験的なものです。[scarlet] エラーが含まれている可能性があります[]。\n 問題を発見した場合は Mindustry GitHubに報告してください。 mods.alpha = [accent](Alpha) mods = Mods -mods.none = [LIGHT_GRAY]Modが見つかりませんでした! +mods.none = [lightgray]Modが見つかりませんでした! mods.guide = Mod作成ガイド mods.report = バグを報告する mods.openfolder = MODのフォルダを開く @@ -126,7 +126,7 @@ mod.import.file = ファイルをインポート mod.import.github = GitHubからModをインポート mod.item.remove = これは以下のModの一部です。[accent] '{0}'[] 削除するにはそのModを削除してください。 mod.remove.confirm = このModを削除します。 -mod.author = [LIGHT_GRAY]著者:[] {0} +mod.author = [lightgray]著者:[] {0} mod.missing = このデータには、最近更新された、または、有効化されてない以下のModが含まれています。\n[accent]データが破損する可能性があります。[]\n読み込んでもよろしいですか?\n[lightgray]{0} mod.preview.missing = このModをワークショップで公開するには、Modのプレビュー画像を設定する必要があります。\n[accent] preview.png[] というファイル名の画像をmodsのフォルダに配置し、再試行してください。 mod.folder.missing = ワークショップで公開できるのは、フォルダ形式のModのみとなります。\nModをフォルダ形式に変換するには、ファイルをフォルダに解凍し、古いzipを削除してからゲームを再起動するか、modを再読み込みしてください。 @@ -199,7 +199,7 @@ server.edit = サーバーを編集 server.outdated = [crimson]古いサーバーです![] server.outdated.client = [crimson]古いクライアントです![] server.version = [lightgray]バージョン: {0} {1} -server.custombuild = [yellow]カスタムビルド +server.custombuild = [accent]カスタムビルド confirmban = {0} をBanしてもよろしいですか? confirmkick = {0} をキックしてもよろしいですか? confirmvotekick = {0} を投票キックしてもよろしいですか? @@ -291,8 +291,8 @@ builtin = 組み込み map.delete.confirm = マップを削除してもよろしいですか? これは元に戻すことができません! map.random = [accent]ランダムマップ map.nospawn = このマップにはプレイヤーが出現するためのコアがありません! エディターで[accent]オレンジ色[]のコアをマップに追加してください。 -map.nospawn.pvp = このマップには敵のプレイヤーが出現するためのコアがありません! エディターで[SCARLET]オレンジ色ではない[]コアをマップに追加してください。 -map.nospawn.attack = このマップには攻撃するための敵のコアがありません! エディターで[SCARLET]赤色[]のコアをマップに追加してください。 +map.nospawn.pvp = このマップには敵のプレイヤーが出現するためのコアがありません! エディターで[scarlet]オレンジ色ではない[]コアをマップに追加してください。 +map.nospawn.attack = このマップには攻撃するための敵のコアがありません! エディターで[scarlet]赤色[]のコアをマップに追加してください。 map.invalid = マップの読み込みエラー: ファイルが無効、または破損しています。 workshop.update = 更新 workshop.error = ワークショップの詳細を取得中にエラーが発生しました: {0} @@ -511,7 +511,7 @@ zone.groundZero.description = Mindustryに慣れていない初心者向けの zone.frozenForest.description = ここでも山の近くに胞子が広がっていますが、極寒のこの地ではいずれなくなるでしょう。\n\n電力を使用してみましょう。火力発電機を建設し、修復機の使い方を学びましょう。 zone.desertWastes.description = 大量の廃棄物が散乱し、放棄された建造物が存在します。\nこのエリアには石炭が存在します。石炭を燃やして発電したり、グラファイトを生成しましょう。\n\n[lightgray]この着陸位置は保証できません。 zone.saltFlats.description = 砂漠の外れには塩類平原があります。このエリアには資源がほとんどありません。 敵はここに資源貯蔵施設を建てている。\n敵のコアを破壊し壊滅させましょう。 -zone.craters.description = このクレーターには、古い戦争の遺物である水が溜まっています。マップを開拓し、砂を集めましょう。メタガラスを生成して、水をポンプで吸い上げ、タレットやドリルを冷却しましょう。 +zone.craters.description = このクレーターには、古い戦争の遺物である水が溜まっています。マップを開拓し、砂を集めましょう。メタガラスを生成して、水をポンプで吸い上げ、ターレットやドリルを冷却しましょう。 zone.ruinousShores.description = 廃棄物を過ぎた先にあるのは海岸線です。かつてここには、沿岸防衛隊がありました。今では、ほとんど残っておらず、基本的な防御構造のみで他はすべてスクラップと化しました。\n技術を再発見し拡張してください。 zone.stainedMountains.description = 内陸には山があり、胞子に汚染されていません。\nまた、このエリアにはチタニウムが豊富に存在します。使い方を学びましょう。\n\nそして、ここには強力な敵がいます。 彼らに最強の部隊を送る時間を与えてはいけません。 zone.overgrowth.description = このエリアは大きくなり、胞子の発生源に近づきました。\n敵はここに前哨基地を設立しました。 ダガーユニットを用いて破壊し、失われたものを取り返してください。 @@ -1156,7 +1156,7 @@ block.force-projector.description = 周囲に六角形の力場を作り出し block.shock-mine.description = 踏んだ敵にダメージを与えます。敵に見えることはありません。 block.conveyor.description = 一般的なアイテム輸送ブロックです。アイテムを前方に移動し、自動的にターレットや機械などに搬入します。回転させることができます。 block.titanium-conveyor.description = 改良されたアイテム輸送ブロックです。通常のコンベアーよりも速くアイテムを輸送します。 -block.plastanium-conveyor.description = アイテムをまとめて輸送するブロックです。\n後ろにアイテムを搬入し、前方3方向にアイテムを搬出します。 +block.plastanium-conveyor.description = アイテムをまとめて輸送するブロックです。\n末端からアイテムを搬入し、先端3方向にアイテムを搬出します。 block.junction.description = 十字に交差したコンベアーをそれぞれ前方に搬出します。コンベアーで複雑な構造を組み立てるときに便利です。 block.bridge-conveyor.description = 高度な輸送ブロックです。地形や建物を超えて、3ブロック離れた場所にアイテムを輸送することができます。 block.phase-conveyor.description = 改良されたアイテム転送ブロックです。電力を使用して、離れた場所にあるフェーズコンベアーにアイテムを転送することができます。 diff --git a/core/assets/bundles/bundle_ko.properties b/core/assets/bundles/bundle_ko.properties index 6b497099e7..2c011a4c2f 100644 --- a/core/assets/bundles/bundle_ko.properties +++ b/core/assets/bundles/bundle_ko.properties @@ -1,4 +1,4 @@ -credits.text=[ROYAL]Anuken[] - [SKY]anukendev@gmail.com[] 가 제작함 +credits.text=[royal]Anuken[] - [sky]anukendev@gmail.com[] 가 제작함 credits = 제작자 contributors = 번역 및 개발 기여자들 discord=Mindustry Discord 에 가입하세요! @@ -88,7 +88,7 @@ save.quit = 저장 후 나가기 maps = 맵 maps.browse = 맵 검색 continue = 계속하기 -maps.none = [lighthray]맵을 찾을 수 없습니다! +maps.none = [lightgray]맵을 찾을 수 없습니다! invalid = 오류 pickcolor = 색 preparingconfig = 설정 사전준비 @@ -102,7 +102,7 @@ feature.unsupported = 이 기기는 이 기능을 지원하지 않습니다. mods.alphainfo = 현재의 모드는 시험적 기능이며, [scarlet] 버그가 많을 수도 있습니다.[].\n만약 버그를 발견할경우 Mindustry 깃허브 또는 디스코드로 제보해주세요. mods.alpha = [accent](시험적 기능) mods = 모드 -mods.none = [lighthray]모드가 없습니다! +mods.none = [lightgray]모드가 없습니다! mods.guide = 모드 제작 가이드 mods.report = 문제 신고 mods.openfolder = 모드 폴더 열기 @@ -124,7 +124,7 @@ mod.import = 모드 추가 mod.import.github = 깃허브에서 모드 불러오기 mod.item.remove = 이것은 모드[accent] '{0}'[]의 자원입니다. 이 자원을 삭제하려면, 이 모드를 제거해야합니다. mod.remove.confirm = 이 모드를 삭제하시겠습니까? -mod.author = [lighthray]제작자: [] {0} +mod.author = [lightgray]제작자: [] {0} mod.missing = 이 세이브 파일에는 설치하지 않은 모드나 현재 버전에 없는 데이터가 포함되어 있습니다. 세이브 파일이 손상될 수 있습니다. 불러오시겠습니까?\n[lightgray]모드 :\n{0} mod.preview.missing = 창작마당에 모드를 업로드하기 전에 미리보기 이미지를 추가해야합니다.\n[accent] 모드 폴더안에 preview.png[]이름의 미리보기 이미지를 준비한 후 다시 시도해주세요. mod.folder.missing = 창작마당에는 폴더 형태의 모드만 게시할 수 있습니다.\n모드를 폴더 형태로 바꾸려면 모드 파일을 모드 폴더에 압축을 풀고 이전 모드 파일을 삭제 후, 게임을 재시작하거나 모드를 다시 로드하십시오. @@ -137,9 +137,9 @@ filename = 파일 이름 : unlocked = 대상 정보 기록됨 completed = [accent]연구됨 techtree = 연구 기록 -research.list = [lighthray]연구: +research.list = [lightgray]연구: research = 연구 -researched = [lighthray]{0}연구 완료. +researched = [lightgray]{0}연구 완료. players = {0}명 접속 중 players.single = {0}명만 있음. players.search = 플레이어 검색 @@ -162,8 +162,8 @@ server.kicked.customClient = 이 서버는 직접 빌드한 버전을 지원하 server.kicked.gameover = 게임 오버! server.kicked.serverRestarting = 서버가 재시작합니다. server.versions = 클라이언트 버전: [accent] {0}[]\n서버 버전: [accent] {1}[] -host.info = [accent]호스트[] 버튼은 현재 네트워크의 [scarlet]6567[] 포트를 사용합니다.\n[lighthray]같은 Wi-Fi 또는 로컬 네트워크[] 에서 서버 목록을 볼 수 있습니다.\n\n만약 플레이어들이 이 IP를 통해 어디에서나 연결할 수 있게 하고 싶다면, 공유기 설정에서 [accent]포트 포워딩[]을 하시거나 VPN을 사용하셔야 합니다.\n\n[lighthray]참고: LAN 게임 연결에 문제가 있는 사람이 있다면, 방화벽 설정에서 Mindustry 가 로컬 네트워크에 액세스하도록 허용했는지 확인해주세요. -join.info = 여기서 서버 추가를 누르신 후, [accent]서버 IP[]를 입력하여 다른 서버에 접속할 수 있습니다.\n또는 [accent]로컬 네트워크(LAN)[] 서버를 검색하여 접속할 수 있습니다.\nLAN 및 WAN 멀티 플레이어 모두 지원합니다.\n\n[lighthray]참고:여기에서는 자동으로 글로벌 서버를 추가하지 않습니다. IP로 다른 사람의 서버에 접속하려면 직접 서버 주소를 찾아서 적으셔야합니다.[]\n\n[ROYAL]한국의 서버로는 [accent]mindustry.kr[]가 있습니다.\n서버 주소 입력방법은 < 주소:포트 >의 형식입니다.\n[royal]포트가 없을 시에는 그냥 주소만 입력하시면 됩니다.\n\n[royal]예시) mindustry.kr의 6567포트\nmindustry.kr:6567\n포트가 6567일 경우에는 :6567을 생략할 수 있습니다. +host.info = [accent]호스트[] 버튼은 현재 네트워크의 [scarlet]6567[] 포트를 사용합니다.\n[lightgray]같은 Wi-Fi 또는 로컬 네트워크[] 에서 서버 목록을 볼 수 있습니다.\n\n만약 플레이어들이 이 IP를 통해 어디에서나 연결할 수 있게 하고 싶다면, 공유기 설정에서 [accent]포트 포워딩[]을 하시거나 VPN을 사용하셔야 합니다.\n\n[lightgray]참고: LAN 게임 연결에 문제가 있는 사람이 있다면, 방화벽 설정에서 Mindustry 가 로컬 네트워크에 액세스하도록 허용했는지 확인해주세요. +join.info = 여기서 서버 추가를 누르신 후, [accent]서버 IP[]를 입력하여 다른 서버에 접속할 수 있습니다.\n또는 [accent]로컬 네트워크(LAN)[] 서버를 검색하여 접속할 수 있습니다.\nLAN 및 WAN 멀티 플레이어 모두 지원합니다.\n\n[lightgray]참고:여기에서는 자동으로 글로벌 서버를 추가하지 않습니다. IP로 다른 사람의 서버에 접속하려면 직접 서버 주소를 찾아서 적으셔야합니다.[]\n\n[royal]한국의 서버로는 [accent]mindustry.kr[]가 있습니다.\n서버 주소 입력방법은 < 주소:포트 >의 형식입니다.\n[royal]포트가 없을 시에는 그냥 주소만 입력하시면 됩니다.\n\n[royal]예시) mindustry.kr의 6567포트\nmindustry.kr:6567\n포트가 6567일 경우에는 :6567을 생략할 수 있습니다. hostserver = 서버 열기 invitefriends = 친구 초대 hostserver.mobile = 서버\n열기 @@ -197,7 +197,7 @@ server.edit = 서버 수정 server.outdated = [crimson]서버 버전이 낮습니다![] server.outdated.client = [crimson]클라이언트 버전이 낮습니다![] server.version = [lightgray]서버 버전: {0} {1} -server.custombuild = [yellow]사용자 정의 서버 +server.custombuild = [accent]사용자 정의 서버 confirmban = 이 플레이어를 차단하시겠습니까? confirmkick = 정말로 이 플레이어를 추방시키겠습니까? confirmvotekick = 정말로 이 플레이어 추방에 투표하시겠습니까? @@ -278,11 +278,11 @@ pausebuilding = [accent][[{0}][] 를 눌러 설계모드 진입 resumebuilding = [scarlet][[{0}][] 를 눌러 건설 시작 wave = [accent] {0} 웨이브 wave.waiting = [green]{0}초[]후 다음 웨이브 시작 -wave.waveInProgress = [lighthray]웨이브 진행중 -waiting = [lighthray]대기중... +wave.waveInProgress = [lightgray]웨이브 진행중 +waiting = [lightgray]대기중... waiting.players = 다른 플레이어를 기다리는 중... -wave.enemies = [lighthray]적 유닛 {0}마리 남았음 -wave.enemy = [lighthray]적 유닛 {0}마리 남음 +wave.enemies = [lightgray]적 유닛 {0}마리 남았음 +wave.enemy = [lightgray]적 유닛 {0}마리 남음 loadimage = 사진 불러오기 saveimage = 사진 저장 unknown = 알 수 없음 @@ -290,9 +290,9 @@ custom = 사용자 정의 builtin = 기본맵 map.delete.confirm = 이 맵을 삭제하시겠습니까? 이 명령은 취소할 수 없습니다! map.random = [accent]랜덤 맵 -map.nospawn = 이 맵에 플레이어가 생성될 코어가 없습니다! 맵 편집기에서 [ROYAL]노랑색 팀[]코어를 맵에 추가하세요. -map.nospawn.pvp = 이 맵에는 적팀 코어가 없습니다! 에디터에서 [ROYAL]노랑색 팀이 아닌[] 코어를 추가하세요. -map.nospawn.attack = 이 맵에는 플레이어가 공격할 수 있는 적의 코어가 없습니다! 에디터에서 [ROYAL] 빨강색 팀[] 코어를 맵에 추가하세요. +map.nospawn = 이 맵에 플레이어가 생성될 코어가 없습니다! 맵 편집기에서 [royal]노랑색 팀[]코어를 맵에 추가하세요. +map.nospawn.pvp = 이 맵에는 적팀 코어가 없습니다! 에디터에서 [royal]노랑색 팀이 아닌[] 코어를 추가하세요. +map.nospawn.attack = 이 맵에는 플레이어가 공격할 수 있는 적의 코어가 없습니다! 에디터에서 [royal] 빨강색 팀[] 코어를 맵에 추가하세요. map.invalid = 파일이 잘못되었거나 손상되어 맵을 열 수 없습니다. workshop.update = 창작마당 맵 업데이트 workshop.error = 창작마당 정보를 불러오는 중에 오류가 발생했습니다: {0} @@ -337,7 +337,7 @@ waves.load = 클립보드에서 불러오기 waves.invalid = 클립보드의 잘못된 웨이브 데이터 waves.copied = 웨이브 코드 복사됨 waves.none = 적 웨이브가 설정되지 않았습니다.\n비어있을 시 자동으로 기본 적 웨이브로 설정됩니다. -editor.default = [lighthray]<기본값> +editor.default = [lightgray]<기본값> details = 설명 edit = 편집 editor.name = 이름: @@ -399,7 +399,7 @@ toolmode.fillteams.description = 블록 대신 팀 건물로 채웁니다. toolmode.drawteams = 팀 색상으로 그리기 toolmode.drawteams.description = 블록 대신 팀 건물을 배치합니다. -filters.empty = [lighthray]필터가 없습니다!! 아래 버튼을 눌러 추가하세요. +filters.empty = [lightgray]필터가 없습니다!! 아래 버튼을 눌러 추가하세요. filter.distort = 왜곡 filter.noise = 맵 전체에 타일 혹은 블록 뿌리기 filter.median = 타일 비율 조정 @@ -450,15 +450,15 @@ mapeditor = 맵 편집기 abandon = 지역 포기 abandon.text = 이 구역의 모든 자원이 적에게 빼앗길 것입니다. locked = 잠김 -complete = [lighthray]지역 해금 조건 : +complete = [lightgray]지역 해금 조건 : requirement.wave = {1}지역에서 {0}웨이브 달성 requirement.core = {0}지역에서 적 코어를 파괴 requirement.unlock = {0}지역 해금 -resume = 현재 진행 중인 지역\n[lighthray]{0} -bestwave = [lighthray]달성한 최고 웨이브: {0} +resume = 현재 진행 중인 지역\n[lightgray]{0} +bestwave = [lightgray]달성한 최고 웨이브: {0} launch = < 출격 > launch.title = 출격 성공 -launch.next = [lighthray]다음 출격 기회는 {0} 웨이브에서 나타납니다. +launch.next = [lightgray]다음 출격 기회는 {0} 웨이브에서 나타납니다. launch.unable2 = [scarlet]출격할 수 없습니다.[] launch.confirm = 출격하게 되면 코어에 저장된 모든 자원이 창고로 들어갑니다.\n또한 출격한 지역에는 아무것도 남지 않습니다. launch.skip.confirm = 만약 지금 출격하지 않고 스킵하신다면, 다음 출격 웨이브까지 기다려야 합니다. @@ -468,7 +468,7 @@ bannedblocks = 금지된 블록들 addall = 모두 추가 configure.locked = [lightgray]{0}시 시작자원 설정이 해금됩니다. configure.invalid = 해당 값은 0 과 {0} 사이여야 합니다. -zone.unlocked = [lighthray]지역 {0}이 잠금 해제되었습니다! +zone.unlocked = [lightgray]지역 {0}이 잠금 해제되었습니다! zone.requirement.complete = {0} 웨이브 달성 성공! \n{1} 지역 요구사항이 충족되었습니다! zone.config.unlocked = 시작자원 설정 해금!: [lightgray]\n{0} zone.resources = 감지된 자원 목록 : @@ -516,8 +516,8 @@ zone.tarFields.description = 산지와 사막 사이에 위치한 석유 생산 zone.desolateRift.description = 극도로 위험한 지역입니다. 자원은 풍부하지만 사용 가능한 공간은 거의 없습니다. 코어 파괴의 위험성이 높으니 가능한 빨리 떠나십시오. 또한 적의 공격 딜레이가 길다고 안심하지 마십시오. zone.nuclearComplex.description = 과거 토륨의 생산, 연구와 처리를 위해 운영되었던 시설입니다. 지금은 그저 폐허로 전락했으며, 다수의 적이 배치되어 있는 지역입니다. 그들은 끊임없이 당신을 공격할 것입니다.\n\n[lightgray]토륨의 다양한 사용법을 연구하고 익히십시오. zone.fungalPass.description = 고산지대와 포자지대 사이의 지역입니다. 소규모의 적 정찰기지가 있으니 디거와 크롤러를 이용해 적의 코어를 파괴하십시오. -zone.impact0078.description = [ROYAL]죄송합니다. 아직 설명이 준비되지 않았습니다. -zone.crags.description = [ROYAL]죄송합니다. 아직 설명이 준비되지 않았습니다. +zone.impact0078.description = [royal]죄송합니다. 아직 설명이 준비되지 않았습니다. +zone.crags.description = [royal]죄송합니다. 아직 설명이 준비되지 않았습니다. settings.language = 언어 settings.data = 게임 데이터 @@ -544,7 +544,7 @@ blocks.output = 출력 자원 blocks.booster = 가속 blocks.tiles = 요구되는 타일 blocks.affinities = 가속되는 -block.unknown = [lighthray]OHNO +block.unknown = [scarlet]OHNO blocks.powercapacity = 전력 용량 blocks.powershot = 1발당 전력 소모량 blocks.damage = 공격력 @@ -636,7 +636,7 @@ setting.hints.name = 힌트 활성화 setting.buildautopause.name = 건설 자동 일시정지 setting.animatedwater.name = 움직이는 물 setting.animatedshields.name = 움직이는 보호막 -setting.antialias.name = 안티 에일리어싱[lighthray] (재시작 필요)[] +setting.antialias.name = 안티 에일리어싱[lightgray] (재시작 필요)[] setting.indicators.name = 아군/적 인디케이터 표시 setting.autotarget.name = 자동 조준 setting.keyboard.name = 마우스+키보드 조작 @@ -663,11 +663,11 @@ setting.seconds = {0} 초 setting.blockselecttimeout.name = 블록 선택 시간 초과 setting.milliseconds = {0} ms setting.fullscreen.name = 전체 화면 -setting.borderlesswindow.name = 테두리 없는 창모드[lighthray] (재시작이 필요할 수 있습니다) +setting.borderlesswindow.name = 테두리 없는 창모드[lightgray] (재시작이 필요할 수 있습니다) setting.fps.name = FPS 표시 setting.blockselectkeys.name = 블록 선택 키 setting.vsync.name = VSync 활성화 -setting.pixelate.name = 픽셀화[lighthray] (렉이 심할 경우 이 옵션을 켜주세요.) +setting.pixelate.name = 픽셀화[lightgray] (렉이 심할 경우 이 옵션을 켜주세요.) setting.minimap.name = 미니맵 보기 setting.position.name = 플레이어 위치 표시 setting.musicvol.name = 음악 크기 @@ -774,14 +774,14 @@ rules.blockhealthmultiplier = 건물 체력 배수 rules.playerhealthmultiplier = 플레이어 체력 배수 rules.playerdamagemultiplier = 플레이어 공격력 배수 rules.unitdamagemultiplier = 유닛 공격력 배수 -rules.enemycorebuildradius = 적 코어 건설 금지구역 범위: [lighthray] (타일) -rules.respawntime = 플레이어 부활 대기 시간: [lighthray] (초) -rules.wavespacing = 웨이브 간격: [lighthray] (초) +rules.enemycorebuildradius = 적 코어 건설 금지구역 범위: [lightgray] (타일) +rules.respawntime = 플레이어 부활 대기 시간: [lightgray] (초) +rules.wavespacing = 웨이브 간격: [lightgray] (초) rules.buildcostmultiplier = 건설 소모 배수 rules.buildspeedmultiplier = 건설 속도 배수 rules.deconstructrefundmultiplier = Deconstruct Refund Multiplier rules.waitForWaveToEnd = 웨이브가 끝날때까지 기다리는 중 -rules.dropzoneradius = 소환 충격파 범위: [lighthray] (타일) +rules.dropzoneradius = 소환 충격파 범위: [lightgray] (타일) rules.respawns = 웨이브당 최대 플레이어 부활 횟수 rules.limitedRespawns = 플레이어 부활 제한 rules.title.waves = 웨이브 @@ -842,21 +842,21 @@ mech.trident-ship.weapon = 폭탄 저장고 mech.glaive-ship.name = 글레이브 mech.glaive-ship.weapon = 중무장 인화성 소총 item.corestorable = [lightgray]코어 저장 가능 여부: {0} -item.explosiveness = [lighthray]폭발성: {0} -item.flammability = [lighthray]인화성: {0} -item.radioactivity = [lighthray]방사능: {0} -unit.health = [lighthray]체력: {0} -unit.speed = [lighthray]속도: {0} -mech.weapon = [lighthray]무기: {0} -mech.health = [lighthray]체력: {0} -mech.itemcapacity = [lighthray]아이템 수용 용량: {0} -mech.minespeed = [lighthray]채광 속도: {0}% -mech.minepower = [lighthray]채광 레벨: {0} -mech.ability = [lighthray]능력: {0} -mech.buildspeed = [lighthray]건설 속도: {0}% -liquid.heatcapacity = [lighthray]발열 용량: {0} -liquid.viscosity = [lighthray]점도: {0} -liquid.temperature = [lighthray]온도: {0} +item.explosiveness = [lightgray]폭발성: {0} +item.flammability = [lightgray]인화성: {0} +item.radioactivity = [lightgray]방사능: {0} +unit.health = [lightgray]체력: {0} +unit.speed = [lightgray]속도: {0} +mech.weapon = [lightgray]무기: {0} +mech.health = [lightgray]체력: {0} +mech.itemcapacity = [lightgray]아이템 수용 용량: {0} +mech.minespeed = [lightgray]채광 속도: {0}% +mech.minepower = [lightgray]채광 레벨: {0} +mech.ability = [lightgray]능력: {0} +mech.buildspeed = [lightgray]건설 속도: {0}% +liquid.heatcapacity = [lightgray]발열 용량: {0} +liquid.viscosity = [lightgray]점도: {0} +liquid.temperature = [lightgray]온도: {0} block.sand-boulder.name = 사암 block.grass.name = 잔디 @@ -884,7 +884,7 @@ block.thruster.name = 쓰러스터 block.kiln.name = 가마 block.graphite-press.name = 흑연 압축기 block.multi-press.name = 다중 압축기 -block.constructing = {0} [lighthray](만드는중) +block.constructing = {0} [lightgray](만드는중) block.spawn.name = 적 소환지점 block.core-shard.name = 코어:조각 block.core-foundation.name = 코어:기초 @@ -1085,7 +1085,7 @@ tutorial.drill.mobile = 수동으로 채광하는 것은 효율이 낮습니다. tutorial.blockinfo = 블록들은 각각 능력이 다르며, 하위 티어의 드릴은 채광할 수 있는 광물의 종류가 적습니다.\n블록의 정보를 확인하기 위해서는,[accent] 카테고리의 블록을 누른 후, "?"버튼을 클릭하여 블록의 정보를 확인하세요.[]\n[royal]궁금한 블록의 정보를 아무거나 한번 확인해보세요. tutorial.conveyor = [accent]컨베이어[]는 붙어있는 곳에서 받는 아이템을 코어로 운반합니다.\n드릴에서 코어까지 컨베이어 라인을 만드세요.\n[accent]컨베이어를 클릭 후, 건설을 시작하려는 지점을 마우스 왼쪽 버튼으로 꾸욱 누른 뒤[] 드래그하여 설계하세요.\n\n[accent]컨베이어를 2개 이상 건설 후 광물을 코어로 운반하세요. tutorial.conveyor.mobile = [accent]컨베이어[]는 붙어있는 곳에서 받는 아이템을 코어로 운반합니다.\n드릴에서 코어까지 컨베이어 라인을 만드세요.\n[accent]컨베이어를 화면에 1초 정도 클릭하여 작은 노란색 원이 잠깐 나타났다 사라질 때까지 기다리신 후[] 드래그하여 설계하세요.\n\n[accent]컨베이어를 2개 이상 건설 후 광물을 코어로 운반하세요. -tutorial.turret = 방어 구조물은 [lighthray]적[]을 물리치기 위해 반드시 필요합니다.\n포탑 카테고리의 듀오 포탑을 선택하신 후, 기지 근처에 듀오 포탑을 설치하세요. +tutorial.turret = 방어 구조물은 [lightgray]적[]을 물리치기 위해 반드시 필요합니다.\n포탑 카테고리의 듀오 포탑을 선택하신 후, 기지 근처에 듀오 포탑을 설치하세요. tutorial.drillturret = 듀오 포탑이 공격하기 위해서는[accent] 구리 탄약[]을 필요로 합니다.\n포탑 근처의 구리 광맥에 드릴을 설치하고 컨베이어로 포탑과 이어서 포탑에 구리를 공급하세요.\n또는 직접 코어에서 광물을 꺼내 포탑에 넣을 수도 있습니다. tutorial.pause = 싱글 플레이에서는 게임을 [accent]일시정지[]할 수 있습니다.\n일시정지하면 교전과 더불어 건설까지 일시정지됩니다.\n\n[accent]스페이스 버튼[]을 눌러 일시정지하세요. tutorial.pause.mobile = 싱글 플레이에서는 게임을 [accent]일시정지[]할 수 있습니다.\n일시정지하면 교전과 더불어 건설까지 일시정지됩니다.\n\n[accent]일시정지 버튼[]을 눌러 일시정지하세요. @@ -1095,8 +1095,8 @@ tutorial.breaking = 설계를 방해하는 블록을 제거하기 위해서 [acc tutorial.breaking.mobile = 설계를 방해하는 블록을 제거하기 위해서 [accent]망치 버튼을 눌러 제거모드[]로 변경한 뒤, 첫번째 지점을 누른 후 드래그하여 범위를 지정한뒤 V버튼을 클릭해 블록을 제거하세요.\n\n[accent]코어 근처의 조각벽 3개[]를 제거하세요. tutorial.withdraw = [accent]코어나 창고, 공장[]같은 자원을 넣을 수 있는 일부 블록에서는 직접 자원을 빼낼 수도 있습니다.\n[accent]코어를 클릭 후 자원을 눌러서 자원을 빼내세요. tutorial.deposit = 자원을 다시 블록에 넣을 수도 있습니다.\n\n[accent]당신의 기체에서 코어로 드래그[]하여 자원을 되돌려 넣으세요. -tutorial.waves = [lighthray]적[]이 접근합니다.\n당신의 기체는 적을 클릭하여 공격할 수 있습니다. 또한, 구리를 더 캐내고 포탑을 더 지어서 방어를 강화하세요.\n\n[accent]2웨이브 동안 코어를 보호하세요.[] -tutorial.waves.mobile = [lighthray]적[]이 접근합니다.\n당신의 기체는 적을 자동조준하지만, 원하는 적을 클릭하여 공격하고 싶은 대상을 바꿀 수 있습니다.\n구리를 더 캐내고 포탑을 더 지어서 방어를 강화하세요.\n\n[accent]2웨이브 동안 코어를 방어하세요.[] +tutorial.waves = [lightgray]적[]이 접근합니다.\n당신의 기체는 적을 클릭하여 공격할 수 있습니다. 또한, 구리를 더 캐내고 포탑을 더 지어서 방어를 강화하세요.\n\n[accent]2웨이브 동안 코어를 보호하세요.[] +tutorial.waves.mobile = [lightgray]적[]이 접근합니다.\n당신의 기체는 적을 자동조준하지만, 원하는 적을 클릭하여 공격하고 싶은 대상을 바꿀 수 있습니다.\n구리를 더 캐내고 포탑을 더 지어서 방어를 강화하세요.\n\n[accent]2웨이브 동안 코어를 방어하세요.[] tutorial.launch = 특정 웨이브에 도달하면 [accent]출격[]이 가능합니다.\n[accent]출격[]을 하게되면 해당 지역의 코어에 들어있는 자원들을 캠페인의 자원 창고로 보내지만, 해당 지역의 [accent]모든 것들[]은 날아가게 되니 주의하세요. item.copper.description = 모든 종류의 블록에서 광범위하게 사용되는 자원입니다. @@ -1191,9 +1191,9 @@ block.router.description = 한 방향에서 자원을 넣을 시 최대 3개의 block.distributor.description = 자원을 최대 7개의 다른 방향으로 균등하게 분배하는 고급 분배기. block.overflow-gate.description = 평소에는 자원이 들어온 방향으로 자원을 통과시키지만, 정면이 자원으로 꽉 차거나 막힐 시 옆으로 자원을 내보냅니다. block.underflow-gate.description = 포화 필터의 정반대 방식의 필터입니다. 받은 자원을 먼저 필터의 양 옆으로 보내고 양 옆으로 자원을 보낼 수 없다면 정면으로 내보냅니다. -block.mass-driver.description = 자원 수송 포탑\n모인 자원을 전기를 사용하여 또 다른 매스 드라이버로 발사합니다.\n[ROYAL]받을 때도 전기를 사용합니다. +block.mass-driver.description = 자원 수송 포탑\n모인 자원을 전기를 사용하여 또 다른 매스 드라이버로 발사합니다.\n[royal]받을 때도 전기를 사용합니다. block.mechanical-pump.description = 느린 속도로 액체를 퍼올리지만, 전력를 사용하지 않는 펌프입니다. -block.rotary-pump.description = 전력을 사용해 빠른 속도로 액체를 끌어올릴 수 있는 펌프입니다.\n\n[ROYAL]타일당 액체를 퍼올리는 속도가 가장 빠릅니다. +block.rotary-pump.description = 전력을 사용해 빠른 속도로 액체를 끌어올릴 수 있는 펌프입니다.\n\n[royal]타일당 액체를 퍼올리는 속도가 가장 빠릅니다. block.thermal-pump.description = 가장 강력한 펌프. block.conduit.description = 기본 파이프\n액체를 배치된 방향으로 느리게 운송합니다. block.pulse-conduit.description = 고급 파이프\n기본 파이프보다 액체 운송 속도가 빠릅니다. @@ -1207,32 +1207,32 @@ block.power-node.description = 전력을 연결된 대상과 연동시킵니다. block.power-node-large.description = 전력을 연결된 대상과 연동시킵니다.\n최대 30개의 대상을 연결시킬 수 있고, 범위가 더 넓습니다. block.surge-tower.description = 전력을 연결된 대상과 연동시킵니다.\n2개의 대상만 연결시킬 수 있지만 대신에 범위가 매우 넓습니다. block.diode.description = 이 블록을 배터리와 배터리 사이에 놓아 연결할경우 전력은 화살표 방향으로만 이동할 수 있습니다. 화살표의 뒤에 있는 배터리의 전력량이 앞에 있는 배터리보다 많을 경우에만 이동시킵니다. -block.battery.description = 전력 생산량에 여유가 있을경우, 생산되고 남은 전력을 여기에 저장합니다.\n\n[ROYAL]이것을 이용해 한순간에 많은 전력을 사용하는 포탑들을 보조가능합니다. -block.battery-large.description = 일반 배터리보다 훨씬 많은 량의 전력을 저장합니다.\n\n[ROYAL]배터리 9개를 설치하는 것보다 효율이 좋습니다. +block.battery.description = 전력 생산량에 여유가 있을경우, 생산되고 남은 전력을 여기에 저장합니다.\n\n[royal]이것을 이용해 한순간에 많은 전력을 사용하는 포탑들을 보조가능합니다. +block.battery-large.description = 일반 배터리보다 훨씬 많은 량의 전력을 저장합니다.\n\n[royal]배터리 9개를 설치하는 것보다 효율이 좋습니다. block.combustion-generator.description = 인화성 물질을 태워 소량의 전력을 생산합니다. -block.thermal-generator.description = 열이 있는 타일 위에 건설하면 전력을 생산합니다.\n\n[ROYAL]용암 웅덩이 혹은 열기지대에서 무한히 열을 발산합니다. -block.turbine-generator.description = 화력 발전기보다 효율적이지만, 추가적으로 액체가 필요합니다.\n\n[ROYAL]일반 타일에서 물추출기 1개로 2개를 가동시킬 수 있습니다. +block.thermal-generator.description = 열이 있는 타일 위에 건설하면 전력을 생산합니다.\n\n[royal]용암 웅덩이 혹은 열기지대에서 무한히 열을 발산합니다. +block.turbine-generator.description = 화력 발전기보다 효율적이지만, 추가적으로 액체가 필요합니다.\n\n[royal]일반 타일에서 물추출기 1개로 2개를 가동시킬 수 있습니다. block.differential-generator.description = 냉각수와 피라타이트의 온도 차를 이용해 안정적으로 원자로에 버금가는 양의 전력을 생산합니다. block.rtg-generator.description = 방사성동위원소 열전기 발전기\n토륨 또는 메타를 사용하며, 냉각이 필요 없는 발전을 하지만 토륨 원자로에 비해 발전량이 매우 적습니다. block.solar-panel.description = 태양광으로 극소량의 전기을 생산합니다. block.solar-panel-large.description = 일반 태양 전지판보다 훨씬 발전량이 많지만, 건축비도 훨씬 비쌉니다. block.thorium-reactor.description = 토륨을 이용해 막대한 양의 전력을 생산합니다. 지속적인 냉각이 필요하며 냉각제의 양이 부족하면 크게 폭발합니다.\n\n[royal]폭발로 인한 피해를 버틸 수 있는 건물은 없습니다. block.impact-reactor.description = 최첨단 발전기\n복합폭약과 냉각수를 이용해 최고의 효율로 매우 많은 양의 전력을 생산할 수 있습니다. 발전을 시작하는 데 전력이 필요하며 발전기를 가동하는 데 시간이 많이 걸립니다.\n[royal]오버드라이브 프로젝터로 10000이상의 전력을 생산할 수 있으며, 가동중에 전력이 끊기면 가동을 다시 해야하기 때문에 창고, 물탱크, 배터리 등을 주위에 설치하고 나서 가동하는 것을 추천합니다. -block.mechanical-drill.description = 싸구려 드릴. 적절한 타일 위에 설치되었을 때 매우 느린 속도로 채광합니다.\n\n[ROYAL]구리와 납은 채광 드론으로 대체가 가능합니다. -block.pneumatic-drill.description = 티타늄을 채광할 수 있는 향상된 드릴입니다. \n\n[ROYAL]전력을 사용하지 않는 드릴이지만 물과 오버드라이브를 이용하여 가속할 수 있습니다. -block.laser-drill.description = 토륨을 채광할 수 있는 고급 드릴입니다. 전력과 물을 공급하여 빠른 속도로 채광할 수 있습니다.\n\n[ROYAL]드릴 밑에 배치된 광물타일의 비율에 따라 채광량이 달라집니다. -block.blast-drill.description = 최상위 드릴입니다. 많은 양의 전력이 필요합니다.\n\n[ROYAL]물추출기 하나면 충분합니다. -block.water-extractor.description = 땅에서 물을 추출합니다. 근처에 호수가 없을 때 사용하세요.\n\n[ROYAL]물추출기의 효율이 달라지는 타일이 있습니다. +block.mechanical-drill.description = 싸구려 드릴. 적절한 타일 위에 설치되었을 때 매우 느린 속도로 채광합니다.\n\n[royal]구리와 납은 채광 드론으로 대체가 가능합니다. +block.pneumatic-drill.description = 티타늄을 채광할 수 있는 향상된 드릴입니다. \n\n[royal]전력을 사용하지 않는 드릴이지만 물과 오버드라이브를 이용하여 가속할 수 있습니다. +block.laser-drill.description = 토륨을 채광할 수 있는 고급 드릴입니다. 전력과 물을 공급하여 빠른 속도로 채광할 수 있습니다.\n\n[royal]드릴 밑에 배치된 광물타일의 비율에 따라 채광량이 달라집니다. +block.blast-drill.description = 최상위 드릴입니다. 많은 양의 전력이 필요합니다.\n\n[royal]물추출기 하나면 충분합니다. +block.water-extractor.description = 땅에서 물을 추출합니다. 근처에 호수가 없을 때 사용하세요.\n\n[royal]물추출기의 효율이 달라지는 타일이 있습니다. block.cultivator.description = 소량의 포자를 산업용으로 사용가능한 포자 방울로 배양하는 건물입니다. block.oil-extractor.description = 대량의 전력과 물을 사용하여 모래에서 석유를 추출합니다. 근처에 직접적인 석유 공급원이 없을 때 사용하세요. -block.core-shard.description = 코어의 1단계 형태입니다.\n이것이 파괴되면 플레이하고 있는 지역과의 연결이 끊어지니 적의 공격에 파괴되지 않도록 주의하세요.\n[ROYAL](연결이 끊긴다는 말은 게임오버와 같습니다.) -block.core-foundation.description = 코어의 2단계 형태입니다.\n첫 번째 코어보다 더 튼튼하고 더 많은 자원을 저장할 수 있습니다.\n\n[ROYAL]크기도 좀 더 큽니다. +block.core-shard.description = 코어의 1단계 형태입니다.\n이것이 파괴되면 플레이하고 있는 지역과의 연결이 끊어지니 적의 공격에 파괴되지 않도록 주의하세요.\n[royal](연결이 끊긴다는 말은 게임오버와 같습니다.) +block.core-foundation.description = 코어의 2단계 형태입니다.\n첫 번째 코어보다 더 튼튼하고 더 많은 자원을 저장할 수 있습니다.\n\n[royal]크기도 좀 더 큽니다. block.core-nucleus.description = 코어의 3단계이자 마지막 형태입니다.\n가장 튼튼하며 막대한 양의 자원들을 저장할 수 있습니다. -block.vault.description = 각종 자원을 대량으로 저장할 수 있습니다.[lighthray]언로더[]를 사용하여 창고에서 물건을 회수할 수 있습니다.\n\n[royal]포탑의 탄약, 핵융합로의 폭발물, 원자로 냉각수의 티타늄등 여러 자원들의 여분을 미리 저장하여 혹시 모를 사태를 예방하세요. -block.container.description = 각종 자원을 저장할 수 있습니다.[lighthray]언로더[]를 사용하여 컨테이너에서 자원을 회수할 수 있습니다.\n\n[royal]또는 컨테이너를 클릭하고 자원을 눌러 자원을 빼낼 수도 있습니다. +block.vault.description = 각종 자원을 대량으로 저장할 수 있습니다.[lightgray]언로더[]를 사용하여 창고에서 물건을 회수할 수 있습니다.\n\n[royal]포탑의 탄약, 핵융합로의 폭발물, 원자로 냉각수의 티타늄등 여러 자원들의 여분을 미리 저장하여 혹시 모를 사태를 예방하세요. +block.container.description = 각종 자원을 저장할 수 있습니다.[lightgray]언로더[]를 사용하여 컨테이너에서 자원을 회수할 수 있습니다.\n\n[royal]또는 컨테이너를 클릭하고 자원을 눌러 자원을 빼낼 수도 있습니다. block.unloader.description = 컨테이너, 창고 또는 코어에서 인접한 블록으로 자원을 내보냅니다. 내보낼 자원의 종류는 언로더를 눌러 정할 수 있습니다. block.launch-pad.description = 출격할 필요 없이 자원을 수송시킵시다.\n\n[royal]캠페인에서 이것을 이용해 게임 중에 연구가 가능합니다. -block.launch-pad-large.description = 출격 패드의 강화버전\n더 많은 자원을 더 자주 출격시킵니다.\n\n[ROYAL]크기도 더 큽니다. +block.launch-pad-large.description = 출격 패드의 강화버전\n더 많은 자원을 더 자주 출격시킵니다.\n\n[royal]크기도 더 큽니다. block.duo.description = 소형 포탑입니다.\n가장 기본적인 포탑으로 약한 탄환을 발사합니다. block.scatter.description = 중형 대공 포탑입니다.\n납이나 고철 덩어리를 적에게 쏩니다. block.scorch.description = 소형 포탑입니다.\n지상의 적을 매우 강력한 화염으로 지져버립니다. 근거리에서 효과적입니다.\n\n[royal]유닛 상대로 무지막지한 공격력을 보여줍니다. @@ -1248,21 +1248,21 @@ block.cyclone.description = 대형 포탑입니다.\n초고속으로 사격합 block.spectre.description = 초대형 포탑입니다.\n한 번에 두 발의 강력한 총알을 쏩니다. block.meltdown.description = 초대형 포탑.\n장거리의 강력한 열광선을 발사합니다. block.command-center.description = 아군 유닛에게 이동 명령을 내릴 수 있는 건물입니다.\n명령의 종류는 순찰/공격/후퇴가 있으며, 순찰은 유닛이 순찰 지점을 돌아다니게, 공격은 유닛들을 적 코어를 향해 공격하도록, 후퇴는 유닛들을 아군 코어 또는 공장으로 돌아오게 합니다.\n\n[royal]생존 모드일 경우 공격 명령이 유닛을 적 생성 지점으로 보내니 조심하세요. -block.draug-factory.description = 구리와 납을 캐는 채광 드론을 생산합니다.\n\n[ROYAL]이 드론은 영혼을 가지고 있습니다. -block.spirit-factory.description = 블록을 수리하는 수리 드론을 생산합니다.\n\n[ROYAL]드론에도 정령이 있다죠. -block.phantom-factory.description = 건설을 도와주는 빌더 드론을 생산합니다.\n\n[ROYAL]당신의 환영입니다. -block.wraith-factory.description = 빠른 뺑소니 요격기 유닛을 생산합니다.\n\n[ROYAL]체력 자체는 무척 적습니다. -block.ghoul-factory.description = 중탄두 폭격기를 생산합니다.\n\n[ROYAL]적 위를 유령처럼 맴돕니다. -block.revenant-factory.description = 중량의 복합폭약 스워머 포대를 가진 전함을 생산합니다.\n\n[ROYAL] -block.dagger-factory.description = 기본 지상 유닛을 생산합니다.\n\n[ROYAL]대거지만 단검으로 공격하진 않습니다. -block.crawler-factory.description = 자폭하는 지상 유닛을 생산합니다.\n\n[ROYAL]레일만으로도 막을 수 있습니다. -block.titan-factory.description = 화염방사기를 장착한 지상유닛를 생산합니다.\n\n[ROYAL]유닛 상대로 강력한 공격력을 보여줍니다. +block.draug-factory.description = 구리와 납을 캐는 채광 드론을 생산합니다.\n\n[royal]이 드론은 영혼을 가지고 있습니다. +block.spirit-factory.description = 블록을 수리하는 수리 드론을 생산합니다.\n\n[royal]드론에도 정령이 있다죠. +block.phantom-factory.description = 건설을 도와주는 빌더 드론을 생산합니다.\n\n[royal]당신의 환영입니다. +block.wraith-factory.description = 빠른 뺑소니 요격기 유닛을 생산합니다.\n\n[royal]체력 자체는 무척 적습니다. +block.ghoul-factory.description = 중탄두 폭격기를 생산합니다.\n\n[royal]적 위를 유령처럼 맴돕니다. +block.revenant-factory.description = 중량의 복합폭약 스워머 포대를 가진 전함을 생산합니다.\n\n[royal] +block.dagger-factory.description = 기본 지상 유닛을 생산합니다.\n\n[royal]대거지만 단검으로 공격하진 않습니다. +block.crawler-factory.description = 자폭하는 지상 유닛을 생산합니다.\n\n[royal]레일만으로도 막을 수 있습니다. +block.titan-factory.description = 화염방사기를 장착한 지상유닛를 생산합니다.\n\n[royal]유닛 상대로 강력한 공격력을 보여줍니다. block.fortress-factory.description = 중대포 지상유닛를 생산합니다. block.repair-point.description = 주변에서 가장 가까운 손상된 유닛을 지속적으로 치료합니다. -block.dart-mech-pad.description = 기본적인 공격용 지상 기체로 전환할 수 있습니다.\n눌러서 변신하세요.\n\n[ROYAL]한 번 더 누르면 기본 공중 기체로 전환가능합니다. -block.delta-mech-pad.description = 전기공격의 특수능력을 가진 기체로 전환할 수 있습니다.\n눌러서 전환하세요.\n\n[ROYAL]공중으로 날았다가 착지하는 것으로 특수능력의 발현이 가능합니다. -block.tau-mech-pad.description = 수리의 능력을 가진 지원형 기체로 전환할 수 있습니다.\n눌러서 전환하세요.\n\n[ROYAL]주변에 피해를 입은 유닛이 있다면 수리합니다. -block.omega-mech-pad.description = 포탑과의 전투가 용이하고 기체중에서 가장 단단한 기체로 전환할 수 있습니다.\n눌러서 전환하세요.\n\n[ROYAL]교전시에 지상에 착지한 상태라면 방어모드에 진입해 90퍼센트의 피해를 흡수합니다. -block.javelin-ship-pad.description = 전기공격의 특수능력을 가진 빠른 요격체로 전환할 수 있습니다.\n눌러서 전환하세요.\n\n[ROYAL]최고 속도에 도달하면 주변을 전기로 지져버립니다. -block.trident-ship-pad.description = 잘 무장된 중폭격기로 전환이 가능합니다.\n눌러서 전환하세요.\n\n[ROYAL]적들의 위에서 폭격하기 때문에 비전투 건물이나 보호막을 파괴할 때 용이합니다. 더해서 건물 건설 속도가 가장 빠릅니다. -block.glaive-ship-pad.description = 방화기를 장착한 전투기로 전환이 가능합니다.\n누르거나 클릭하여 이 기체로 바꿉니다.\n\n[ROYAL]속도가 가장 빠릅니다. +block.dart-mech-pad.description = 기본적인 공격용 지상 기체로 전환할 수 있습니다.\n눌러서 변신하세요.\n\n[royal]한 번 더 누르면 기본 공중 기체로 전환가능합니다. +block.delta-mech-pad.description = 전기공격의 특수능력을 가진 기체로 전환할 수 있습니다.\n눌러서 전환하세요.\n\n[royal]공중으로 날았다가 착지하는 것으로 특수능력의 발현이 가능합니다. +block.tau-mech-pad.description = 수리의 능력을 가진 지원형 기체로 전환할 수 있습니다.\n눌러서 전환하세요.\n\n[royal]주변에 피해를 입은 유닛이 있다면 수리합니다. +block.omega-mech-pad.description = 포탑과의 전투가 용이하고 기체중에서 가장 단단한 기체로 전환할 수 있습니다.\n눌러서 전환하세요.\n\n[royal]교전시에 지상에 착지한 상태라면 방어모드에 진입해 90퍼센트의 피해를 흡수합니다. +block.javelin-ship-pad.description = 전기공격의 특수능력을 가진 빠른 요격체로 전환할 수 있습니다.\n눌러서 전환하세요.\n\n[royal]최고 속도에 도달하면 주변을 전기로 지져버립니다. +block.trident-ship-pad.description = 잘 무장된 중폭격기로 전환이 가능합니다.\n눌러서 전환하세요.\n\n[royal]적들의 위에서 폭격하기 때문에 비전투 건물이나 보호막을 파괴할 때 용이합니다. 더해서 건물 건설 속도가 가장 빠릅니다. +block.glaive-ship-pad.description = 방화기를 장착한 전투기로 전환이 가능합니다.\n누르거나 클릭하여 이 기체로 바꿉니다.\n\n[royal]속도가 가장 빠릅니다. diff --git a/core/assets/bundles/bundle_lt.properties b/core/assets/bundles/bundle_lt.properties index 58022c7c13..9b1a01c642 100644 --- a/core/assets/bundles/bundle_lt.properties +++ b/core/assets/bundles/bundle_lt.properties @@ -1,4 +1,4 @@ -credits.text = Kūrėjas [ROYAL]Anuken[] - [SKY]anukendev@gmail.com[] +credits.text = Kūrėjas [royal]Anuken[] - [sky]anukendev@gmail.com[] credits = Kreditai contributors = Vertėjai ir Padėjėjai discord = Prisijunkite prie Mindustry Discord! @@ -101,7 +101,7 @@ feature.unsupported = Jūsų įrenginys nepalaiko šios funkcijos. mods.alphainfo = Prisiminkite, jog modifikacijos vis dar yra alpha, ir[scarlet] gali būti [].\nPraneškite apie rastas klaidas Mindustry GitHub puslapyje arba Discord serveryje. mods.alpha = [accent](Alpha) mods = Modifikacijos -mods.none = [LIGHT_GRAY]Modifikacijos nerastos +mods.none = [lightgray]Modifikacijos nerastos mods.guide = Modifikavimo pagalba mods.report = Pranešti apie klaidas mods.openfolder = Atidaryti modifikacijų aplanką @@ -126,7 +126,7 @@ mod.import.file = Importuoti failą mod.import.github = Importuoti GitHub modifikaciją mod.item.remove = Šis elementas yra[accent] '{0}'[] modifikacijos dalis. Norėdami panaikinti ją turite pašalinti modifikaciją. mod.remove.confirm = Ši modifikacija bus pašalinta. -mod.author = [LIGHT_GRAY]Autorius:[] {0} +mod.author = [lightgray]Autorius:[] {0} mod.missing = Šis išsaugojimas turi modifikacijas, kurias atnaujinote arba nebėra įrašytos. Gali atsirasti išsaugojimo gedimas. Ar tikrai norite užkrauti?\nModifikacijos:\n{0} mod.preview.missing = Prieš publikuojant šią modifikaciją workshop'e, jūs privalote pridėti parodamajį vaizdą.\nĮdėktie vaizdą pavadinimu[accent] preview.png[] į modifikacijos aplanką ir bandykite iš naujo. mod.folder.missing = Tik modifikacijos aplanko formoje gali būti publikuojamos workshop'e.\nNorint konvertuoti bet kurią modifikaciją į aplanką, paprasčiausiai išpakuokite jos failą į aplanką ir ištrinkite senąją zip versiją, po to, perkraukite žaidimą arba modifikacijas. @@ -291,8 +291,8 @@ builtin = Integruotas map.delete.confirm = Ar esate tikras, jog norite išpašalinti šį žemėlapį? Šis veiksmas negali būti atstatytas map.random = [accent]Atsitiktinis žemėlapis map.nospawn = Šiame žemėlapyje nėra jokio branduolio atsirasti žaidėjui! Įdėkite[accent] oranžinį[] branduolį į žemėlapį redaktoriuje. -map.nospawn.pvp = Šiame žemėlapyje nėra jokio priešų branduolio atsirasti žaidėjui! Įdėkite[SCARLET] ne oranžinį[] branduolį į žemėlapį redaktoriuje. -map.nospawn.attack = Šiame žemėlapyje nėra jokio priešo branduolio, kurį reikia sunaikinti žaidėjams! Įdėkite[SCARLET] raudoną[] branduolį į žemėlapį redaktoriuje. +map.nospawn.pvp = Šiame žemėlapyje nėra jokio priešų branduolio atsirasti žaidėjui! Įdėkite[scarlet] ne oranžinį[] branduolį į žemėlapį redaktoriuje. +map.nospawn.attack = Šiame žemėlapyje nėra jokio priešo branduolio, kurį reikia sunaikinti žaidėjams! Įdėkite[scarlet] raudoną[] branduolį į žemėlapį redaktoriuje. map.invalid = Įvyko klaida kraunant žemėlapį: sugadintas arba klaidingas žemėlapio failas. workshop.update = Atnaujinti elementą workshop.error = Klaida kraunant Dirbtuvės duomenis: {0} diff --git a/core/assets/bundles/bundle_nl.properties b/core/assets/bundles/bundle_nl.properties index 7d5f0788bb..7efb607fd5 100644 --- a/core/assets/bundles/bundle_nl.properties +++ b/core/assets/bundles/bundle_nl.properties @@ -1,4 +1,4 @@ -credits.text = Gemaakt door [ROYAL]Anuken[] - [SKY]anukendev@gmail.com[] +credits.text = Gemaakt door [royal]Anuken[] - [sky]anukendev@gmail.com[] credits = Credits contributors = Vertalers en Bijdragers discord = Word lid van de Mindustry Discord! @@ -87,7 +87,7 @@ save.quit = Bewaar & Stop maps = Kaarten maps.browse = Blader door kaarten continue = Ga door -maps.none = [LIGHT_GRAY]Geen Kaart gevonden! +maps.none = [lightgray]Geen Kaart gevonden! invalid = Ongeldig pickcolor = Kies kleur preparingconfig = Configuratie voorbereiden @@ -101,7 +101,7 @@ feature.unsupported = Je apparaat ondersteunt deze functionaliteit niet. mods.alphainfo = Houd in gedachten dat mod ondersteuning nieuw is, en daarom[scarlet] mogelijk ontstabiel is[].\nVermeld problemen die je ermee ondervind in de Mindustry GitHub of Discord. mods.alpha = [accent](Onstabiel) mods = Mods -mods.none = [LIGHT_GRAY]Geen mods gevonden! +mods.none = [lightgray]Geen mods gevonden! mods.guide = Modding Handboek mods.report = Rapporteer Bug mods.openfolder = Open Mod Map @@ -126,7 +126,7 @@ mod.import.file = Import File mod.import.github = Importeer GitHub Mod mod.item.remove = Dit item is onderdeel van de[accent] '{0}'[] mod. Verwijder deze eerst. mod.remove.confirm = Deze mod zal worden verwijderd. -mod.author = [LIGHT_GRAY]Auteur:[] {0} +mod.author = [lightgray]Auteur:[] {0} mod.missing = Deze Save bevat mods die zijn geupdatet of die je niet meer hebt geinstaleerd. Je save kan mogelijk kapot gaat. Weet je zeker dat je het wilt proberen?\n[lightgray]Mods:\n{0} mod.preview.missing = Voordat je je mod publiceert in de workshop moet je een thumbnail toevoegen.\nPlaats een afbeelding genaamd[accent] preview.png[] in de map van die mod en probeer opnieuw. mod.folder.missing = Enkel mods in map formaat kunnen worden gepubliceerd in de workshop.\nOm een mod om te zetten in een map, unzip de mod en verwijder de zip, hetstart dan het spel of herlaad de mods. @@ -139,9 +139,9 @@ filename = Bestandsnaam: unlocked = Nieuwe inhoud ontgrendeld! completed = [accent]Voltooid techtree = Tech boom -research.list = [LIGHT_GRAY]Onderzoek: +research.list = [lightgray]Onderzoek: research = Onderzoek -researched = [LIGHT_GRAY]{0} Onderzocht. +researched = [lightgray]{0} Onderzocht. players = {0} Spelers online players.single = {0} Speler online players.search = search @@ -164,8 +164,8 @@ server.kicked.customClient = Deze server ondersteunt geen aangepaste spellen . D server.kicked.gameover = Spel afgelopen server.kicked.serverRestarting = De server is aan het herstarten. server.versions = Jouw versie:[accent] {0}[]\nServer versie:[accent] {1}[] -host.info = De [accent]host[] knop hosts `een server op port [scarlet]6567[]. \nIedereen op hetzelfde [LIGHT_GRAY]wifi or locaal netwerk[] zou jouw server in hun serverlijst moeten zien.\n\nAls je wilt dan vrienden vanaf overal kunnen meedoen via IP, [accent]port forwarding[] is nodig.\n\n[LIGHT_GRAY]Note: IAls iemand moeilijkheden heeft met het meedoen aan jouw spel, kijk of je Mindustry in je firewall instellingen toegang hebt gegeven tot jouw locaal netwerk. -join.info = Hier kan je een [accent]server IP[] invoeren om te verbinden, of om[accent]locale netwerken[] te vinden.\nBeide LAN en WAN multiplayer is ondersteund.\n\n[LIGHT_GRAY]Note: Er is geen automatische globale serverlijst; Als je met iemands IP wil verbinden, Zou je moeten vragen om hun IP. +host.info = De [accent]host[] knop hosts `een server op port [scarlet]6567[]. \nIedereen op hetzelfde [lightgray]wifi or locaal netwerk[] zou jouw server in hun serverlijst moeten zien.\n\nAls je wilt dan vrienden vanaf overal kunnen meedoen via IP, [accent]port forwarding[] is nodig.\n\n[lightgray]Note: IAls iemand moeilijkheden heeft met het meedoen aan jouw spel, kijk of je Mindustry in je firewall instellingen toegang hebt gegeven tot jouw locaal netwerk. +join.info = Hier kan je een [accent]server IP[] invoeren om te verbinden, of om[accent]locale netwerken[] te vinden.\nBeide LAN en WAN multiplayer is ondersteund.\n\n[lightgray]Note: Er is geen automatische globale serverlijst; Als je met iemands IP wil verbinden, Zou je moeten vragen om hun IP. hostserver = Host Game invitefriends = Nodig vrienden uit hostserver.mobile = Host\nGame @@ -199,7 +199,7 @@ server.edit = Bewerk server server.outdated = [crimson]Server draait op een oudere versie![] server.outdated.client = [crimson]Server draait en nieuwere versie![] server.version = [lightgray]Versie: {0} {1} -server.custombuild = [yellow]Custom Build +server.custombuild = [accent]Custom Build confirmban = Weet je zeker dat je deze speler wilt verbannen? confirmkick = Weet je zeker dat je deze speler wilt verwijderen? confirmvotekick = Weet je zeker dat je deze speler weg wilt stemmen? @@ -277,12 +277,12 @@ selectschematic = [accent][[{0}][] om te selecteren + kopiëren pausebuilding = [accent][[{0}][] om bouwen te pauzeren resumebuilding = [scarlet][[{0}][] om bouwen te hervatten wave = [accent]Ronde {0} -wave.waiting = [LIGHT_GRAY]Volgende ronde over {0} -wave.waveInProgress = [LIGHT_GRAY]Ronde bezig -waiting = [LIGHT_GRAY]Wachten... +wave.waiting = [lightgray]Volgende ronde over {0} +wave.waveInProgress = [lightgray]Ronde bezig +waiting = [lightgray]Wachten... waiting.players = Wachten op spelers... -wave.enemies = [LIGHT_GRAY]{0} Vijanden resterend -wave.enemy = [LIGHT_GRAY]{0} Vijand resterend +wave.enemies = [lightgray]{0} Vijanden resterend +wave.enemy = [lightgray]{0} Vijand resterend loadimage = Laad afbeelding saveimage = Bewaar afbeelding unknown = Onbekend @@ -290,9 +290,9 @@ custom = Aangepast builtin = Ingebouwd map.delete.confirm = Weet je zeker dat je deze map wilt verwijderen? Deze actie kan niet ongedaan worden gemaakt! map.random = [accent]Willekeurige map -map.nospawn = Deze map heeft geen cores voor de spelers om in te spawnen! Voeg een[ROYAL] blauwe[] core toe aan de map via de editor. -map.nospawn.pvp = Deze map heeft geen cores voor je vijanden om in te spawnen! Voeg een[SCARLET] rode[] core to aan de map via de editor. -map.nospawn.attack = Deze map bevat geen vijandige cores om aan te vallen! Voeg een[SCARLET] rode[] core toe aan de map via de editor. +map.nospawn = Deze map heeft geen cores voor de spelers om in te spawnen! Voeg een[royal] blauwe[] core toe aan de map via de editor. +map.nospawn.pvp = Deze map heeft geen cores voor je vijanden om in te spawnen! Voeg een[scarlet] rode[] core to aan de map via de editor. +map.nospawn.attack = Deze map bevat geen vijandige cores om aan te vallen! Voeg een[scarlet] rode[] core toe aan de map via de editor. map.invalid = Fout tijdens laden van map: Ongeldig map bestand. workshop.update = Bijwerken workshop.error = Fout bij laden workshop info: {0} @@ -337,7 +337,7 @@ waves.load = Laad van klembord waves.invalid = Ongeldige rondes in klenbord. waves.copied = Rondes Gekopiëerd. waves.none = Geen vijanden ingesteld.\nLege rondes worden automatisch gevuld met de standaard waardes. -editor.default = [LIGHT_GRAY] +editor.default = [lightgray] details = Details... edit = Bewerk... editor.name = Naam: @@ -399,7 +399,7 @@ toolmode.fillteams.description = Vervangt teams in plaats van blokken. toolmode.drawteams = Teken Teams toolmode.drawteams.description = Tekent teams in plaats van blokken. -filters.empty = [LIGHT_GRAY]Geen filters! Voeg een toe met onderstaande knop. +filters.empty = [lightgray]Geen filters! Voeg een toe met onderstaande knop. filter.distort = Verdraai filter.noise = Geluid filter.enemyspawn = Enemy Spawn Select @@ -453,15 +453,15 @@ mapeditor = Kaart Editor abandon = Verlaat abandon.text = Je verliest deze kaart met alles erop en eraan aan de vijand. locked = Op slot -complete = [LIGHT_GRAY]Voltooid: +complete = [lightgray]Voltooid: requirement.wave = Berijk ronde {0} in {1} requirement.core = Vernietig vijandige core in {0} requirement.unlock = Ontgrendel: {0} -resume = Hervat zone:\n[LIGHT_GRAY]{0} -bestwave = [LIGHT_GRAY]Beste ronde: {0} +resume = Hervat zone:\n[lightgray]{0} +bestwave = [lightgray]Beste ronde: {0} launch = < LANCEER > launch.title = Lancering Sucessvol -launch.next = [LIGHT_GRAY]volgende lanceerkans in ronde {0} +launch.next = [lightgray]volgende lanceerkans in ronde {0} launch.unable2 = [scarlet]Lanceren niet mogelijk.[] launch.confirm = Dit lanceert alle items in je core.\nJe zal niet meer terug kunnen keren naar deze basis. launch.skip.confirm = Als je nu niet lanceert zul je moeten wachten tot de volgende mogelijkheid. @@ -469,9 +469,9 @@ uncover = Ontdek configure = Configureer startinventaris bannedblocks = Verboden Blokken addall = Voeg Alles Toe -configure.locked = [LIGHT_GRAY]Speel startinventaris configuratie vrij:\nronde{0}. +configure.locked = [lightgray]Speel startinventaris configuratie vrij:\nronde{0}. configure.invalid = Hoeveelheid moet een getal zijn tussen 0 en {0}. -zone.unlocked = [LIGHT_GRAY]{0} vrijgespeeld. +zone.unlocked = [lightgray]{0} vrijgespeeld. zone.requirement.complete = Ronde {0} berijkt:\n{1} zone vrijgespeeld. zone.config.unlocked = Startinventaris vrijgespeeld:[lightgray]\n{0} zone.resources = Vindbare grondstoffen: @@ -548,7 +548,7 @@ blocks.output = Output blocks.booster = Booster blocks.tiles = Required Tiles blocks.affinities = Affinities -block.unknown = [LIGHT_GRAY]??? +block.unknown = [lightgray]??? blocks.powercapacity = Stroomcapaciteit blocks.powershot = Stroom/Schot blocks.damage = Schade @@ -641,7 +641,7 @@ setting.flow.name = Display Resource Flow Rate[scarlet] (experimental) setting.buildautopause.name = Pauzeer Bouw Automatisch setting.animatedwater.name = Animeer Water setting.animatedshields.name = Animeer Schilden -setting.antialias.name = Antialias[LIGHT_GRAY] (herstart vereist)[] +setting.antialias.name = Antialias[lightgray] (herstart vereist)[] setting.playerindicators.name = Player Indicators setting.indicators.name = Toon Bondgenoten setting.autotarget.name = Auto-Target @@ -670,11 +670,11 @@ setting.seconds = {0} Seconden setting.blockselecttimeout.name = Block Select Timeout setting.milliseconds = {0} millisecondes setting.fullscreen.name = Volledig scherm -setting.borderlesswindow.name = Borderless Venster[LIGHT_GRAY] (wellicht herstart vereist) +setting.borderlesswindow.name = Borderless Venster[lightgray] (wellicht herstart vereist) setting.fps.name = Show FPS setting.blockselectkeys.name = Toon Blok Selectie Toetscombinaties setting.vsync.name = VSync -setting.pixelate.name = Pixelate [LIGHT_GRAY](mogelijk verminderde performance) +setting.pixelate.name = Pixelate [lightgray](mogelijk verminderde performance) setting.minimap.name = Toon Minimap setting.position.name = Toon Speler Posities setting.musicvol.name = Muziek Volume @@ -782,14 +782,14 @@ rules.blockhealthmultiplier = Blok Health Vermenigvulder rules.playerhealthmultiplier = Speler Health Vermenigvulder rules.playerdamagemultiplier = Speler Damage Vermenigvulder rules.unitdamagemultiplier = Unit Damage Vermenigvulder -rules.enemycorebuildradius = Niet-Bouw Bereik Vijandelijke Cores:[LIGHT_GRAY] (tegels) -rules.respawntime = Herspawn Tijd:[LIGHT_GRAY] (sec) -rules.wavespacing = Tijd Tussen Rondes:[LIGHT_GRAY] (sec) +rules.enemycorebuildradius = Niet-Bouw Bereik Vijandelijke Cores:[lightgray] (tegels) +rules.respawntime = Herspawn Tijd:[lightgray] (sec) +rules.wavespacing = Tijd Tussen Rondes:[lightgray] (sec) rules.buildcostmultiplier = Bouw kosten Vermenigvulder rules.buildspeedmultiplier = Bouw snelheid Vermenigvulder rules.deconstructrefundmultiplier = Deconstruct Refund Multiplier rules.waitForWaveToEnd = Rondes wachten tot alles is verslagen -rules.dropzoneradius = Vijandelijke Spawn Diameter:[LIGHT_GRAY] (tegels) +rules.dropzoneradius = Vijandelijke Spawn Diameter:[lightgray] (tegels) rules.respawns = Maximale Levens Per Ronde rules.limitedRespawns = Maximale Levens rules.title.waves = Rondes @@ -828,20 +828,20 @@ liquid.slag.name = Slag liquid.oil.name = Olie liquid.cryofluid.name = Koelvloeistof item.corestorable = [lightgray]Kan in de Core: {0} -item.explosiveness = [LIGHT_GRAY]Explosivieit: {0}% -item.flammability = [LIGHT_GRAY]Vlambaarheid: {0}% -item.radioactivity = [LIGHT_GRAY]Radioactiviteit: {0}% -unit.health = [LIGHT_GRAY]Health: {0} -unit.speed = [LIGHT_GRAY]Snelheid: {0} +item.explosiveness = [lightgray]Explosivieit: {0}% +item.flammability = [lightgray]Vlambaarheid: {0}% +item.radioactivity = [lightgray]Radioactiviteit: {0}% +unit.health = [lightgray]Health: {0} +unit.speed = [lightgray]Snelheid: {0} unit.weapon = [lightgray]Weapon: {0} unit.itemcapacity = [lightgray]Item Capacity: {0} unit.minespeed = [lightgray]Mining Speed: {0}% unit.minepower = [lightgray]Mining Power: {0} unit.ability = [lightgray]Ability: {0} unit.buildspeed = [lightgray]Building Speed: {0}% -liquid.heatcapacity = [LIGHT_GRAY]Warmte Capaciteit: {0} -liquid.viscosity = [LIGHT_GRAY]Viscositeit: {0} -liquid.temperature = [LIGHT_GRAY]Tempratuur: {0} +liquid.heatcapacity = [lightgray]Warmte Capaciteit: {0} +liquid.viscosity = [lightgray]Viscositeit: {0} +liquid.temperature = [lightgray]Tempratuur: {0} block.cliff.name = Cliff block.sand-boulder.name = Zandkei @@ -871,7 +871,7 @@ block.thruster.name = Thruster block.kiln.name = Glasoven block.graphite-press.name = Grafiet Pers block.multi-press.name = Super-Pers -block.constructing = {0} [LIGHT_GRAY](Bouwen) +block.constructing = {0} [lightgray](Bouwen) block.spawn.name = Vijandelijke Spawn block.core-shard.name = Core: Shard block.core-foundation.name = Core: Foundation @@ -1066,7 +1066,7 @@ tutorial.drill.mobile = Met de hand mijnen is inefficient.\n[accent]Boren []kunn tutorial.blockinfo = Elk blok heeft andere statistieken. Elke boor kan enkel bepaalde dingen mijnen.\nOm het van een blok te checken,[accent] druk op de "?" knop terwijl je het blok vast hebt.[]\n\n[accent]Lees de statatistieken van de Mechanische Boor maar eens.[] tutorial.conveyor = [accent]Lopende Banden[] worden gebruikt om je items naar je core/basis te krijgen.\nLeg een lijn aan van je boren tot aan je core/basis. tutorial.conveyor.mobile = [accent]Lopende Banden[] worden gebruikt om je items naar je core/basis te krijgen.\nLeg een lijn aan van je boren tot aan je core/basis.\n[accent] Doe dit door je vinger een paar seconden stil te houden[] en dan in een richting te slepen.\n\n[accent]{0}/{1} Lopende banden worden in 1x geplaatst\n[accent]0/1 items afgeleverd -tutorial.turret = Defensieve gebouwen moeten worden gebouwd tegen de[LIGHT_GRAY] vijand[].\nBouw een duo kannon bij je basis. +tutorial.turret = Defensieve gebouwen moeten worden gebouwd tegen de[lightgray] vijand[].\nBouw een duo kannon bij je basis. tutorial.drillturret = Duo's hebben[accent] koperen ammunitie []nodig om te schieten.\nPlaats een drill ernaast om het van koper te voorzien. tutorial.pause = Tijdens een gevecht is het mogelijk[accent] het spel te pauzeren.[]\nJe kan nog wel je gebouwen plannen.\n\n[accent]Pauzeer het spel (spatie) nu. tutorial.pause.mobile = During battle, you are able to[accent] pause the game.[]\nYou may queue buildings while paused.\n\n[accent]Press this button in the top left to pause. @@ -1076,8 +1076,8 @@ tutorial.breaking = Vaak moet je blokken weer verwijderen.\n[accent]Houd rechts- tutorial.breaking.mobile = Vaak moet je blokken weer verwijderen.\n[accent]klik op de hamer voor vernietigigs-mode[], klik dan op een blok om het te breken.\nVernietig een heel gebied door je vinger een paar seconden still te houden en dan te slepen in een richting.\nKlik dan op het vinkje om het te bevestigen.\n\n[accent]Vernietig de scrap blokken links van je core om verder te gaan. tutorial.withdraw = In sommige situaties, is het nodig om items uit een blok te kunnen pakken.\nOm dit te doen, [accent]klik je op een blok[] waar items in zitten, en dan [accent]op het item te klikken[] in het zwarte menu.\nMeerdere items tegelijk kan je eruit halen door [accent]het ingedrukt te houden[].\n\n[accent]Pak wat koper uit de core.[] tutorial.deposit = Je kan de items weer terugstoppen door van je schip het terug te slepen naar waar je het wilt.\n\n[accent]Stop het nu weer terug in de core.[] -tutorial.waves = De[LIGHT_GRAY] vijand[] naderd.\n\nVerdedig je core voor 2 rondes. Bouw meer verdedigingen. -tutorial.waves.mobile = De[LIGHT_GRAY] vijand[] naderd.\n\nVerdedig je core voor 2 rondes. Je schip schiet automatisch op vijanden.\nBouw meer verdedigingen, en mine meer koper. +tutorial.waves = De[lightgray] vijand[] naderd.\n\nVerdedig je core voor 2 rondes. Bouw meer verdedigingen. +tutorial.waves.mobile = De[lightgray] vijand[] naderd.\n\nVerdedig je core voor 2 rondes. Je schip schiet automatisch op vijanden.\nBouw meer verdedigingen, en mine meer koper. tutorial.launch = Tijdens sommige waves, kan je je core[accent] lanceren[], hiermee verlaat je de basis permanent[accent] maar je neemt wel alles dat in de core zit met je mee.[]\nMet deze grondstoffen kan je nieuwe technologieën onderzoeken.\n\n[accent]Druk op de lanceerknop. item.copper.description = Een nuttig materiaal voor gebouwen. Wordt erg vaak in blokken gebruikt. @@ -1202,8 +1202,8 @@ block.oil-extractor.description = Uses large amounts of power in order to extrac block.core-shard.description = The first iteration of the core capsule. Once destroyed, all contact to the region is lost. Do not let this happen. block.core-foundation.description = The second version of the core. Better armored. Stores more resources. block.core-nucleus.description = The third and final iteration of the core capsule. Extremely well armored. Stores massive amounts of resources. -block.vault.description = Stores a large amount of items of each type. Adjacent containers, vaults and cores will be treated as a single storage unit. An[LIGHT_GRAY] unloader[] can be used to retrieve items from the vault. -block.container.description = Stores a small amount of items of each type. Adjacent containers, vaults and cores will be treated as a single storage unit. An[LIGHT_GRAY] unloader[] can be used to retrieve items from the container. +block.vault.description = Stores a large amount of items of each type. Adjacent containers, vaults and cores will be treated as a single storage unit. An[lightgray] unloader[] can be used to retrieve items from the vault. +block.container.description = Stores a small amount of items of each type. Adjacent containers, vaults and cores will be treated as a single storage unit. An[lightgray] unloader[] can be used to retrieve items from the container. block.unloader.description = Unloads items from a container, vault or core onto a conveyor or directly into an adjacent block. The type of item to be unloaded can be changed by tapping on the unloader. block.launch-pad.description = Launches batches of items without any need for a core launch. Unfinished. block.launch-pad-large.description = An improved version of the launch pad. Stores more items. Launches more frequently. diff --git a/core/assets/bundles/bundle_nl_BE.properties b/core/assets/bundles/bundle_nl_BE.properties index 47fcbc25cb..a8cdad0f7c 100644 --- a/core/assets/bundles/bundle_nl_BE.properties +++ b/core/assets/bundles/bundle_nl_BE.properties @@ -1,4 +1,4 @@ -credits.text = Gemaakt door [ROYAL]Anuken[] - [SKY]anukendev@gmail.com[] +credits.text = Gemaakt door [royal]Anuken[] - [sky]anukendev@gmail.com[] credits = Credits contributors = Vertalers en medewerkers discord = Sluit je aan bij de Mindustry discord server! @@ -87,7 +87,7 @@ save.quit = Opslaan & Verlaten maps = Kaarten maps.browse = Bekijk Kaarten continue = Ga verder -maps.none = [LIGHT_GRAY]Geen kaarten gevonden! +maps.none = [lightgray]Geen kaarten gevonden! invalid = Ongeldig pickcolor = Pick Color preparingconfig = Configuratie Voorbereiden @@ -101,7 +101,7 @@ feature.unsupported = Uw apparaat ondersteunt deze functie niet. mods.alphainfo = Mods zijn nog in alfa en [scarlet] kunnen zeer onstabiel zijn[].\nMeld problemen die je ondervindt op de Mindustry Github of Discord. mods.alpha = [accent](Alfa) mods = Mods -mods.none = [LIGHT_GRAY]Geen mods gevonden! +mods.none = [lightgray]Geen mods gevonden! mods.guide = Handleiding tot Modding mods.report = Bug Rapporteren mods.openfolder = Open Mod Folder @@ -126,7 +126,7 @@ mod.import.file = Import File mod.import.github = Importeer GitHub Mod mod.item.remove = This item is part of the[accent] '{0}'[] mod. To remove it, uninstall that mod. mod.remove.confirm = Deze mod zal worden verwijderd. -mod.author = [LIGHT_GRAY]Auteur:[] {0} +mod.author = [lightgray]Auteur:[] {0} mod.missing = Dit opslagbestand bevat mods die zijn geupdate of recentelijk zijn verwijderd. Uw opslagbestand kan beschadigd geraken. Bent u zeker dat u wil verdergaan?\n[lightgray]Mods:\n{0} mod.preview.missing = Voordat je de mod publiceert moet je een afbeelding voor de voorvertoning toevoegen.\nPlaats een afbeelding met de naam[accent] preview.png[] in de modfolder. mod.folder.missing = Mods kunnen enkel gepubliceerd worden in foldervorm.\nOm een mod in foldervorm te zetten exporteer je het modbestand uit de zipfile en verwijder je de oude zipfile. Herlaad vervolgens je mods of herstart het spel. @@ -139,9 +139,9 @@ filename = Bestandsnaam: unlocked = Ontgrendeld! completed = [accent]Voltooid techtree = Technische vooruitgang -research.list = [LIGHT_GRAY]Onderzoek: +research.list = [lightgray]Onderzoek: research = Onderzoek -researched = [LIGHT_GRAY]{0} onderzocht. +researched = [lightgray]{0} onderzocht. players = {0} spelers online players.single = {0} speler online players.search = search @@ -164,8 +164,8 @@ server.kicked.customClient = Deze server ondersteunt geen aangepaste versies (mo server.kicked.gameover = Game over! server.kicked.serverRestarting = The server is restarting. server.versions = Jouw versie:[accent] {0}[]\nServerversie:[accent] {1}[] -host.info = Ook de [accent]host[] knop hosts een server op poort [scarlet]6567[]. \nIedereen die verbonden is met dezelfde [LIGHT_GRAY]wifi of lokaal netwerk[] zou je server moeten zien in zijn server lijst.\n\nAls je wil dat personen kunnen verbinden met je server van ergens anders via IP. Dan is [accent]port forwarding[] is nodig.\n\n[LIGHT_GRAY]Nota: Als iemand problemen heeft met het verbinden tot je LAN spel, zorg dan dat mindustry toestemming heeft tot je lokale netwerk in de Firewall instellingen. -join.info = Hier kan je een [accent]server IP[] invullen waarmee je wil verbinden. Je kan hier ook verbinden met servers op je [accent]lokale netwerk[]. LAN en WAN multiplayer wordt ondersteund.\n\n[LIGHT_GRAY]Belangrijk: er is geen automatische globale server lijst; als je met iemand wil verbinden via een IP adres moet je zijn/haar IP adres vragen. +host.info = Ook de [accent]host[] knop hosts een server op poort [scarlet]6567[]. \nIedereen die verbonden is met dezelfde [lightgray]wifi of lokaal netwerk[] zou je server moeten zien in zijn server lijst.\n\nAls je wil dat personen kunnen verbinden met je server van ergens anders via IP. Dan is [accent]port forwarding[] is nodig.\n\n[lightgray]Nota: Als iemand problemen heeft met het verbinden tot je LAN spel, zorg dan dat mindustry toestemming heeft tot je lokale netwerk in de Firewall instellingen. +join.info = Hier kan je een [accent]server IP[] invullen waarmee je wil verbinden. Je kan hier ook verbinden met servers op je [accent]lokale netwerk[]. LAN en WAN multiplayer wordt ondersteund.\n\n[lightgray]Belangrijk: er is geen automatische globale server lijst; als je met iemand wil verbinden via een IP adres moet je zijn/haar IP adres vragen. hostserver = Open server voor LAN invitefriends = Nodig vrienden uit. hostserver.mobile = Open\nServer @@ -199,7 +199,7 @@ server.edit = Bewerk Server server.outdated = [crimson]Verouderde Server![] server.outdated.client = [crimson]Verouderde Client![] server.version = [lightgray]Versie: {0} {1} -server.custombuild = [yellow]Aangepaste versie +server.custombuild = [accent]Aangepaste versie confirmban = Ben je zeker dat je deze speler wilt verbannen? confirmkick = Ben je zeker dat je deze speler van de server wilt gooien? confirmvotekick = Ben je zeker dat je een stemming wilt starten om deze speler uit de server to gooien? @@ -277,12 +277,12 @@ selectschematic = [accent][[{0}][] om te selecter+kopieren pausebuilding = [accent][[{0}][] om het bouwen te pauseren resumebuilding = [scarlet][[{0}][] om verder te gaan met bouwen wave = [accent]Golf {0} -wave.waiting = [LIGHT_GRAY]Golf in {0} -wave.waveInProgress = [LIGHT_GRAY]Golf bezig -waiting = [LIGHT_GRAY]Wachten... +wave.waiting = [lightgray]Golf in {0} +wave.waveInProgress = [lightgray]Golf bezig +waiting = [lightgray]Wachten... waiting.players = Aan het wachten op spelers... -wave.enemies = [LIGHT_GRAY]{0} Vijanden Over -wave.enemy = [LIGHT_GRAY]{0} Vijand Over +wave.enemies = [lightgray]{0} Vijanden Over +wave.enemy = [lightgray]{0} Vijand Over loadimage = Laad Afbeelding saveimage = Sla Afbeelding Op unknown = Onbekend @@ -290,9 +290,9 @@ custom = Aangepast builtin = Ingebouwd map.delete.confirm = Weet je zeker dat je deze kaart wilt verwijderen? Deze actie kan niet ongedaan gemaakt worden! map.random = [accent]Willekeurige Map -map.nospawn = Deze map heeft geen cores voor spelers om te spawnen! Voeg een[ROYAL] blauwe[] core toe in de mapbewerker. -map.nospawn.pvp = This map does not have any enemy cores for player to spawn into! Voeg een[SCARLET] niet-blauwe[] core toe in de mapbewerker. -map.nospawn.attack = This map does not have any enemy cores for player to attack! Voeg een[SCARLET] rode[] core toe in de mapbewerker. +map.nospawn = Deze map heeft geen cores voor spelers om te spawnen! Voeg een[royal] blauwe[] core toe in de mapbewerker. +map.nospawn.pvp = This map does not have any enemy cores for player to spawn into! Voeg een[scarlet] niet-blauwe[] core toe in de mapbewerker. +map.nospawn.attack = This map does not have any enemy cores for player to attack! Voeg een[scarlet] rode[] core toe in de mapbewerker. map.invalid = Fout tijdens het laden van de map: Corrupt of ongeldig mapbestand. workshop.update = Update Item workshop.error = Error fetching workshop details: {0} @@ -337,7 +337,7 @@ waves.load = Load from Clipboard waves.invalid = Invalid waves in clipboard. waves.copied = Waves copied. waves.none = No enemies defined.\nNote that empty wave layouts will automatically be replaced with the default layout. -editor.default = [LIGHT_GRAY] +editor.default = [lightgray] details = Details... edit = Edit... editor.name = Name: @@ -399,7 +399,7 @@ toolmode.fillteams.description = Fill teams instead of blocks. toolmode.drawteams = Draw Teams toolmode.drawteams.description = Draw teams instead of blocks. -filters.empty = [LIGHT_GRAY]No filters! Add one with the button below. +filters.empty = [lightgray]No filters! Add one with the button below. filter.distort = Distort filter.noise = Noise filter.enemyspawn = Enemy Spawn Select @@ -453,15 +453,15 @@ mapeditor = Map Editor abandon = Abandon abandon.text = This zone and all its resources will be lost to the enemy. locked = Locked -complete = [LIGHT_GRAY]Reach: +complete = [lightgray]Reach: requirement.wave = Reach Wave {0} in {1} requirement.core = Destroy Enemy Core in {0} requirement.unlock = Unlock {0} -resume = Resume Zone:\n[LIGHT_GRAY]{0} -bestwave = [LIGHT_GRAY]Best Wave: {0} +resume = Resume Zone:\n[lightgray]{0} +bestwave = [lightgray]Best Wave: {0} launch = < LAUNCH > launch.title = Launch Successful -launch.next = [LIGHT_GRAY]next opportunity at wave {0} +launch.next = [lightgray]next opportunity at wave {0} launch.unable2 = [scarlet]Unable to LAUNCH.[] launch.confirm = This will launch all resources in your core.\nYou will not be able to return to this base. launch.skip.confirm = If you skip now, you will not be able to launch until later waves. @@ -469,9 +469,9 @@ uncover = Uncover configure = Configure Loadout bannedblocks = Banned Blocks addall = Add All -configure.locked = [LIGHT_GRAY]Unlock configuring loadout:\nWave {0}. +configure.locked = [lightgray]Unlock configuring loadout:\nWave {0}. configure.invalid = Amount must be a number between 0 and {0}. -zone.unlocked = [LIGHT_GRAY]{0} unlocked. +zone.unlocked = [lightgray]{0} unlocked. zone.requirement.complete = Wave {0} reached:\n{1} zone requirements met. zone.config.unlocked = Loadout unlocked:[lightgray]\n{0} zone.resources = Resources Detected: @@ -548,7 +548,7 @@ blocks.output = Output blocks.booster = Booster blocks.tiles = Required Tiles blocks.affinities = Affinities -block.unknown = [LIGHT_GRAY]??? +block.unknown = [lightgray]??? blocks.powercapacity = Power Capacity blocks.powershot = Power/Shot blocks.damage = Damage @@ -641,7 +641,7 @@ setting.flow.name = Display Resource Flow Rate[scarlet] (experimental) setting.buildautopause.name = Auto-Pause Building setting.animatedwater.name = Animated Water setting.animatedshields.name = Animated Shields -setting.antialias.name = Antialias[LIGHT_GRAY] (requires restart)[] +setting.antialias.name = Antialias[lightgray] (requires restart)[] setting.playerindicators.name = Player Indicators setting.indicators.name = Enemy/Ally Indicators setting.autotarget.name = Auto-Target @@ -670,11 +670,11 @@ setting.seconds = {0} Seconds setting.blockselecttimeout.name = Block Select Timeout setting.milliseconds = {0} milliseconds setting.fullscreen.name = Fullscreen -setting.borderlesswindow.name = Borderless Window[LIGHT_GRAY] (may require restart) +setting.borderlesswindow.name = Borderless Window[lightgray] (may require restart) setting.fps.name = Show FPS setting.blockselectkeys.name = Show Block Select Keys setting.vsync.name = VSync -setting.pixelate.name = Pixelate [LIGHT_GRAY](may decrease performance, disables animations) +setting.pixelate.name = Pixelate [lightgray](may decrease performance, disables animations) setting.minimap.name = Show Minimap setting.position.name = Show Player Position setting.musicvol.name = Music Volume @@ -782,14 +782,14 @@ rules.blockhealthmultiplier = Block Health Multiplier rules.playerhealthmultiplier = Player Health Multiplier rules.playerdamagemultiplier = Player Damage Multiplier rules.unitdamagemultiplier = Unit Damage Multiplier -rules.enemycorebuildradius = Enemy Core No-Build Radius:[LIGHT_GRAY] (tiles) -rules.respawntime = Respawn Time:[LIGHT_GRAY] (sec) -rules.wavespacing = Wave Spacing:[LIGHT_GRAY] (sec) +rules.enemycorebuildradius = Enemy Core No-Build Radius:[lightgray] (tiles) +rules.respawntime = Respawn Time:[lightgray] (sec) +rules.wavespacing = Wave Spacing:[lightgray] (sec) rules.buildcostmultiplier = Build Cost Multiplier rules.buildspeedmultiplier = Build Speed Multiplier rules.deconstructrefundmultiplier = Deconstruct Refund Multiplier rules.waitForWaveToEnd = Waves wait for enemies -rules.dropzoneradius = Drop Zone Radius:[LIGHT_GRAY] (tiles) +rules.dropzoneradius = Drop Zone Radius:[lightgray] (tiles) rules.respawns = Max respawns per wave rules.limitedRespawns = Limit Respawns rules.title.waves = Waves @@ -828,20 +828,20 @@ liquid.slag.name = Slag liquid.oil.name = Oil liquid.cryofluid.name = Cryofluid item.corestorable = [lightgray]Storable in Core: {0} -item.explosiveness = [LIGHT_GRAY]Explosiveness: {0}% -item.flammability = [LIGHT_GRAY]Flammability: {0}% -item.radioactivity = [LIGHT_GRAY]Radioactivity: {0}% -unit.health = [LIGHT_GRAY]Health: {0} -unit.speed = [LIGHT_GRAY]Speed: {0} +item.explosiveness = [lightgray]Explosiveness: {0}% +item.flammability = [lightgray]Flammability: {0}% +item.radioactivity = [lightgray]Radioactivity: {0}% +unit.health = [lightgray]Health: {0} +unit.speed = [lightgray]Speed: {0} unit.weapon = [lightgray]Weapon: {0} unit.itemcapacity = [lightgray]Item Capacity: {0} unit.minespeed = [lightgray]Mining Speed: {0}% unit.minepower = [lightgray]Mining Power: {0} unit.ability = [lightgray]Ability: {0} unit.buildspeed = [lightgray]Building Speed: {0}% -liquid.heatcapacity = [LIGHT_GRAY]Heat Capacity: {0} -liquid.viscosity = [LIGHT_GRAY]Viscosity: {0} -liquid.temperature = [LIGHT_GRAY]Temperature: {0} +liquid.heatcapacity = [lightgray]Heat Capacity: {0} +liquid.viscosity = [lightgray]Viscosity: {0} +liquid.temperature = [lightgray]Temperature: {0} block.cliff.name = Cliff block.sand-boulder.name = Sand Boulder @@ -871,7 +871,7 @@ block.thruster.name = Thruster block.kiln.name = Kiln block.graphite-press.name = Graphite Press block.multi-press.name = Multi-Press -block.constructing = {0} [LIGHT_GRAY](Constructing) +block.constructing = {0} [lightgray](Constructing) block.spawn.name = Enemy Spawn block.core-shard.name = Core: Shard block.core-foundation.name = Core: Foundation @@ -1066,7 +1066,7 @@ tutorial.drill.mobile = Mining manually is inefficient.\n[accent]Drills []can mi tutorial.blockinfo = Each block has different stats. Each drill can only mine certain ores.\nTo check a block's info and stats,[accent] tap the "?" button while selecting it in the build menu.[]\n\n[accent]Access the Mechanical Drill's stats now.[] tutorial.conveyor = [accent]Transportbanden[] worden gebruikt om artikelen naar de kern te transporteren.\nMaak een lijn van transportbanden van de boor tot de kern. tutorial.conveyor.mobile = [accent]Conveyors[] are used to transport items to the core.\nMake a line of conveyors from the drill to the core.\n[accent] Place in a line by holding down your finger for a few seconds[] and dragging in a direction.\n\n[accent]{0}/{1} conveyors placed in line\n[accent]0/1 items delivered -tutorial.turret = Er moeten verdedigingsstructuren worden gebouwd om de[LIGHT_GRAY] vijand[]af te weren.\nBouw een duo geschutstoren in de buurt van je basis. +tutorial.turret = Er moeten verdedigingsstructuren worden gebouwd om de[lightgray] vijand[]af te weren.\nBouw een duo geschutstoren in de buurt van je basis. tutorial.drillturret = Duo geschutstorens hebben[accent] koper ammunitie []nodig om te schieten.\nPlaats een boor naast de geschutstoren om het van gedolven koper te voorzien. tutorial.pause = During battle, you are able to[accent] pause the game.[]\nYou may queue buildings while paused.\n\n[accent]Press space to pause. tutorial.pause.mobile = During battle, you are able to[accent] pause the game.[]\nYou may queue buildings while paused.\n\n[accent]Press this button in the top left to pause. @@ -1076,7 +1076,7 @@ tutorial.breaking = Blocks frequently need to be destroyed.\n[accent]Hold down r tutorial.breaking.mobile = Blocks frequently need to be destroyed.\n[accent]Select deconstruction mode[], then tap a block to begin breaking it.\nDestroy an area by holding down your finger for a few seconds[] and dragging in a direction.\nPress the checkmark button to confirm breaking.\n\n[accent]Destroy all the scrap blocks to the left of your core using area selection. tutorial.withdraw = In some situations, taking items directly from blocks is necessary.\nTo do this, [accent]tap a block[] with items in it, then [accent]tap the item[] in the inventory.\nMultiple items can be withdrawn by [accent]tapping and holding[].\n\n[accent]Withdraw some copper from the core.[] tutorial.deposit = Deposit items into blocks by dragging from your ship to the destination block.\n\n[accent]Deposit your copper back into the core.[] -tutorial.waves = De [LIGHT_GRAY] vijand[] nadert.\n\nVerdedig jouw kern voor 2 golven. Bouw meer geschutstorens. +tutorial.waves = De [lightgray] vijand[] nadert.\n\nVerdedig jouw kern voor 2 golven. Bouw meer geschutstorens. tutorial.waves.mobile = The[lightgray] enemy[] approaches.\n\nDefend the core for 2 waves. Your ship will automatically fire at enemies.\nBuild more turrets and drills. Mine more copper. tutorial.launch = Once you reach a specific wave, you are able to[accent] launch the core[], leaving your defenses behind and[accent] obtaining all the resources in your core.[]\nThese resources can then be used to research new technology.\n\n[accent]Press the launch button. @@ -1202,8 +1202,8 @@ block.oil-extractor.description = Uses large amounts of power in order to extrac block.core-shard.description = The first iteration of the core capsule. Once destroyed, all contact to the region is lost. Do not let this happen. block.core-foundation.description = The second version of the core. Better armored. Stores more resources. block.core-nucleus.description = The third and final iteration of the core capsule. Extremely well armored. Stores massive amounts of resources. -block.vault.description = Stores a large amount of items of each type. An[LIGHT_GRAY] unloader[] can be used to retrieve items from the vault. -block.container.description = Stores a small amount of items of each type. An[LIGHT_GRAY] unloader[] can be used to retrieve items from the container. +block.vault.description = Stores a large amount of items of each type. An[lightgray] unloader[] can be used to retrieve items from the vault. +block.container.description = Stores a small amount of items of each type. An[lightgray] unloader[] can be used to retrieve items from the container. block.unloader.description = Unloads items from a container, vault or core onto a conveyor or directly into an adjacent block. The type of item to be unloaded can be changed by tapping on the unloader. block.launch-pad.description = Launches batches of items without any need for a core launch. Unfinished. block.launch-pad-large.description = An improved version of the launch pad. Stores more items. Launches more frequently. diff --git a/core/assets/bundles/bundle_pl.properties b/core/assets/bundles/bundle_pl.properties index e38c173b5a..71ed337576 100644 --- a/core/assets/bundles/bundle_pl.properties +++ b/core/assets/bundles/bundle_pl.properties @@ -1,4 +1,4 @@ -credits.text = Stworzone przez [ROYAL]Anuken[] - [SKY]anukendev@gmail.com[] +credits.text = Stworzone przez [royal]Anuken[] - [sky]anukendev@gmail.com[] credits = Zasłużeni contributors = Tłumacze i pomocnicy discord = Odwiedź nasz serwer Discord! @@ -18,7 +18,7 @@ screenshot = Zapisano zdjęcie w {0} screenshot.invalid = Zrzut ekranu jest zbyt duży. Najprawdopodobniej brakuje miejsca w pamięci urządzenia. gameover = Koniec Gry gameover.pvp = Zwyciężyła drużyna [accent]{0}[]! -highscore = [YELLOW] Nowy rekord! +highscore = [accent] Nowy rekord! copied = Skopiowano. load.sound = Dźwięki @@ -101,7 +101,7 @@ feature.unsupported = Twoje urządzenie nie wspiera tej funkcji. mods.alphainfo = Pamiętaj, że mody są wersji alpha, i[scarlet] mogą być pełne błędów[].\nZgłaszaj wszystkie znalezione problemy na Mindustry GitHub lub Discord. mods.alpha = [scarlet](Alpha) mods = Mody -mods.none = [LIGHT_GRAY]Nie znaleziono modów! +mods.none = [lightgray]Nie znaleziono modów! mods.guide = Poradnik do modów mods.report = Zgłoś Błąd mods.openfolder = Otwórz folder z modami @@ -126,7 +126,7 @@ mod.import.file = Importuj Plik mod.import.github = Importuj mod z GitHuba mod.item.remove = Ten przedmiot jest częścią moda[accent] '{0}'[]. Aby usunąć go, odinstaluj modyfikację. mod.remove.confirm = Ten mod zostanie usunięty. -mod.author = [LIGHT_GRAY]Autor:[] {0} +mod.author = [lightgray]Autor:[] {0} mod.missing = Ten zapis zawiera mody, które zostały niedawno zaktualizowane, bądź nie są już zainstalowane. Zapis może zostać uszkodzony. Czy jesteś pewien, że chcesz go załadować?\n[lightgray]Mody:\n{0} mod.preview.missing = Przed opublikowaniem tego moda na Warsztacie musisz dodać zdjęcie podglądowe.\nDodaj zdjęcie o nazwie[accent] preview.png[] do folderu moda i spróbuj jeszcze raz. mod.folder.missing = Jedynie mody w formie folderów mogą się znaleźć na Warsztacie.\nBy zamienić moda w folder, wyciągnij go z archiwum, umieść w folderze i usuń archiwum. Później uruchom ponownie grę lub załaduj ponownie mody. @@ -291,8 +291,8 @@ builtin = Wbudowane map.delete.confirm = Jesteś pewny, że chcesz usunąć tę mapę? Nie będzie można jej przywrócić. map.random = [accent]Losowa Mapa map.nospawn = Ta mapa nie zawiera żadnego rdzenia! Dodaj [accent]pomarańczowy[] rdzeń do tej mapy w edytorze. -map.nospawn.pvp = Ta mapa nie ma żadnego rdzenia przeciwnika, aby mogli się zrespić przeciwnicy! Dodaj[SCARLET] inny niż pomarańczowy[] rdzeń do mapy w edytorze. -map.nospawn.attack = Ta mapa nie ma żadnego rdzenia przeciwnika, aby można było go zaatakować! Dodaj[SCARLET] czerwony[] rdzeń do mapy w edytorze. +map.nospawn.pvp = Ta mapa nie ma żadnego rdzenia przeciwnika, aby mogli się zrespić przeciwnicy! Dodaj[scarlet] inny niż pomarańczowy[] rdzeń do mapy w edytorze. +map.nospawn.attack = Ta mapa nie ma żadnego rdzenia przeciwnika, aby można było go zaatakować! Dodaj[scarlet] czerwony[] rdzeń do mapy w edytorze. map.invalid = Błąd podczas ładowania mapy: uszkodzony lub niepoprawny plik mapy. workshop.update = Aktualizuj pozycję workshop.error = Błąd podczas wczytywania szczegółów z Warsztatu: {0} diff --git a/core/assets/bundles/bundle_pt_BR.properties b/core/assets/bundles/bundle_pt_BR.properties index 69da1381ac..c7de538d6a 100644 --- a/core/assets/bundles/bundle_pt_BR.properties +++ b/core/assets/bundles/bundle_pt_BR.properties @@ -1,4 +1,4 @@ -credits.text = Criado por [ROYAL]Anuken[] - [SKY]anukendev@gmail.com[] +credits.text = Criado por [royal]Anuken[] - [sky]anukendev@gmail.com[] credits = Créditos contributors = Tradutores e contribuidores discord = Junte-se ao Discord do Mindustry! (Lá nós falamos em diversos idiomas!) @@ -18,7 +18,7 @@ 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.pvp = O time[accent] {0}[] ganhou! -highscore = [YELLOW]Novo recorde! +highscore = [accent]Novo recorde! copied = Copiado load.sound = Sons @@ -87,7 +87,7 @@ save.quit = Salvar e sair maps = Mapas maps.browse = Pesquisar mapas continue = Continuar -maps.none = [LIGHT_GRAY]Nenhum mapa encontrado! +maps.none = [lightgray]Nenhum mapa encontrado! invalid = Inválido pickcolor = Escolher Cor preparingconfig = Preparando configuração @@ -101,7 +101,7 @@ feature.unsupported = Seu dispositivo não suporta essa função. mods.alphainfo = Tenha em mente que os mods estão em alpha, e[scarlet] talvez eles contenham erros e instabilidades[].\nReporte quaisquer problemas no Discord ou GitHub do Mindustry. mods.alpha = [accent](Alpha) mods = Mods -mods.none = [LIGHT_GRAY]Nenhum mod encontrado! +mods.none = [lightgray]Nenhum mod encontrado! mods.guide = Guia de mods mods.report = Reportar um Bug mods.openfolder = Abrir pasta de mods @@ -126,7 +126,7 @@ mod.import.file = Import File mod.import.github = Importar mod do GitHub mod.item.remove = Este item é parte do mod[accent] '{0}'[]. Para removê-lo, desinstale esse mod. mod.remove.confirm = Este mod será deletado. -mod.author = [LIGHT_GRAY]Autor:[] {0} +mod.author = [lightgray]Autor:[] {0} mod.missing = Esse jogo salvo foi criado antes de você atualizar ou desinstalar um mod. Pode ocorrer uma corrupção no salvamento. Você tem certeza que quer carregar?\n[lightgray]Mods:\n{0} mod.preview.missing = Antes de publicar esse mod na oficina, você deve adicionar uma imagem de pré-visualização.\nColoque uma imagem com o nome[accent] preview.png[] na pasta do mod e tente novamente. mod.folder.missing = Somente mods no formato de pasta serão publicados na oficina.\nPara converter qualquer Mod em uma pasta, Simplesmente descompacte seu arquivo numa pasta e delete a compactação antiga, então reinicie seu jogo ou recarregue os mods. @@ -139,9 +139,9 @@ filename = Nome do arquivo: unlocked = Novo bloco desbloqueado! completed = [accent]Completado techtree = Árvore Tecnológica -research.list = [LIGHT_GRAY]Pesquise: +research.list = [lightgray]Pesquise: research = Pesquisar -researched = [LIGHT_GRAY]{0} Pesquisado. +researched = [lightgray]{0} Pesquisado. players = {0} Jogadores ativos players.single = {0} Jogador ativo players.search = Procurar @@ -164,8 +164,8 @@ server.kicked.customClient = Este servidor não suporta versões customizadas. B server.kicked.gameover = Fim de jogo! server.kicked.serverRestarting = O servidor esta reiniciando. server.versions = Sua versão:[accent] {0}[]\nVersão do servidor:[accent] {1}[] -host.info = O botão de [accent]Hospedar[] hospeda um servidor no Host[scarlet]6567[] e [scarlet]6568.[]\nQualquer um no [LIGHT_GRAY]Wi-fi ou internet local[] pode ver este servidor na lista de servidores.\n\nSe você quer poder entrar em qualquer servidor em seu ip, [accent]port forwarding[] é requerido.\n\n[LIGHT_GRAY]Nota: Se alguém esta com problemas em conectar no seu servidor lan, Tenha certeza que deixou mindustry Acessar sua internet local nas configurações de firewall -join.info = Aqui, você pode entar em um [accent]IP de servidor[] para conectar, ou descobrir [accent]servidores[] da rede local.\nAmbos os servidores LAN e WAN são suportados.\n\n[LIGHT_GRAY]Nota: Não há uma lista de servidores automáticos; Se você quer conectar ao IP de alguém, você precisa pedir o IP ao anfitrião. +host.info = O botão de [accent]Hospedar[] hospeda um servidor no Host[scarlet]6567[] e [scarlet]6568.[]\nQualquer um no [lightgray]Wi-fi ou internet local[] pode ver este servidor na lista de servidores.\n\nSe você quer poder entrar em qualquer servidor em seu ip, [accent]port forwarding[] é requerido.\n\n[lightgray]Nota: Se alguém esta com problemas em conectar no seu servidor lan, Tenha certeza que deixou mindustry Acessar sua internet local nas configurações de firewall +join.info = Aqui, você pode entar em um [accent]IP de servidor[] para conectar, ou descobrir [accent]servidores[] da rede local.\nAmbos os servidores LAN e WAN são suportados.\n\n[lightgray]Nota: Não há uma lista de servidores automáticos; Se você quer conectar ao IP de alguém, você precisa pedir o IP ao anfitrião. hostserver = Hospedar servidor invitefriends = Convidar amigos hostserver.mobile = Hospedar\nJogo @@ -199,7 +199,7 @@ server.edit = Editar servidor server.outdated = [crimson]Servidor desatualizado![] server.outdated.client = [crimson]Cliente desatualizado![] server.version = [lightgray]Versão: {0} -server.custombuild = [yellow]Versão customizada +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? @@ -278,11 +278,11 @@ pausebuilding = [accent][[{0}][] para parar a construção resumebuilding = [scarlet][[{0}][] para continuar a construção wave = [accent]Horda {0} wave.waiting = Proxima horda em {0} -wave.waveInProgress = [LIGHT_GRAY]Horda em progresso +wave.waveInProgress = [lightgray]Horda em progresso waiting = Aguardando... waiting.players = Esperando por jogadores... -wave.enemies = [LIGHT_GRAY]{0} inimigos restantes -wave.enemy = [LIGHT_GRAY]{0} inimigo restante +wave.enemies = [lightgray]{0} inimigos restantes +wave.enemy = [lightgray]{0} inimigo restante loadimage = Carregar\nimagem saveimage = Salvar\nimagem unknown = Desconhecido @@ -291,8 +291,8 @@ builtin = Padrão map.delete.confirm = Certeza que quer deletar este mapa? Isto não pode ser desfeito! map.random = [accent]Mapa aleatório map.nospawn = Este mapa não possui nenhum núcleo para o jogador nascer! Adicione um núcleo[accent] amarelo[] para este mapa no editor. -map.nospawn.pvp = Esse mapa não tem núcleos inimigos para os jogadores nascerem! Adicione[SCARLET] núcleos vermelhos[] no mapa no editor. -map.nospawn.attack = Esse mapa não tem nenhum núcleo inimigo para o jogador atacar! coloque[SCARLET] núcleos[] vermelhos no editor. +map.nospawn.pvp = Esse mapa não tem núcleos inimigos para os jogadores nascerem! Adicione[scarlet] núcleos vermelhos[] no mapa no editor. +map.nospawn.attack = Esse mapa não tem nenhum núcleo inimigo para o jogador atacar! coloque[scarlet] núcleos[] vermelhos no editor. map.invalid = Erro ao carregar o mapa: Arquivo de mapa invalido ou corrupto. workshop.update = Atualizar item workshop.error = Erro buscando os detalhes da oficina: {0} @@ -337,7 +337,7 @@ 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. -editor.default = [LIGHT_GRAY] +editor.default = [lightgray] details = Detalhes... edit = Editar... editor.name = Nome: @@ -399,7 +399,7 @@ toolmode.fillteams.description = Muda o time do qual todos os blocos pertencem. toolmode.drawteams = Desenhar times toolmode.drawteams.description = Muda o time do qual o bloco pertence. -filters.empty = [LIGHT_GRAY]Sem filtro! Adicione um usando o botão abaixo. +filters.empty = [lightgray]Sem filtro! Adicione um usando o botão abaixo. filter.distort = Distorcedor filter.noise = Geração aleatória filter.enemyspawn = Enemy Spawn Select @@ -453,15 +453,15 @@ mapeditor = Editor de mapa abandon = Abandonar abandon.text = Esta zona e todos os seus recursos serão perdidos para o inimigo. locked = Trancado -complete = [LIGHT_GRAY]Completo: +complete = [lightgray]Completo: requirement.wave = Alcançar a Horda {0} em {1} requirement.core = Destruir o núcleo inimigo em {0} requirement.unlock = Desbloquear {0} -resume = Resumir Zona:\n[LIGHT_GRAY]{0} -bestwave = [LIGHT_GRAY]Melhor: {0} +resume = Resumir Zona:\n[lightgray]{0} +bestwave = [lightgray]Melhor: {0} launch = Lançar launch.title = Lançamento feito com sucesso -launch.next = [LIGHT_GRAY]Próxima oportunidade na Horda {0} +launch.next = [lightgray]Próxima oportunidade na Horda {0} launch.unable2 = [scarlet]Impossível lançar.[] launch.confirm = Isto vai lançar todos os seus recursos no seu núcleo.\nVoce não será capaz de retornar para esta base. launch.skip.confirm = Se você pular a horda agora, você não será capaz de lançar até hordas futuras. @@ -469,9 +469,9 @@ uncover = Descobrir configure = Configurar carregamento bannedblocks = Blocos Banidos addall = Adicionar Todos -configure.locked = [LIGHT_GRAY]Alcançe a horda {0}\npara configurar o carregamento. +configure.locked = [lightgray]Alcançe a horda {0}\npara configurar o carregamento. configure.invalid = A quantidade deve ser um número entre 0 e {0}. -zone.unlocked = [LIGHT_GRAY]{0} Desbloqueado. +zone.unlocked = [lightgray]{0} Desbloqueado. zone.requirement.complete = Horda {0} alcançada:\n{1} Requerimentos da zona alcançada. zone.config.unlocked = Equipamento desbloqueado:[lightgray]\n{0} zone.resources = Recursos detectados: @@ -548,7 +548,7 @@ blocks.output = Saída blocks.booster = Apoio blocks.tiles = Required Tiles blocks.affinities = Affinities -block.unknown = [LIGHT_GRAY]??? +block.unknown = [lightgray]??? blocks.powercapacity = Capacidade de Energia blocks.powershot = Energia/tiro blocks.damage = Dano @@ -641,7 +641,7 @@ setting.flow.name = Display Resource Flow Rate[scarlet] (experimental) setting.buildautopause.name = Pausar construções automaticamente setting.animatedwater.name = Água animada setting.animatedshields.name = Escudos animados -setting.antialias.name = Filtro suavizante[LIGHT_GRAY] (reinicialização requerida)[] +setting.antialias.name = Filtro suavizante[lightgray] (reinicialização requerida)[] setting.playerindicators.name = Player Indicators setting.indicators.name = Indicador de aliados/inimigos setting.autotarget.name = Alvo automatico @@ -670,11 +670,11 @@ setting.seconds = {0} segundos setting.blockselecttimeout.name = Tempo limite de seleção de blocos setting.milliseconds = {0} milissegundos setting.fullscreen.name = Tela Cheia -setting.borderlesswindow.name = Janela sem borda[LIGHT_GRAY] (Pode precisar reiniciar) +setting.borderlesswindow.name = Janela sem borda[lightgray] (Pode precisar reiniciar) setting.fps.name = Mostrar FPS e Ping setting.blockselectkeys.name = Mostrar teclas de seleção de blocos setting.vsync.name = VSync -setting.pixelate.name = Pixelizado [LIGHT_GRAY](Pode diminuir a performace) +setting.pixelate.name = Pixelizado [lightgray](Pode diminuir a performace) setting.minimap.name = Mostrar minimapa setting.position.name = Mostrar a posição do Jogador setting.musicvol.name = Volume da Música @@ -782,14 +782,14 @@ rules.blockhealthmultiplier = Multiplicador de vida do bloco rules.playerhealthmultiplier = Multiplicador da vida de jogador rules.playerdamagemultiplier = Multiplicador do dano de jogador rules.unitdamagemultiplier = Multiplicador de dano de Unidade -rules.enemycorebuildradius = Raio de "Não-criação" de core inimigo:[LIGHT_GRAY] (blocos) -rules.respawntime = Tempo de renascimento:[LIGHT_GRAY] (seg) -rules.wavespacing = Espaço de tempo entre hordas:[LIGHT_GRAY] (seg) +rules.enemycorebuildradius = Raio de "Não-criação" de core inimigo:[lightgray] (blocos) +rules.respawntime = Tempo de renascimento:[lightgray] (seg) +rules.wavespacing = Espaço de tempo entre hordas:[lightgray] (seg) rules.buildcostmultiplier = Multiplicador de custo de construção rules.buildspeedmultiplier = Multiplicador de velocidade de construção rules.deconstructrefundmultiplier = Deconstruct Refund Multiplier rules.waitForWaveToEnd = Hordas esperam inimigos -rules.dropzoneradius = Raio da zona de spawn:[LIGHT_GRAY] (blocos) +rules.dropzoneradius = Raio da zona de spawn:[lightgray] (blocos) rules.respawns = Respawn maximos por horda rules.limitedRespawns = Respawn limitados rules.title.waves = Hordas @@ -828,20 +828,20 @@ liquid.slag.name = Escória liquid.oil.name = Petróleo liquid.cryofluid.name = Fluído Criogênico item.corestorable = [lightgray]Armazenável no núcleo: {0} -item.explosiveness = [LIGHT_GRAY]Explosibilidade: {0} -item.flammability = [LIGHT_GRAY]Inflamabilidade: {0} -item.radioactivity = [LIGHT_GRAY]Radioatividade: {0} -unit.health = [LIGHT_GRAY]Vida: {0} -unit.speed = [LIGHT_GRAY]Velocidade: {0} +item.explosiveness = [lightgray]Explosibilidade: {0} +item.flammability = [lightgray]Inflamabilidade: {0} +item.radioactivity = [lightgray]Radioatividade: {0} +unit.health = [lightgray]Vida: {0} +unit.speed = [lightgray]Velocidade: {0} unit.weapon = [lightgray]Weapon: {0} unit.itemcapacity = [lightgray]Item Capacity: {0} unit.minespeed = [lightgray]Mining Speed: {0}% unit.minepower = [lightgray]Mining Power: {0} unit.ability = [lightgray]Ability: {0} unit.buildspeed = [lightgray]Building Speed: {0}% -liquid.heatcapacity = [LIGHT_GRAY]Capacidade de aquecimento: {0} -liquid.viscosity = [LIGHT_GRAY]Viscosidade: {0} -liquid.temperature = [LIGHT_GRAY]Temperatura: {0} +liquid.heatcapacity = [lightgray]Capacidade de aquecimento: {0} +liquid.viscosity = [lightgray]Viscosidade: {0} +liquid.temperature = [lightgray]Temperatura: {0} block.cliff.name = Cliff block.sand-boulder.name = Pedregulho de areia @@ -871,7 +871,7 @@ block.thruster.name = Propulsor block.kiln.name = Forno block.graphite-press.name = Prensa de grafite block.multi-press.name = Multi-Prensa -block.constructing = {0}\n[LIGHT_GRAY](Construindo) +block.constructing = {0}\n[lightgray](Construindo) block.spawn.name = Area inimiga block.core-shard.name = Fragmento do núcleo block.core-foundation.name = Fundação do núcleo @@ -1066,7 +1066,7 @@ tutorial.drill.mobile = Minerar manualmente é ineficiente.\n[accent]Brocas []po tutorial.blockinfo = Cada bloco tem diferentes status. Cada broca pode extrair certos minérios.\nPara checar as informações e os status de um bloco,[accent] toque o botão "?" enquanto o seleciona no menu de construção.[]\n\n[accent]Acesse os status da broca mecânica agora.[] tutorial.conveyor = [accent]Esteiras[] São usadas para transportar itens até o núcleo.\nFaça uma linha de Esteiras da mineradora até o núcleo. tutorial.conveyor.mobile = [accent]Esteiras[] são usadas para transportar itens até o núcleo.\nFaça uma linha de esteiras da broca até o núcleo.\n[accent] Coloque uma linha segurando por alguns segundos[] e arrastando em uma direção.\n\n[accent]{0}/{1} esteiras colocadas em linha\n[accent]0/1 itens entregues -tutorial.turret = Estruturas defensivas devem ser construidas para repelir[LIGHT_GRAY] o inimigo[].\nConstrua uma torre dupla perto de sua base. +tutorial.turret = Estruturas defensivas devem ser construidas para repelir[lightgray] o inimigo[].\nConstrua uma torre dupla perto de sua base. tutorial.drillturret = Torres duplas precisam de[accent] cobre[] como munição para atirar.\nColoque uma broca próxima à torre para carregá-la com o cobre minerado. tutorial.pause = Durante uma batalha, você pode[accent] pausar o jogo.[]\nVocê pode enfileirar construções enquanto o jogo está pausado.\n\n[accent]Pressione a barra de espaço para pausar. tutorial.pause.mobile = Durante uma batalha, você pode[accent] pausar o jogo.[]\nVocê pode enfileirar construções enquanto o jogo está pausado, contudo, os mesmos não serão construidos ate que os jogo seja despausado.\n\n[accent]Pressione este botão no canto superior direito para pausar. @@ -1076,7 +1076,7 @@ tutorial.breaking = Blocos precisam frequentemente ser destruídos.\n[accent]Seg tutorial.breaking.mobile = Blocos precisam frequentemente ser destruídos.\n[accent]Selecione o modo de destruição (ícone de martelo)[], e toque em um bloco para começar a quebrar.\nDestrua uma área segurando seu dedo por alguns segundos[] e arrastando em uma direção.\nPressione o botão de "visto" para confirmar a destruição.\n\n[accent]Destrua todos esses blocos de sucata à esquerda do seu núcleo usando a seleção em área. tutorial.withdraw = Em algumas situações é necessário pegar itens diretamente do bloco.\nPara fazer isto, [accent]toque em um bloco[] com itens e [accent]toque no item[] no inventário.\nMúltiplos itens podem ser removidos [accent]ao segurar[].\n\n[accent]Tire um pouco de cobre do núcleo.[] tutorial.deposit = Deposite itens em blocos arrastando da sua nave até o bloco.\n\n[accent]Deposite seu cobre de volta no núcleo.[] -tutorial.waves = O[LIGHT_GRAY] inimigo[] se aproxima.\n\nDefenda seu núcleo por 2 hordas. Construa mais torretas. +tutorial.waves = O[lightgray] inimigo[] se aproxima.\n\nDefenda seu núcleo por 2 hordas. Construa mais torretas. tutorial.waves.mobile = O[lightgray] inimigo[] se aproxima.\n\nDefenda seu núcleo por 2 hordas. Seu drone vai atirar nos inimigos automaticamente.\nConstrua mais torretas e brocas. Minere mais cobre. tutorial.launch = Quando você atinge uma horda específica, Você é capaz de[accent] lançar o núcleo[], deixando suas defesas para trás e[accent] obtendo todos os recursos em seu núcleo.[]\nEstes recursos podem ser usados para pesquisar novas tecnologias.\n\n[accent]Pressione o botão lançar. @@ -1202,8 +1202,8 @@ block.oil-extractor.description = Usa altas quantidades de energia para extrair block.core-shard.description = A primeira iteração do núcleo. Uma vez destruído, todo o contato com a região é perdido. Não deixe isso acontecer. block.core-foundation.description = A segunda versão do núcleo. Mais bem armadurado. Armazena mais recursos. block.core-nucleus.description = A terceira e ultima iteração do núcleo. Extremamente bem armadurada. Guarda quantidades massivas de recursos. -block.vault.description = Carrega uma alta quantidade de itens. Usado para criar fontes Quando não tem uma necessidade constante de materiais. Um[LIGHT_GRAY] Descarregador[] pode ser usado para recuperar esses itens do container. -block.container.description = Carrega uma baixa quantidade de itens. Usado para criar fontes Quando não tem uma necessidade constante de materiais. Um[LIGHT_GRAY] Descarregador[] pode ser usado para recuperar esses itens do container. +block.vault.description = Carrega uma alta quantidade de itens. Usado para criar fontes Quando não tem uma necessidade constante de materiais. Um[lightgray] Descarregador[] pode ser usado para recuperar esses itens do container. +block.container.description = Carrega uma baixa quantidade de itens. Usado para criar fontes Quando não tem uma necessidade constante de materiais. Um[lightgray] Descarregador[] pode ser usado para recuperar esses itens do container. block.unloader.description = Descarrega itens de um container, Descarrega em uma esteira ou diretamente em um bloco adjacente. O tipo de item que pode ser descarregado pode ser mudado clicando no descarregador. block.launch-pad.description = Lança montes de itens sem qualquer necessidade de um lançamento de núcleo. block.launch-pad-large.description = Uma versão melhorada da plataforma de lançamento. Guarda mais itens. Lança mais frequentemente. diff --git a/core/assets/bundles/bundle_pt_PT.properties b/core/assets/bundles/bundle_pt_PT.properties index 67d6b3b65e..01b872892f 100644 --- a/core/assets/bundles/bundle_pt_PT.properties +++ b/core/assets/bundles/bundle_pt_PT.properties @@ -1,4 +1,4 @@ -credits.text = Criado por [ROYAL]Anuken[] - [SKY]anukendev@gmail.com[] +credits.text = Criado por [royal]Anuken[] - [sky]anukendev@gmail.com[] credits = Créditos contributors = Tradutores e contribuidores discord = Junte-se ao Discord do Mindustry! (Lá falamos inglês) @@ -18,7 +18,7 @@ screenshot = Screenshot gravado para {0} screenshot.invalid = Mapa grande demais, Potencialmente sem memória suficiente para captura. gameover = O núcleo foi destruído. gameover.pvp = O time[accent] {0}[] ganhou! -highscore = [YELLOW]Novo recorde! +highscore = [accent]Novo recorde! copied = Copiado. load.sound = Sons @@ -87,7 +87,7 @@ save.quit = Gravar e sair maps = Mapas maps.browse = Pesquisar mapas continue = Continuar -maps.none = [LIGHT_GRAY]Nenhum Mapa Encontrado! +maps.none = [lightgray]Nenhum Mapa Encontrado! invalid = Inválido pickcolor = Pick Color preparingconfig = Preparando configuração @@ -101,7 +101,7 @@ feature.unsupported = O teu dispositivos não suporta esta característica. mods.alphainfo = Lembre-se de que os mods estão em alfa, e [scarlet] pode estar cheio de falhas[].\nReporta qualquer problema que encontres no the Mindustry GitHub ou Discord. mods.alpha = [accent](Alpha) mods = Mods -mods.none = [LIGHT_GRAY]Mods não encontrados! +mods.none = [lightgray]Mods não encontrados! mods.guide = Guia de mods mods.report = Reportar Bug mods.openfolder = Abrir pasta de Mods @@ -126,7 +126,7 @@ mod.import.file = Import File mod.import.github = Importar Mod pelo GitHub mod.item.remove = Este item faz parte do [accent] '{0}'[] mod. Para lhe remover, desinstala o mod. mod.remove.confirm = Este mod irá ser apagado. -mod.author = [LIGHT_GRAY]Autor:[] {0} +mod.author = [lightgray]Autor:[] {0} mod.missing = Este save contém mods que foram recentemente atualizados ou que não estão mais instalados. Ao guardar pode ocorreu corrupção. Tem certeza de que deseja carregá-lo?\n[lightgray]Mods:\n{0} mod.preview.missing = Antes de publicar este mod no workshop, você deve adicionar uma visualização da imagem.\nNome da imagem -> [accent] preview.png[] na pasta de mods e tenta outra vez. mod.folder.missing = Apenas mods na pasta podem ser publicados no Workshop.\nPara converter qualquer mod para uma pasta, simplesmentes descomprime os ficheiros para a pasta e apague o ficheiro zip antigo, e depois reinicia o jogo ou os teus mods. @@ -139,9 +139,9 @@ filename = Nome do ficheiro: unlocked = Novo bloco Desbloqueado! completed = [accent]Completado techtree = Árvore de tecnologia -research.list = [LIGHT_GRAY]Pesquise: +research.list = [lightgray]Pesquise: research = Pesquisa -researched = [LIGHT_GRAY]{0} pesquisado. +researched = [lightgray]{0} pesquisado. players = {0} Jogadores Ativos players.single = {0} Jogador Ativo players.search = search @@ -164,8 +164,8 @@ server.kicked.customClient = Este servidor não suporta versões customizadas. B server.kicked.gameover = Fim de jogo! server.kicked.serverRestarting = The server is restarting. server.versions = Sua versão:[accent] {0}[]\nVersão do servidor:[accent] {1}[] -host.info = O [accent]Hospedar[]Botão Hospeda um servidor no Host[scarlet]6567[] e [scarlet]6568.[]\nQualquer um no [LIGHT_GRAY]Wi-fi Ou Internet local[] Pode ver este servidor na lista de servidores.\n\nSe voce quer poder entrar em qualquer servidor em seu ip, [accent]port forwarding[] é requerido.\n\n[LIGHT_GRAY]Note: Se alguem esta com problemas em conectar no seu servidor lan, Tenha certeza que deixou mindustry Acessar sua internet local nas configurações de firewall -join.info = Aqui, você pode entar em um [accent]IP de servidor[] para conectar, ou descobrir [accent]servidores[] da rede local.\nAmbos os servidores LAN e WAN são suportados.\n\n[LIGHT_GRAY]Note: Não há uma lista de servidores automáticos; Se você quer conectar ao IP de alguém, você precisa pedir o IP ao anfitrião. +host.info = O [accent]Hospedar[]Botão Hospeda um servidor no Host[scarlet]6567[] e [scarlet]6568.[]\nQualquer um no [lightgray]Wi-fi Ou Internet local[] Pode ver este servidor na lista de servidores.\n\nSe voce quer poder entrar em qualquer servidor em seu ip, [accent]port forwarding[] é requerido.\n\n[lightgray]Note: Se alguem esta com problemas em conectar no seu servidor lan, Tenha certeza que deixou mindustry Acessar sua internet local nas configurações de firewall +join.info = Aqui, você pode entar em um [accent]IP de servidor[] para conectar, ou descobrir [accent]servidores[] da rede local.\nAmbos os servidores LAN e WAN são suportados.\n\n[lightgray]Note: Não há uma lista de servidores automáticos; Se você quer conectar ao IP de alguém, você precisa pedir o IP ao anfitrião. hostserver = Hospedar servidor invitefriends = Convidar amigos hostserver.mobile = Hospedar\nJogo @@ -199,7 +199,7 @@ server.edit = Editar servidor server.outdated = [crimson]Servidor desatualizado![] server.outdated.client = [crimson]Cliente desatualizado![] server.version = [lightgray]Versão: {0} -server.custombuild = [yellow]Versão customizada +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? @@ -278,11 +278,11 @@ pausebuilding = [accent][[{0}][] para pausar construção resumebuilding = [scarlet][[{0}][] para resumir construção wave = [accent]Horda {0} wave.waiting = Horda em {0} -wave.waveInProgress = [LIGHT_GRAY]Horda Em Progresso +wave.waveInProgress = [lightgray]Horda Em Progresso waiting = Aguardando... waiting.players = Esperando por jogadores... -wave.enemies = [LIGHT_GRAY]{0} inimigos restantes -wave.enemy = [LIGHT_GRAY]{0} inimigo restante +wave.enemies = [lightgray]{0} inimigos restantes +wave.enemy = [lightgray]{0} inimigo restante loadimage = Carregar\nimagem saveimage = Gravarr\nimagem unknown = Desconhecido @@ -291,8 +291,8 @@ builtin = Embutido map.delete.confirm = Certeza que quer deletar este mapa? Isto não pode ser desfeito! map.random = [accent]Mapa aleatório map.nospawn = Este mapa não possui nenhum núcleo para o jogador nascer! Adicione um núcleo[accent] amarelo[] para este mapa no editor. -map.nospawn.pvp = Esse mapa não tem núcleos inimigos para os jogadores nascerem! Adicione[SCARLET] Núcleos vermelhos[] no mapa no editor. -map.nospawn.attack = Esse mapa não tem nenhum núcleo inimigo para o jogador atacar! coloque[SCARLET] Núcleos[] vermelhos no editor. +map.nospawn.pvp = Esse mapa não tem núcleos inimigos para os jogadores nascerem! Adicione[scarlet] Núcleos vermelhos[] no mapa no editor. +map.nospawn.attack = Esse mapa não tem nenhum núcleo inimigo para o jogador atacar! coloque[scarlet] Núcleos[] vermelhos no editor. map.invalid = Erro ao carregar o mapa: Ficheiro de mapa invalido ou corrupto. workshop.update = Atualizar Item workshop.error = Error fetching workshop details: {0} @@ -337,7 +337,7 @@ 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. -editor.default = [LIGHT_GRAY] +editor.default = [lightgray] details = Detalhes... edit = Editar... editor.name = Nome: @@ -399,7 +399,7 @@ toolmode.fillteams.description = Muda o time do qual todos os blocos pertencem. toolmode.drawteams = Desenhar times toolmode.drawteams.description = Muda o time do qual o bloco pertence. -filters.empty = [LIGHT_GRAY]Sem filtro! Adicione um usando o botão abaixo. +filters.empty = [lightgray]Sem filtro! Adicione um usando o botão abaixo. filter.distort = Distorcedor filter.noise = Geração aleatória filter.enemyspawn = Enemy Spawn Select @@ -453,15 +453,15 @@ mapeditor = Editor de mapa abandon = Abandonar abandon.text = Esta zona e todos os seus recursos serão perdidos para o inimigo. locked = Trancado -complete = [LIGHT_GRAY]Completo: +complete = [lightgray]Completo: requirement.wave = Ronda alcançada {0} / {1} requirement.core = Destruir Núcleo Inimigo em {0} requirement.unlock = Destrava {0} -resume = Resumir Zona:\n[LIGHT_GRAY]{0} -bestwave = [LIGHT_GRAY]Melhor: {0} +resume = Resumir Zona:\n[lightgray]{0} +bestwave = [lightgray]Melhor: {0} launch = Lançar launch.title = Lançamento feito com sucesso -launch.next = [LIGHT_GRAY]Próxima oportunidade na Horda {0} +launch.next = [lightgray]Próxima oportunidade na Horda {0} launch.unable2 = [scarlet]Impossível lançar.[] launch.confirm = Isto vai lançar todos os seus recursos no seu núcleo.\nVoce não será capaz de retornar para esta base. launch.skip.confirm = Se você pular a horda agora, você não será capaz de lançar até hordas mais avançadas. @@ -469,9 +469,9 @@ uncover = Descobrir configure = Configurar carregamento bannedblocks = Blocos banidos addall = Adiciona tudo -configure.locked = [LIGHT_GRAY]Alcançe a horda {0}\npara configurar o carregamento. +configure.locked = [lightgray]Alcançe a horda {0}\npara configurar o carregamento. configure.invalid = A quantidade deve ser um número entre 0 e {0}. -zone.unlocked = [LIGHT_GRAY]{0} Desbloqueado. +zone.unlocked = [lightgray]{0} Desbloqueado. zone.requirement.complete = Horda {0} alcançada:\n{1} Requerimentos da zona alcançada. zone.config.unlocked = Loadout destravada:[lightgray]\n{0} zone.resources = Recursos detectados: @@ -548,7 +548,7 @@ blocks.output = Saida blocks.booster = Booster blocks.tiles = Telhas Requeridas blocks.affinities = Afinidades -block.unknown = [LIGHT_GRAY]??? +block.unknown = [lightgray]??? blocks.powercapacity = Capacidade de Energia blocks.powershot = Energia/tiro blocks.damage = Dano @@ -641,7 +641,7 @@ setting.flow.name = Display Resource Flow Rate[scarlet] (experimental) setting.buildautopause.name = Auto-Pause Building setting.animatedwater.name = Água animada setting.animatedshields.name = Escudos animados -setting.antialias.name = Filtro suavizante[LIGHT_GRAY] (reinicialização requerida)[] +setting.antialias.name = Filtro suavizante[lightgray] (reinicialização requerida)[] setting.playerindicators.name = Player Indicators setting.indicators.name = Indicador de aliados setting.autotarget.name = Alvo automatico @@ -670,11 +670,11 @@ setting.seconds = {0} Segundos setting.blockselecttimeout.name = Tempo limite de seleção do bloco setting.milliseconds = {0} milissegundos setting.fullscreen.name = Ecrã inteiro -setting.borderlesswindow.name = Janela sem borda[LIGHT_GRAY] (Pode precisar reiniciar) +setting.borderlesswindow.name = Janela sem borda[lightgray] (Pode precisar reiniciar) setting.fps.name = Mostrar FPS setting.blockselectkeys.name = Show Block Select Keys setting.vsync.name = VSync -setting.pixelate.name = Pixelizado [LIGHT_GRAY](Pode diminuir a performace) +setting.pixelate.name = Pixelizado [lightgray](Pode diminuir a performace) setting.minimap.name = Mostrar minimapa setting.position.name = Show Player Position setting.musicvol.name = Volume da Música @@ -782,14 +782,14 @@ rules.blockhealthmultiplier = Block Health Multiplier rules.playerhealthmultiplier = Multiplicador da vida de jogador rules.playerdamagemultiplier = Multiplicador do dano de jogador rules.unitdamagemultiplier = Multiplicador de dano de Unidade -rules.enemycorebuildradius = Raio de "Não-criação" de core inimigo:[LIGHT_GRAY] (blocos) -rules.respawntime = Tempo de renascimento:[LIGHT_GRAY] (seg) -rules.wavespacing = Espaço entre hordas:[LIGHT_GRAY] (seg) +rules.enemycorebuildradius = Raio de "Não-criação" de core inimigo:[lightgray] (blocos) +rules.respawntime = Tempo de renascimento:[lightgray] (seg) +rules.wavespacing = Espaço entre hordas:[lightgray] (seg) rules.buildcostmultiplier = Multiplicador de custo de construção rules.buildspeedmultiplier = Multiplicador de velocidade de construção rules.deconstructrefundmultiplier = Deconstruct Refund Multiplier rules.waitForWaveToEnd = hordas esperam inimigos -rules.dropzoneradius = Raio da zona de spawn:[LIGHT_GRAY] (blocos) +rules.dropzoneradius = Raio da zona de spawn:[lightgray] (blocos) rules.respawns = Respawn maximos por horda rules.limitedRespawns = Respawn limitados rules.title.waves = Hordas @@ -828,20 +828,20 @@ liquid.slag.name = Escória liquid.oil.name = Petróleo liquid.cryofluid.name = Crio Fluido item.corestorable = [lightgray]Storable in Core: {0} -item.explosiveness = [LIGHT_GRAY]Explosibilidade: {0} -item.flammability = [LIGHT_GRAY]Inflamabilidade: {0} -item.radioactivity = [LIGHT_GRAY]Radioatividade: {0} -unit.health = [LIGHT_GRAY]Vida: {0} -unit.speed = [LIGHT_GRAY]Velocidade: {0} +item.explosiveness = [lightgray]Explosibilidade: {0} +item.flammability = [lightgray]Inflamabilidade: {0} +item.radioactivity = [lightgray]Radioatividade: {0} +unit.health = [lightgray]Vida: {0} +unit.speed = [lightgray]Velocidade: {0} unit.weapon = [lightgray]Weapon: {0} unit.itemcapacity = [lightgray]Item Capacity: {0} unit.minespeed = [lightgray]Mining Speed: {0}% unit.minepower = [lightgray]Mining Power: {0} unit.ability = [lightgray]Ability: {0} unit.buildspeed = [lightgray]Building Speed: {0}% -liquid.heatcapacity = [LIGHT_GRAY]Capacidade de aquecimento: {0} -liquid.viscosity = [LIGHT_GRAY]Viscosidade: {0} -liquid.temperature = [LIGHT_GRAY]Temperatura: {0} +liquid.heatcapacity = [lightgray]Capacidade de aquecimento: {0} +liquid.viscosity = [lightgray]Viscosidade: {0} +liquid.temperature = [lightgray]Temperatura: {0} block.cliff.name = Cliff block.sand-boulder.name = Pedregulho de areia @@ -871,7 +871,7 @@ block.thruster.name = Propulsor block.kiln.name = Forno para metavidro block.graphite-press.name = Prensa de grafite block.multi-press.name = Multi-Prensa -block.constructing = {0}\n[LIGHT_GRAY](Construindo) +block.constructing = {0}\n[lightgray](Construindo) block.spawn.name = Spawn dos inimigos block.core-shard.name = Fragmento do núcleo block.core-foundation.name = Fundação do núcleo @@ -1066,7 +1066,7 @@ tutorial.drill.mobile = Minerar manualmente é ineficiente.\n[accent]Brocas []po tutorial.blockinfo = Cada bloco tem diferentes status. Cada broca pode extrair certos minérios.\nPara checar as informações e os status de um bloco,[accent] toque o botão "?" enquanto o seleciona no menu de construção.[]\n\n[accent]Acesse os status da broca mecânica agora.[] tutorial.conveyor = [accent]Esteiras[] São usadas para transportar itens até o núcleo.\nFaça uma linha de Esteiras da mineradora até o núcleo. tutorial.conveyor.mobile = [accent]Esteiras[] são usadas para transportar itens até o núcleo.\nFaça uma linha de esteiras da broca até o núcleo.\n[accent] Coloque uma linha segurando por alguns segundos[] e arrastando em uma direção.\n\n[accent]{0}/{1} esteiras postas em linha\n[accent]0/1 itens entregues -tutorial.turret = Estruturas defensivas devem ser construidas para repelir[LIGHT_GRAY] o inimigo[].\nConstrua uma torre dupla perto de sua base. +tutorial.turret = Estruturas defensivas devem ser construidas para repelir[lightgray] o inimigo[].\nConstrua uma torre dupla perto de sua base. tutorial.drillturret = Torretas duplas precisam de[accent] cobre[] como munição para atirar.\nColoque uma broca próxima à torre para carregá-la com o cobre minerado. tutorial.pause = Durante uma batalha, você pode[accent] pausar o jogo.[]\nVocê pode enfileirar construções enquanto o jogo está pausado.\n\n[accent]Pressione a barra de espaço para pausar. tutorial.pause.mobile = Durante uma batalha, você pode[accent] pausar o jogo.[]\nVocê pode enfileirar construções enquanto o jogo está pausado.\n\n[accent]Pressione este botão no canto superior direito para pausar. @@ -1076,7 +1076,7 @@ tutorial.breaking = Blocos precisam frequentemente ser destruídos.\n[accent]Seg tutorial.breaking.mobile = Blocos precisam frequentemente ser destruídos.\n[accent]Selecione o modo de destruição (ícone de martelo)[], e toque em um bloco para começar a quebrar.\nDestrua uma área segurando seu dedo por alguns segundos[] e arrastando em uma direção.\nPressione o botão de "visto" para confirmar a destruição.\n\n[accent]Destrua todos esses blocos de sucata à esquerda do seu núcleo usando a seleção em área. tutorial.withdraw = Em algumas situações é necessário pegar itens diretamente do bloco.\nPara fazer isto, [accent]toque em um bloco[] com itens e [accent]toque no item[] no inventário.\nMúltiplos itens podem ser removidos [accent]ao segurar[].\n\n[accent]Tire um pouco de cobre do núcleo.[] tutorial.deposit = Deposite itens em blocos arrastando da sua nave até o bloco.\n\n[accent]Deposite seu cobre de volta no núcleo.[] -tutorial.waves = O[LIGHT_GRAY] inimigo[] se aproxima.\n\nDefenda seu núcleo por 2 hordas. Construa mais torretas. +tutorial.waves = O[lightgray] inimigo[] se aproxima.\n\nDefenda seu núcleo por 2 hordas. Construa mais torretas. tutorial.waves.mobile = O[lightgray] inimigo[] se aproxima.\n\nDefenda seu núcleo por 2 hordas. Seu drone vai atirar nos inimigos automaticamente.\nConstrua mais torretas e brocas. Minere mais cobre. tutorial.launch = Quando você atinge uma horda específica, Você é capaz de[accent] lançar o núcleo[], deixando suas defesas para trás e[accent] obtendo todos os recursos em seu núcleo.[]\nEstes recursos podem ser usados para pesquisar novas tecnologias.\n\n[accent]Pressione o botão lançar. @@ -1202,8 +1202,8 @@ block.oil-extractor.description = Usa altas quantidades de energia Para extrair block.core-shard.description = Primeira iteração da cápsula do núcleo. Uma vez destruida, o controle da região inteira é perdido. Não deixe isso acontecer. block.core-foundation.description = A segunda versão do núcleo. Melhor armadura. Guarda mais recursos. block.core-nucleus.description = A terceira e ultima iteração do núcleo. Extremamente bem armadurada. Guarda quantidades massivas de recursos. -block.vault.description = Carrega uma alta quantidade de itens. Usado para criar fontes Quando não tem uma necessidade constante de materiais. Um[LIGHT_GRAY] Descarregador[] pode ser usado para recuperar esses itens do container. -block.container.description = Carrega uma baixa quantidade de itens. Usado para criar fontes Quando não tem uma necessidade constante de materiais. Um[LIGHT_GRAY] Descarregador[] pode ser usado para recuperar esses itens do container. +block.vault.description = Carrega uma alta quantidade de itens. Usado para criar fontes Quando não tem uma necessidade constante de materiais. Um[lightgray] Descarregador[] pode ser usado para recuperar esses itens do container. +block.container.description = Carrega uma baixa quantidade de itens. Usado para criar fontes Quando não tem uma necessidade constante de materiais. Um[lightgray] Descarregador[] pode ser usado para recuperar esses itens do container. block.unloader.description = Descarrega itens de um container, Descarrega em uma esteira ou diretamente em um bloco adjacente. O tipo de item que pode ser descarregado pode ser mudado clicando no descarregador. block.launch-pad.description = Lança montes de itens sem qualquer necessidade de um lançamento de núcleo. block.launch-pad-large.description = Uma versão melhorada da plataforma de lançamento. Guarda mais itens. Lança mais frequentemente. diff --git a/core/assets/bundles/bundle_ru.properties b/core/assets/bundles/bundle_ru.properties index b0052dc3d9..686c17e661 100644 --- a/core/assets/bundles/bundle_ru.properties +++ b/core/assets/bundles/bundle_ru.properties @@ -1,4 +1,4 @@ -credits.text = Создатель [ROYAL]Anuken[] — [SKY]anukendev@gmail.com[]\n\nЕсть недоработки в переводе или хотите найти союзников для совместной игры?\nПишите в оф. [accent]discord-сервер Mindustry[] в канал [accent]#русский[].\n\nРедакторы и переводчики на русский язык:\n[blue]Prosta4ok_ua[green]#[yellow]6336\n[darkgray]XZ[gray]imur\n[#30FF30]Beryllium\n[tan]Felix [slate]Corvus\n[orange]Vanguard +credits.text = Создатель [royal]Anuken[] — [sky]anukendev@gmail.com[]\n\nЕсть недоработки в переводе или хотите найти союзников для совместной игры?\nПишите в оф. [accent]discord-сервер Mindustry[] в канал [accent]#русский[].\n\nРедакторы и переводчики на русский язык:\n[blue]Prosta4ok_ua[green]#[yellow]6336\n[darkgray]XZ[gray]imur\n[#30FF30]Beryllium\n[tan]Felix [slate]Corvus\n[orange]Vanguard credits = Авторы contributors = Переводчики и помощники discord = Присоединяйтесь к нашему Discord! @@ -101,7 +101,7 @@ feature.unsupported = Ваше устройство не поддерживае mods.alphainfo = Имейте в виду, что модификации находятся в альфа-версии и [scarlet]могут содержать много ошибок[]. Докладывайте о любых проблемах, которые Вы найдете в Mindustry Github или Discord. mods.alpha = [accent](Альфа) mods = Модификации -mods.none = [LIGHT_GRAY]Модификации не найдены! +mods.none = [lightgray]Модификации не найдены! mods.guide = Руководство по модам mods.report = Доложить об ошибке mods.openfolder = Открыть папку с модификациями @@ -126,7 +126,7 @@ mod.import.file = Импортировать файл mod.import.github = Импортировать мод с GitHub mod.item.remove = Этот предмет является частью модификации [accent]«{0}»[]. Чтобы удалить его, удалите саму модификацию. mod.remove.confirm = Эта модификация будет удалена. -mod.author = [LIGHT_GRAY]Автор:[] {0} +mod.author = [lightgray]Автор:[] {0} mod.missing = Это сохранение содержит модификацию, которое Вы недавно обновили или она больше не установлена. Может случиться повреждение сохранения. Вы уверены, что хотите загрузить его?\n[lightgray]Модификации:\n{0} mod.preview.missing = Перед публикацией этой модификации в Мастерской, Вы должны добавить изображение предпросмотра.\nРазместите изображение с именем[accent] preview.png[] в папке модификации и попробуйте снова. mod.folder.missing = Модификации могут быть опубликованы в Мастерской только в виде папки.\nЧтобы конвертировать любой мод в папку, просто извлеките его из архива и удалите старый архив .zip, затем перезапустите игру или перезагрузите модификации. @@ -291,8 +291,8 @@ builtin = Встроенная map.delete.confirm = Вы действительно хотите удалить эту карту? Это действие не может быть отменено! map.random = [accent]Случайная карта map.nospawn = Эта карта не имеет ни одного ядра, в котором игрок может появиться! Добавьте[accent] оранжевое[] ядро на эту карту в редакторе. -map.nospawn.pvp = У этой карты нет вражеских ядер, в которых игрок может появиться! Добавьте[SCARLET] не оранжевое[] ядро на эту карту в редакторе. -map.nospawn.attack = У этой карты нет вражеских ядер для атаки игроком! Добавьте[SCARLET] красное[] ядро на эту карту в редакторе. +map.nospawn.pvp = У этой карты нет вражеских ядер, в которых игрок может появиться! Добавьте[scarlet] не оранжевое[] ядро на эту карту в редакторе. +map.nospawn.attack = У этой карты нет вражеских ядер для атаки игроком! Добавьте[scarlet] красное[] ядро на эту карту в редакторе. map.invalid = Ошибка загрузки карты: повреждённый или недопустимый файл карты. workshop.update = Обновить содержимое workshop.error = Ошибка загрузки информации из Мастерской: {0} diff --git a/core/assets/bundles/bundle_sv.properties b/core/assets/bundles/bundle_sv.properties index c663cd8035..225cc63a90 100644 --- a/core/assets/bundles/bundle_sv.properties +++ b/core/assets/bundles/bundle_sv.properties @@ -1,21 +1,22 @@ -credits.text = Skapad av [ROYAL]Anuken[] - [SKY]anukendev@gmail.com[] -credits = Credits -contributors = Översättare och bidragsgivare -discord = Gå med Mindustry:s Discord server! -link.discord.description = Officiella chattrummet för Mindustry -link.reddit.description = The Mindustry subreddit + +credits.text = Skapad av [royal]Anuken[] - [sky]anukendev@gmail.com[] +credits = Medverkande +contributors = Översättare och medarbetare +discord = Gå med Mindustrys Discord server! +link.discord.description = Officiella Discord chattrummet för Mindustry +link.reddit.description = Mindustry subredditet link.github.description = Spelets källkod link.changelog.description = Lista av uppdateringar -link.dev-builds.description = Unstable development builds -link.trello.description = Officiell Trello tavla för plannerade funktioner -link.itch.io.description = itch.io sida med nedladdningar +link.dev-builds.description = Ostabila development builds +link.trello.description = Officiell Trello tavla för uppkommande funktioner +link.itch.io.description = itch.io med nedladdningar link.google-play.description = Mindustry på Google Play -link.f-droid.description = F-Droid catalogue listing +link.f-droid.description = F-Droid katalog listning link.wiki.description = Officiell wiki-sida för Mindustry -link.feathub.description = Suggest new features -linkfail = Kunde inte öppna länken!\nURL:en har kopierats till ditt urklipp. +link.feathub.description = Föreslå nya funktioner +linkfail = Kunde inte öppna länken!\nLänken har kopierats till ditt urklipp. screenshot = Skärmdump har sparats till {0} -screenshot.invalid = Karta för stor, potentiellt inte tillräckligt minne för . +screenshot.invalid = Karta för stor, potentiellt inte tillräckligt minne för skärmdump. gameover = Game Over gameover.pvp = The[accent] {0}[] team is victorious! highscore = [accent]Nytt rekord! @@ -29,30 +30,30 @@ load.system = System load.mod = Mods load.scripts = Scripts -be.update = A new Bleeding Edge build is available: -be.update.confirm = Download it and restart now? -be.updating = Updating... -be.ignore = Ignore -be.noupdates = No updates found. -be.check = Check for updates +be.update = En ny beta version är tillgänglig: +be.update.confirm = Ladda ner och starta om? +be.updating = Uppdaterar... +be.ignore = Ignorera +be.noupdates = Inga uppdateringar hittades. +be.check = Leta efter uppdateringar schematic = Schematic -schematic.add = Save Schematic... +schematic.add = Spara Schematic... schematics = Schematics -schematic.replace = A schematic by that name already exists. Replace it? -schematic.exists = A schematic by that name already exists. -schematic.import = Import Schematic... -schematic.exportfile = Export File -schematic.importfile = Import File -schematic.browseworkshop = Browse Workshop -schematic.copy = Copy to Clipboard -schematic.copy.import = Import from Clipboard -schematic.shareworkshop = Share on Workshop -schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Flip Schematic -schematic.saved = Schematic saved. -schematic.delete.confirm = This schematic will be utterly eradicated. -schematic.rename = Rename Schematic -schematic.info = {0}x{1}, {2} blocks +schematic.replace = En schematic med det namnet finns redan. Byt ut den? +schematic.exists = En schematic med det namnet finns redan. +schematic.import = Importera Schematic... +schematic.exportfile = Exportera Fil +schematic.importfile = Importera Fil +schematic.browseworkshop = Öppna Workshoppen +schematic.copy = Kopiera till urklipp +schematic.copy.import = Importera från urklipp +schematic.shareworkshop = Dela på Workshoppen +schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Vänd Schematic +schematic.saved = Schematic sparad. +schematic.delete.confirm = Den här schematicen kommer bli ytterst borttagen. +schematic.rename = Döp om Schematic +schematic.info = {0}x{1}, {2} block stat.wave = Besegrade vågor:[accent] {0} stat.enemiesDestroyed = Besegrade fiender:[accent] {0} @@ -60,12 +61,12 @@ stat.built = Buildings Built:[accent] {0} stat.destroyed = Buildings Destroyed:[accent] {0} stat.deconstructed = Buildings Deconstructed:[accent] {0} stat.delivered = Resources Launched: -stat.playtime = Time Played:[accent] {0} -stat.rank = Final Rank: [accent]{0} +stat.playtime = Tid Spelat:[accent] {0} +stat.rank = Slutgiltiga Rank: [accent]{0} launcheditems = [accent]Launched Items launchinfo = [unlaunched][[LAUNCH] your core to obtain the items indicated in blue. -map.delete = Are you sure you want to delete the map "[accent]{0}[]"? +map.delete = Är du säker på att du vill ta bort mappen "[accent]{0}[]"? level.highscore = High Score: [accent]{0} level.select = Nivåval level.mode = Spelläge: @@ -74,14 +75,14 @@ nearpoint = [[ [scarlet]LÄMNA DROPPZONEN OMEDELBART[] ]\ndu dör snart database = Kärndatabas savegame = Spara Spel loadgame = Importera Spel -joingame = Gå med spel +joingame = Gå med Spel customgame = Anpassat Spel newgame = Nytt Spel none = minimap = Minikarta position = Position close = Stäng -website = Webbsida +website = Hemsida quit = Avsluta save.quit = Spara & lämna maps = Kartor @@ -98,10 +99,10 @@ committingchanges = Comitting Changes done = Klar feature.unsupported = Your device does not support this feature. -mods.alphainfo = Keep in mind that mods are in alpha, and[scarlet] may be very buggy[].\nReport any issues you find to the Mindustry GitHub or Discord. +mods.alphainfo = Kom ihåg att mods är i alpha, och[scarlet] kan vara väldigt buggiga[].\nReport any issues you find to the Mindustry GitHub or Discord. mods.alpha = [accent](Alpha) mods = Mods -mods.none = [LIGHT_GRAY]No mods found! +mods.none = [lightgray]No mods found! mods.guide = Modding Guide mods.report = Report Bug mods.openfolder = Open Mod Folder @@ -126,7 +127,7 @@ mod.import.file = Import File mod.import.github = Import GitHub Mod mod.item.remove = This item is part of the[accent] '{0}'[] mod. To remove it, uninstall that mod. mod.remove.confirm = This mod will be deleted. -mod.author = [LIGHT_GRAY]Author:[] {0} +mod.author = [lightgray]Author:[] {0} mod.missing = This save contains mods that you have recently updated or no longer have installed. Save corruption may occur. Are you sure you want to load it?\n[lightgray]Mods:\n{0} mod.preview.missing = Before publishing this mod in the workshop, you must add an image preview.\nPlace an image named[accent] preview.png[] into the mod's folder and try again. mod.folder.missing = Only mods in folder form can be published on the workshop.\nTo convert any mod into a folder, simply unzip its file into a folder and delete the old zip, then restart your game or reload your mods. @@ -199,7 +200,7 @@ server.edit = Redigera Server server.outdated = [crimson]Outdated Server![] server.outdated.client = [crimson]Outdated Client![] server.version = [gray]v{0} {1} -server.custombuild = [yellow]Custom Build +server.custombuild = [accent]Custom Build confirmban = Are you sure you want to ban this player? confirmkick = Are you sure you want to kick this player? confirmvotekick = Are you sure you want to vote-kick this player? @@ -291,8 +292,8 @@ builtin = Inbyggd map.delete.confirm = Are you sure you want to delete this map? This action cannot be undone! map.random = [accent]Random Map map.nospawn = This map does not have any cores for the player to spawn in! Add a[accent] orange[] core to this map in the editor. -map.nospawn.pvp = This map does not have any enemy cores for player to spawn into! Add[SCARLET] non-orange[] cores to this map in the editor. -map.nospawn.attack = This map does not have any enemy cores for player to attack! Add[SCARLET] red[] cores to this map in the editor. +map.nospawn.pvp = This map does not have any enemy cores for player to spawn into! Add[scarlet] non-orange[] cores to this map in the editor. +map.nospawn.attack = This map does not have any enemy cores for player to attack! Add[scarlet] red[] cores to this map in the editor. map.invalid = Error loading map: corrupted or invalid map file. workshop.update = Update Item workshop.error = Error fetching workshop details: {0} diff --git a/core/assets/bundles/bundle_th.properties b/core/assets/bundles/bundle_th.properties index 6024a2f365..a88ea7ed31 100644 --- a/core/assets/bundles/bundle_th.properties +++ b/core/assets/bundles/bundle_th.properties @@ -1,4 +1,4 @@ -credits.text = สร้างโดย [ROYAL]Anuken[] - [SKY]anukendev@gmail.com[] +credits.text = สร้างโดย [royal]Anuken[] - [sky]anukendev@gmail.com[] credits = เครดิต contributors = ผู้แปลภาษาและผู้ช่วย discord = เข้าร่วมเซิฟเวอร์ Discord ของ Mindustry สิ! @@ -100,7 +100,7 @@ feature.unsupported = อุปกรณ์ของคุณไม่รอง mods.alphainfo = จำไว้ว่ามอดนั้นยังอยู่ในขั้น alpha และ[scarlet] อาจจะมีบัค[].\nโปรดรายงานปัญหาที่คุณพบใน Github ของ Mindustry หรือ ในเซิฟเวอร์ Discord mods.alpha = [accent](Alpha) mods = มอด -mods.none = [LIGHT_GRAY]ไม่พบมอด! +mods.none = [lightgray]ไม่พบมอด! mods.guide = คู่มือการทำมอด mods.report = รายงานบัค mods.openfolder = เปิดมอดโฟลเดอร์ @@ -125,7 +125,7 @@ mod.import.file = Import File mod.import.github = นำเข้ามอดจาก Github mod.item.remove = This item is part of the[accent] '{0}'[] mod. To remove it, uninstall that mod. mod.remove.confirm = มอดนี้จะถูกลบ -mod.author = [LIGHT_GRAY]ผู้สร้าง:[] {0} +mod.author = [lightgray]ผู้สร้าง:[] {0} mod.missing = เซฟนี้มีมอดที่คุณอัปเดตหรือไม่ได้ติดตั้งแล้ว. อาจทำให้เซฟเสีย. คุณแน่จะหรือว่าจะโหลดเซฟนี้?\n[lightgray]Mods:\n{0} mod.preview.missing = ก่อนที่จะนำมอดไปลงใน workshop, คุณต้องใส่รูปพรีวิวก่อน\nใส่รูปชื่อ[accent] preview.png[] ลงในโฟลเดอร์ของมอดแล้วลองอีกครั้ง mod.folder.missing = มอดที่อยู่ในรูปแบบโฟลเดอร์เท่านั้นที่สามารถลงใน workshop ได้\nunzip ไฟล์แล้วลบไฟล์ zip เก่า แล้วรีสตาร์ทเกมหรือรีโหลดมอด @@ -290,8 +290,8 @@ builtin = Built-In map.delete.confirm = คุณแน่ใจหรือว่าจะลบแมพนี้? การกระทำครั้งนี้ไม่สามารถย้อนกลับได้! map.random = [accent]สุ่มแมพ map.nospawn = แมพนี้ไม่มี core ที่จะให้ผู้เล่นเกิด! กรุณาใส่ core[accent] สีส้ม[] ใน editor -map.nospawn.pvp = แมพนี้ไม่มี core ของศัตรูสำหรับให้ผู้เล่นเกิด! กรุณาใส่ core[SCARLET] ที่ไม่ใช่สีส้ม[] ใน editor -map.nospawn.attack = แมพนี้ไม่มี core ของศัตรูสำหรับให้ผู้เล่นโจมตี! กรุณาใส่ core[SCARLET] สีแดง[] ใน editor +map.nospawn.pvp = แมพนี้ไม่มี core ของศัตรูสำหรับให้ผู้เล่นเกิด! กรุณาใส่ core[scarlet] ที่ไม่ใช่สีส้ม[] ใน editor +map.nospawn.attack = แมพนี้ไม่มี core ของศัตรูสำหรับให้ผู้เล่นโจมตี! กรุณาใส่ core[scarlet] สีแดง[] ใน editor map.invalid = โหลดแมพผิดพลาด: ไฟล์แมพเสียหายหรือไม่ถูกต้อง workshop.update = อัปเดตไอเท็ม workshop.error = ผิดพลาดในการนำ workshop มา รายละเอียดดังนี้: {0} diff --git a/core/assets/bundles/bundle_tk.properties b/core/assets/bundles/bundle_tk.properties index 73c2974581..6ed24b1fc5 100644 --- a/core/assets/bundles/bundle_tk.properties +++ b/core/assets/bundles/bundle_tk.properties @@ -1,4 +1,4 @@ -credits.text = Created by [ROYAL]Anuken[] - [SKY]anukendev@gmail.com[]\n\n[GRAY](In case you can't tell, this text is currently unfinished.\nTranslators, don't edit it yet!) +credits.text = Created by [royal]Anuken[] - [sky]anukendev@gmail.com[]\n\n[gray](In case you can't tell, this text is currently unfinished.\nTranslators, don't edit it yet!) credits = Emegi gecenler contributors = Translators and Contributors discord = Mindustry'in Discord'una katilin! @@ -87,7 +87,7 @@ save.quit = Save & Quit maps = Haritalar maps.browse = Browse Maps continue = Devam et -maps.none = [LIGHT_GRAY]Harita bulunamadi! +maps.none = [lightgray]Harita bulunamadi! invalid = Invalid pickcolor = Pick Color preparingconfig = Preparing Config @@ -101,7 +101,7 @@ feature.unsupported = Your device does not support this feature. mods.alphainfo = Keep in mind that mods are in alpha, and[scarlet] may be very buggy[].\nReport any issues you find to the Mindustry GitHub or Discord. mods.alpha = [accent](Alpha) mods = Mods -mods.none = [LIGHT_GRAY]No mods found! +mods.none = [lightgray]No mods found! mods.guide = Modding Guide mods.report = Report Bug mods.openfolder = Open Mod Folder @@ -126,7 +126,7 @@ mod.import.file = Import File mod.import.github = Import GitHub Mod mod.item.remove = This item is part of the[accent] '{0}'[] mod. To remove it, uninstall that mod. mod.remove.confirm = This mod will be deleted. -mod.author = [LIGHT_GRAY]Author:[] {0} +mod.author = [lightgray]Author:[] {0} mod.missing = This save contains mods that you have recently updated or no longer have installed. Save corruption may occur. Are you sure you want to load it?\n[lightgray]Mods:\n{0} mod.preview.missing = Before publishing this mod in the workshop, you must add an image preview.\nPlace an image named[accent] preview.png[] into the mod's folder and try again. mod.folder.missing = Only mods in folder form can be published on the workshop.\nTo convert any mod into a folder, simply unzip its file into a folder and delete the old zip, then restart your game or reload your mods. @@ -139,9 +139,9 @@ filename = File Name: unlocked = Yeni yapi acildi!! completed = [accent]Completed techtree = Tech Tree -research.list = [LIGHT_GRAY]Research: +research.list = [lightgray]Research: research = Research -researched = [LIGHT_GRAY]{0} researched. +researched = [lightgray]{0} researched. players = {0} oyuncu cevrimici players.single = {0} oyuncu cevrimici players.search = search @@ -164,8 +164,8 @@ server.kicked.customClient = Bu oyun ayarlanmis vesiyonlara izin vermiyor. Oriji server.kicked.gameover = Game over! server.kicked.serverRestarting = The server is restarting. server.versions = Your version:[accent] {0}[]\nServer version:[accent] {1}[] -host.info = [accent]host[] su linkte bir oyun acti! [scarlet]6567[]. \nSeninle [LIGHT_GRAY]ayni internete[] sahip olan kisiler oyunu gorebilir.\n\neger baska yerlerden kisilerind de gelmesini istiyorsan, [accent]oyun acmak[]zorunludur.\n\n[LIGHT_GRAY]Not: eger baglanmakta gucluk cekiliyorsa, antivirusunun internetine baglanmasini izin vermesini sagla. -join.info = Buradan,[accent]Oyunun linkini[] kullanarak katilabilir, yada, [accent]internetinle[] baglanacak oyun bulabilirsin\ninternetli ve Linkli oyunlar desteklenir.\n\n[LIGHT_GRAY]Not: Otomatik bir oyun listesi goruntulenemez. Yapimcidan linkini iste. +host.info = [accent]host[] su linkte bir oyun acti! [scarlet]6567[]. \nSeninle [lightgray]ayni internete[] sahip olan kisiler oyunu gorebilir.\n\neger baska yerlerden kisilerind de gelmesini istiyorsan, [accent]oyun acmak[]zorunludur.\n\n[lightgray]Not: eger baglanmakta gucluk cekiliyorsa, antivirusunun internetine baglanmasini izin vermesini sagla. +join.info = Buradan,[accent]Oyunun linkini[] kullanarak katilabilir, yada, [accent]internetinle[] baglanacak oyun bulabilirsin\ninternetli ve Linkli oyunlar desteklenir.\n\n[lightgray]Not: Otomatik bir oyun listesi goruntulenemez. Yapimcidan linkini iste. hostserver = Oyun ac invitefriends = Invite Friends hostserver.mobile = Host\nGame @@ -199,7 +199,7 @@ server.edit = Oyunu ayarla server.outdated = [crimson]Eski Oyun![] server.outdated.client = [crimson]eski islemci![] server.version = [lightgray]Versiyon: {0} -server.custombuild = [yellow]ozel yapi +server.custombuild = [accent]ozel yapi confirmban = Bu oyuncuyu kalici olarak atmak istedigine emin misin? confirmkick = Are you sure you want to kick this player? confirmvotekick = Are you sure you want to vote-kick this player? @@ -278,11 +278,11 @@ pausebuilding = [accent][[{0}][] to pause building resumebuilding = [scarlet][[{0}][] to resume building wave = [accent]Dalga {0} wave.waiting = Dalganin baslamasina: {0} -wave.waveInProgress = [LIGHT_GRAY]Wave in progress +wave.waveInProgress = [lightgray]Wave in progress waiting = Bekleniyor... waiting.players = Waiting for players... -wave.enemies = [LIGHT_GRAY]{0} Enemies Remaining -wave.enemy = [LIGHT_GRAY]{0} Enemy Remaining +wave.enemies = [lightgray]{0} Enemies Remaining +wave.enemy = [lightgray]{0} Enemy Remaining loadimage = Resimden Yukle saveimage = Resimi kaydet unknown = Bilinmeyen @@ -290,9 +290,9 @@ custom = Ozel builtin = Yapilandirilmis map.delete.confirm = Haritayi silmek istedigine emin misin? Bu geri alinamaz! map.random = [accent]Rasgele harita -map.nospawn = Haritada Oyncularin cikmasi icin cekirdek yok! Haritaya[ROYAL]Mavi[] cekirdek ekle. -map.nospawn.pvp = This map does not have any enemy cores for player to spawn into! Add[SCARLET] red[] cores to this map in the editor. -map.nospawn.attack = This map does not have any enemy cores for player to attack! Add[SCARLET] red[] cores to this map in the editor. +map.nospawn = Haritada Oyncularin cikmasi icin cekirdek yok! Haritaya[royal]Mavi[] cekirdek ekle. +map.nospawn.pvp = This map does not have any enemy cores for player to spawn into! Add[scarlet] red[] cores to this map in the editor. +map.nospawn.attack = This map does not have any enemy cores for player to attack! Add[scarlet] red[] cores to this map in the editor. map.invalid = Harita yuklenemedi. Gecersiz yada bozuk dosya. workshop.update = Update Item workshop.error = Error fetching workshop details: {0} @@ -337,7 +337,7 @@ waves.load = Load from Clipboard waves.invalid = Invalid waves in clipboard. waves.copied = Waves copied. waves.none = No enemies defined.\nNote that empty wave layouts will automatically be replaced with the default layout. -editor.default = [LIGHT_GRAY] +editor.default = [lightgray] details = Details... edit = Edit... editor.name = isim: @@ -399,7 +399,7 @@ toolmode.fillteams.description = Fill teams instead of blocks. toolmode.drawteams = Draw Teams toolmode.drawteams.description = Draw teams instead of blocks. -filters.empty = [LIGHT_GRAY]No filters! Add one with the button below. +filters.empty = [lightgray]No filters! Add one with the button below. filter.distort = Distort filter.noise = Noise filter.enemyspawn = Enemy Spawn Select @@ -453,15 +453,15 @@ mapeditor = Harita yaraticisi abandon = Abandon abandon.text = This zone and all its resources will be lost to the enemy. locked = Locked -complete = [LIGHT_GRAY]Complete: +complete = [lightgray]Complete: requirement.wave = Reach Wave {0} in {1} requirement.core = Destroy Enemy Core in {0} requirement.unlock = Unlock {0} -resume = Resume Zone:\n[LIGHT_GRAY]{0} -bestwave = [LIGHT_GRAY]Best: {0} +resume = Resume Zone:\n[lightgray]{0} +bestwave = [lightgray]Best: {0} launch = Launch launch.title = Launch Successful -launch.next = [LIGHT_GRAY]next opportunity at wave {0} +launch.next = [lightgray]next opportunity at wave {0} launch.unable2 = [scarlet]Unable to LAUNCH.[] launch.confirm = This will launch all resources in your core.\nYou will not be able to return to this base. launch.skip.confirm = If you skip now, you will not be able to launch until later waves. @@ -469,9 +469,9 @@ uncover = Uncover configure = Configure Loadout bannedblocks = Banned Blocks addall = Add All -configure.locked = [LIGHT_GRAY]Reach wave {0}\nto configure loadout. +configure.locked = [lightgray]Reach wave {0}\nto configure loadout. configure.invalid = Amount must be a number between 0 and {0}. -zone.unlocked = [LIGHT_GRAY]{0} unlocked. +zone.unlocked = [lightgray]{0} unlocked. zone.requirement.complete = Wave {0} reached:\n{1} zone requirements met. zone.config.unlocked = Loadout unlocked:[lightgray]\n{0} zone.resources = Resources Detected: @@ -548,7 +548,7 @@ blocks.output = Output blocks.booster = Booster blocks.tiles = Required Tiles blocks.affinities = Affinities -block.unknown = [LIGHT_GRAY]??? +block.unknown = [lightgray]??? blocks.powercapacity = Guc kapasitesi blocks.powershot = Guc/Saldiri hizi blocks.damage = Damage @@ -641,7 +641,7 @@ setting.flow.name = Display Resource Flow Rate[scarlet] (experimental) setting.buildautopause.name = Auto-Pause Building setting.animatedwater.name = Animated Water setting.animatedshields.name = Animated Shields -setting.antialias.name = Antialias[LIGHT_GRAY] (requires restart)[] +setting.antialias.name = Antialias[lightgray] (requires restart)[] setting.playerindicators.name = Player Indicators setting.indicators.name = Ally Indicators setting.autotarget.name = Auto-Target @@ -670,11 +670,11 @@ setting.seconds = {0} Saniye setting.blockselecttimeout.name = Block Select Timeout setting.milliseconds = {0} milliseconds setting.fullscreen.name = Tam ekran -setting.borderlesswindow.name = Borderless Window[LIGHT_GRAY] (may require restart) +setting.borderlesswindow.name = Borderless Window[lightgray] (may require restart) setting.fps.name = FPS'i goster setting.blockselectkeys.name = Show Block Select Keys setting.vsync.name = VSync -setting.pixelate.name = Pixelate [LIGHT_GRAY](may decrease performance) +setting.pixelate.name = Pixelate [lightgray](may decrease performance) setting.minimap.name = Haritayi goster setting.position.name = Show Player Position setting.musicvol.name = Ses yuksekligi @@ -782,14 +782,14 @@ rules.blockhealthmultiplier = Block Health Multiplier rules.playerhealthmultiplier = Player Health Multiplier rules.playerdamagemultiplier = Player Damage Multiplier rules.unitdamagemultiplier = Unit Damage Multiplier -rules.enemycorebuildradius = Enemy Core No-Build Radius:[LIGHT_GRAY] (tiles) -rules.respawntime = Respawn Time:[LIGHT_GRAY] (sec) -rules.wavespacing = Wave Spacing:[LIGHT_GRAY] (sec) +rules.enemycorebuildradius = Enemy Core No-Build Radius:[lightgray] (tiles) +rules.respawntime = Respawn Time:[lightgray] (sec) +rules.wavespacing = Wave Spacing:[lightgray] (sec) rules.buildcostmultiplier = Build Cost Multiplier rules.buildspeedmultiplier = Build Speed Multiplier rules.deconstructrefundmultiplier = Deconstruct Refund Multiplier rules.waitForWaveToEnd = Waves wait for enemies -rules.dropzoneradius = Drop Zone Radius:[LIGHT_GRAY] (tiles) +rules.dropzoneradius = Drop Zone Radius:[lightgray] (tiles) rules.respawns = Max respawns per wave rules.limitedRespawns = Limit Respawns rules.title.waves = Waves @@ -828,20 +828,20 @@ liquid.slag.name = Slag liquid.oil.name = Benzin liquid.cryofluid.name = kriyo sivisi item.corestorable = [lightgray]Storable in Core: {0} -item.explosiveness = [LIGHT_GRAY]Patlayicilik: {0} -item.flammability = [LIGHT_GRAY]Yanbilirlik: {0} -item.radioactivity = [LIGHT_GRAY]Radyoaktivite: {0} -unit.health = [LIGHT_GRAY]Can: {0} -unit.speed = [LIGHT_GRAY]hiz: {0} +item.explosiveness = [lightgray]Patlayicilik: {0} +item.flammability = [lightgray]Yanbilirlik: {0} +item.radioactivity = [lightgray]Radyoaktivite: {0} +unit.health = [lightgray]Can: {0} +unit.speed = [lightgray]hiz: {0} unit.weapon = [lightgray]Weapon: {0} unit.itemcapacity = [lightgray]Item Capacity: {0} unit.minespeed = [lightgray]Mining Speed: {0}% unit.minepower = [lightgray]Mining Power: {0} unit.ability = [lightgray]Ability: {0} unit.buildspeed = [lightgray]Building Speed: {0}% -liquid.heatcapacity = [LIGHT_GRAY]isinma kapasitesi: {0} -liquid.viscosity = [LIGHT_GRAY]Yari sivilik: {0} -liquid.temperature = [LIGHT_GRAY]isi: {0} +liquid.heatcapacity = [lightgray]isinma kapasitesi: {0} +liquid.viscosity = [lightgray]Yari sivilik: {0} +liquid.temperature = [lightgray]isi: {0} block.cliff.name = Cliff block.sand-boulder.name = Sand Boulder @@ -871,7 +871,7 @@ block.thruster.name = Thruster block.kiln.name = Kiln block.graphite-press.name = Graphite Press block.multi-press.name = Multi-Press -block.constructing = {0}\n[LIGHT_GRAY](Constructing) +block.constructing = {0}\n[lightgray](Constructing) block.spawn.name = Enemy Spawn block.core-shard.name = Core: Shard block.core-foundation.name = Core: Foundation @@ -1066,7 +1066,7 @@ tutorial.drill.mobile = Mining manually is inefficient.\n[accent]Drills []can mi tutorial.blockinfo = Each block has different stats. Each drill can only mine certain ores.\nTo check a block's info and stats,[accent] tap the "?" button while selecting it in the build menu.[]\n\n[accent]Access the Mechanical Drill's stats now.[] tutorial.conveyor = [accent]Conveyors[] are used to transport items to the core.\nMake a line of conveyors from the drill to the core. tutorial.conveyor.mobile = [accent]Conveyors[] are used to transport items to the core.\nMake a line of conveyors from the drill to the core.\n[accent] Place in a line by holding down your finger for a few seconds[] and dragging in a direction.\n\n[accent]{0}/{1} conveyors placed in line\n[accent]0/1 items delivered -tutorial.turret = Defensive structures must be built to repel the[LIGHT_GRAY] enemy[].\nBuild a duo turret near your base. +tutorial.turret = Defensive structures must be built to repel the[lightgray] enemy[].\nBuild a duo turret near your base. tutorial.drillturret = Duo turrets require[accent] copper ammo []to shoot.\nPlace a drill next to the turret to supply it with mined copper. tutorial.pause = During battle, you are able to[accent] pause the game.[]\nYou may queue buildings while paused.\n\n[accent]Press space to pause. tutorial.pause.mobile = During battle, you are able to[accent] pause the game.[]\nYou may queue buildings while paused.\n\n[accent]Press this button in the top left to pause. @@ -1076,7 +1076,7 @@ tutorial.breaking = Blocks frequently need to be destroyed.\n[accent]Hold down r tutorial.breaking.mobile = Blocks frequently need to be destroyed.\n[accent]Select deconstruction mode[], then tap a block to begin breaking it.\nDestroy an area by holding down your finger for a few seconds[] and dragging in a direction.\nPress the checkmark button to confirm breaking.\n\n[accent]Destroy all the scrap blocks to the left of your core using area selection. tutorial.withdraw = In some situations, taking items directly from blocks is necessary.\nTo do this, [accent]tap a block[] with items in it, then [accent]tap the item[] in the inventory.\nMultiple items can be withdrawn by [accent]tapping and holding[].\n\n[accent]Withdraw some copper from the core.[] tutorial.deposit = Deposit items into blocks by dragging from your ship to the destination block.\n\n[accent]Deposit your copper back into the core.[] -tutorial.waves = The[LIGHT_GRAY] enemy[] approaches.\n\nDefend your core for 2 waves. Build more turrets. +tutorial.waves = The[lightgray] enemy[] approaches.\n\nDefend your core for 2 waves. Build more turrets. tutorial.waves.mobile = The[lightgray] enemy[] approaches.\n\nDefend the core for 2 waves. Your ship will automatically fire at enemies.\nBuild more turrets and drills. Mine more copper. tutorial.launch = Once you reach a specific wave, you are able to[accent] launch the core[], leaving your defenses behind and[accent] obtaining all the resources in your core.[]\nThese resources can then be used to research new technology.\n\n[accent]Press the launch button. @@ -1202,8 +1202,8 @@ block.oil-extractor.description = Uses large amounts of power in order to extrac block.core-shard.description = The first iteration of the core capsule. Once destroyed, all contact to the region is lost. Do not let this happen. block.core-foundation.description = The second version of the core. Better armored. Stores more resources. block.core-nucleus.description = The third and final iteration of the core capsule. Extremely well armored. Stores massive amounts of resources. -block.vault.description = Stores a large amount of items. Use it for creating buffers when there is a non-constant demand of materials. An[LIGHT_GRAY] unloader[] can be used to retrieve items from the vault. -block.container.description = Stores a small amount of items. Use it for creating buffers when there is a non-constant demand of materials. An[LIGHT_GRAY] unloader[] can be used to retrieve items from the container. +block.vault.description = Stores a large amount of items. Use it for creating buffers when there is a non-constant demand of materials. An[lightgray] unloader[] can be used to retrieve items from the vault. +block.container.description = Stores a small amount of items. Use it for creating buffers when there is a non-constant demand of materials. An[lightgray] unloader[] can be used to retrieve items from the container. block.unloader.description = Unloads items from a container, vault or core onto a conveyor or directly into an adjacent block. The type of item to be unloaded can be changed by tapping on the unloader. block.launch-pad.description = Launches batches of items without any need for a core launch. Unfinished. block.launch-pad-large.description = An improved version of the launch pad. Stores more items. Launches more frequently. diff --git a/core/assets/bundles/bundle_tr.properties b/core/assets/bundles/bundle_tr.properties index 812571485e..4feb8c3ce8 100644 --- a/core/assets/bundles/bundle_tr.properties +++ b/core/assets/bundles/bundle_tr.properties @@ -1,4 +1,4 @@ -credits.text = [ROYAL]Anuken[] tarafından yapıldı - [SKY]anukendev@gmail.com[] +credits.text = [royal]Anuken[] tarafından yapıldı - [sky]anukendev@gmail.com[] credits = Jenerik contributors = Çevirmenler ve Katkıda Bulunanlar discord = Mindustry'nin Discord sunucusuna Katıl! @@ -101,7 +101,7 @@ feature.unsupported = Cihazınızda bu özellik desteklenmemektedir. mods.alphainfo = Modların alfa aşamasında olduğunu ve [scarlet]oldukça hatalı olabileceklerini[] unutmayın.\nBulduğunuz sorunları Mindustry GitHub'ı veya Discord'una bildirin. mods.alpha = [accent](Alpha) mods = Modlar -mods.none = [LIGHT_GRAY]Hiç mod bulunamadı! +mods.none = [lightgray]Hiç mod bulunamadı! mods.guide = Mod Rehberi mods.report = Hata bildir mods.openfolder = Mod klasörünü aç @@ -126,7 +126,7 @@ mod.import.file = Import File mod.import.github = GitHub Modu İçeri Aktar mod.item.remove = Bu eşya[accent] '{0}'[] modunun bir parçası. Kaldırmak için modu silebilirsiniz. mod.remove.confirm = Bu mod silinecek. -mod.author = [LIGHT_GRAY]Yayıncı:[] {0} +mod.author = [lightgray]Yayıncı:[] {0} mod.missing = Bu kayıt yakın zamanda güncellediğiniz ya da artık yüklü olmayan modlar içermekte. Kayıt bozulmaları yaşanabilir. Kaydı yüklemek istediğinizden emin misiniz?\n[lightgray]Modlar:\n{0} mod.preview.missing = Bu modu atölyede yayınlamadan önce bir resim önizlemesi eklemelisiniz.\nMod dosyasına [accent]preview.png[] adlı bir resim yerleştirin ve tekrar deneyin. mod.folder.missing = Atölyede sadece klasör halindeki modlar yayınlanabilir.Bir modu klasöre çevirmek için, sadece mod dosyalarını bir klasöre çıkarın ve eski sıkıştırılmış dosyayı silin, sonra da oyunu tekrar başlatın ya da modlarınızı tekrar yükleyin. @@ -199,7 +199,7 @@ server.edit = Sunucuyu Düzenle server.outdated = [crimson]Güncel Olmayan Sunucu![] server.outdated.client = [crimson]Güncel Olmayan Sürüm![] server.version = [gray]v{0} {1} -server.custombuild = [yellow]Özel Sürüm +server.custombuild = [accent]Özel Sürüm confirmban = Bu kullanıcıyı yasaklamak istediğine emin misin? confirmkick = Bu kullanıcıyı atmak istediğine emin misin? confirmvotekick = Bu kullanıcıyı oylayıp atmak istediğinize emin misiniz? @@ -291,8 +291,8 @@ builtin = Yerleşik map.delete.confirm = Bu haritayı silmek istediğinizden emin misiniz? Bunu geri alamazsınız! map.random = [accent]Rastgele Harita map.nospawn = Bu haritada oyuncunun doğacağı hiç çekirdek yok! Editörden bu haritaya[accent] turuncu[] bir çekirdek ekleyin. -map.nospawn.pvp = Bu Haritada düşmanın doğacağı hiç çekirdek yok! Editörden bu haritaya [SCARLET]turuncu olmayan[] çekirdekler ekleyin. -map.nospawn.attack = Bu haritada oyuncunun saldıracağı hiç düşman çekirdeği yok! Editörden haritaya[SCARLET] kırmızı[] çekirdekler ekleyin. +map.nospawn.pvp = Bu Haritada düşmanın doğacağı hiç çekirdek yok! Editörden bu haritaya [scarlet]turuncu olmayan[] çekirdekler ekleyin. +map.nospawn.attack = Bu haritada oyuncunun saldıracağı hiç düşman çekirdeği yok! Editörden haritaya[scarlet] kırmızı[] çekirdekler ekleyin. map.invalid = Haritayı açarken hata oldu: bozulmuş ya da geçersiz harita dosyası.- workshop.update = Nesneyi Güncelle workshop.error = Atölye ayrıntılarını alırken hata oluştu: {0} diff --git a/core/assets/bundles/bundle_uk_UA.properties b/core/assets/bundles/bundle_uk_UA.properties index b3a648b661..771e9ce52c 100644 --- a/core/assets/bundles/bundle_uk_UA.properties +++ b/core/assets/bundles/bundle_uk_UA.properties @@ -292,7 +292,7 @@ map.delete.confirm = Ви дійсно хочете видалити цю мап map.random = [accent]Випадкова мапа map.nospawn = Ця мапа не має жодного ядра для появи гравця! Додайте [accent]помаранчеве[] ядро до цієї мапи в редакторі. map.nospawn.pvp = У цієї мапи немає ворожих ядер, в яких гравець може з’явитися! Додайте [scarlet]не помаранчеве[] ядро до цієї мапи в редакторі. -map.nospawn.attack = У цієї мапи немає ворожих ядер, в яких гравець може з’явитися! Додайте[scarlet] червоне[] ядро до цієї мапи в редакторі. +map.nospawn.attack = У цієї мапи немає ворожих ядер, в яких гравець може з’явитися! Додайте [scarlet]червоне[] ядро до цієї мапи в редакторі. map.invalid = Помилка завантаження мапи: пошкоджений або невірний файл мапи. workshop.update = Оновити предмет workshop.error = Помилка при отриманні інформації з Майстерні: {0} diff --git a/core/assets/bundles/bundle_zh_CN.properties b/core/assets/bundles/bundle_zh_CN.properties index 4c8a24c734..a37634b4ee 100644 --- a/core/assets/bundles/bundle_zh_CN.properties +++ b/core/assets/bundles/bundle_zh_CN.properties @@ -1,4 +1,4 @@ -credits.text = 作者[ROYAL]Anuken[] - [SKY]anukendev@gmail.com[] +credits.text = 作者[royal]Anuken[] - [sky]anukendev@gmail.com[] credits = 致谢 contributors = 翻译者和贡献者 discord = 加入 Mindustry 的 Discord! @@ -101,7 +101,7 @@ feature.unsupported = 您的设备不支持此功能。 mods.alphainfo = 请注意,测试版本(alpha)中的模组[scarlet]很容易存在缺陷[]。\n在 Mindustry 的 GitHub 或 Discord 上报告你发现的问题。 mods.alpha = [accent](Alpha) mods = 模组 -mods.none = [LIGHT_GRAY]没有找到模组! +mods.none = [lightgray]没有找到模组! mods.guide = 模组教程 mods.report = 报告 Bug mods.openfolder = 打开模组文件夹 @@ -126,7 +126,7 @@ mod.import.file = 导入文件 mod.import.github = 导入 GitHub 模组 mod.item.remove = 这个物品是[accent] '{0}'[]模组的一部分. 删除物品需要先卸载此模组. mod.remove.confirm = 此模组将被删除。 -mod.author = [LIGHT_GRAY]作者:[] {0} +mod.author = [lightgray]作者:[] {0} mod.missing = 此存档包含您最近已更新或者现在未安装的模组。存档可能会损坏。确定要加载它吗?\n[lightgray]模组:\n{0} mod.preview.missing = 在创意工坊中发布此模组前,您必须添加一则预览图像。\n请将名为[accent] preview.png[] 的图像放入模组文件夹,然后重试。 mod.folder.missing = 只有文件夹形式的模组能在创意工坊上发布。\n若要将任何模组转换为文件夹,只需将其文件解压缩到文件夹中并删除旧压缩包,然后重新启动游戏或重新加载模组。 @@ -199,7 +199,7 @@ server.edit = 编辑服务器 server.outdated = [crimson]服务器过旧![] server.outdated.client = [crimson]客户端过旧![] server.version = [lightgray]版本:{0} {1} -server.custombuild = [yellow]自定义 +server.custombuild = [accent]自定义 confirmban = 确认拉黑这名玩家? confirmkick = 确定踢出这名玩家? confirmvotekick = 确定投票踢出这名玩家? @@ -290,9 +290,9 @@ custom = 自定义 builtin = 内建的 map.delete.confirm = 你确定你想要删除这张地图吗?这个操作无法撤销! map.random = [accent]随机地图 -map.nospawn = 这个地图没有核心!请在编辑器中添加一个[ROYAL]己方[]的核心。 -map.nospawn.pvp = 这个地图没有敌人的核心!请在编辑器中添加一个[ROYAL]敌人[]的核心。 -map.nospawn.attack = 这个地图没有敌人的核心!请在编辑中向地图添加一个[SCARLET]敌人[]的核心。 +map.nospawn = 这个地图没有核心!请在编辑器中添加一个[royal]己方[]的核心。 +map.nospawn.pvp = 这个地图没有敌人的核心!请在编辑器中添加一个[royal]敌人[]的核心。 +map.nospawn.attack = 这个地图没有敌人的核心!请在编辑中向地图添加一个[scarlet]敌人[]的核心。 map.invalid = 地图载入错误:地图文件可能已经损坏。 workshop.update = 更新地图 workshop.error = 获取创意工坊详细信息时出错:{0} diff --git a/core/assets/bundles/bundle_zh_TW.properties b/core/assets/bundles/bundle_zh_TW.properties index bd3569c902..43cd6df1dd 100644 --- a/core/assets/bundles/bundle_zh_TW.properties +++ b/core/assets/bundles/bundle_zh_TW.properties @@ -1,4 +1,4 @@ -credits.text = 由[ROYAL]Anuken[]製作 - [SKY]anukendev@gmail.com[] +credits.text = 由[royal]Anuken[]製作 - [sky]anukendev@gmail.com[] credits = 感謝名單 contributors = 翻譯員和貢獻者 discord = 加入 Mindustry 的 Discord 聊天室! @@ -291,8 +291,8 @@ builtin = 内建 map.delete.confirm = 確認要刪除地圖嗎?此操作無法撤回! map.random = [accent]隨機地圖 map.nospawn = 這個地圖沒有核心!請在編輯器中添加一個[accent]橘色[]的核心。 -map.nospawn.pvp = 這個地圖沒有敵對核心讓玩家重生!請在編輯器中添加一個[SCARLET]不是橘色[]的核心。 -map.nospawn.attack = 這個地圖沒有敵人核心可以攻擊!請在編輯器中添加一個[SCARLET]紅色[]的核心。 +map.nospawn.pvp = 這個地圖沒有敵對核心讓玩家重生!請在編輯器中添加一個[scarlet]不是橘色[]的核心。 +map.nospawn.attack = 這個地圖沒有敵人核心可以攻擊!請在編輯器中添加一個[scarlet]紅色[]的核心。 map.invalid = 地圖載入錯誤:地圖可能已經損壞。 workshop.update = 更新項目 workshop.error = 提取工作坊詳細信息時出錯: {0} diff --git a/core/assets/sprites/sprites.atlas b/core/assets/sprites/sprites.atlas index e888fe8d2a..95224a6200 100644 --- a/core/assets/sprites/sprites.atlas +++ b/core/assets/sprites/sprites.atlas @@ -34,14 +34,14 @@ mend-projector-top index: -1 mender rotate: false - xy: 1071, 467 + xy: 969, 331 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 mender-top rotate: false - xy: 969, 331 + xy: 1003, 365 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -384,175 +384,175 @@ conveyor-4-3 index: -1 plastanium-conveyor rotate: false - xy: 1003, 297 + xy: 1037, 331 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plastanium-conveyor-0 rotate: false - xy: 1037, 331 + xy: 1071, 365 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plastanium-conveyor-1 rotate: false - xy: 1071, 365 + xy: 1105, 399 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plastanium-conveyor-2 rotate: false - xy: 1105, 399 + xy: 1139, 433 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plastanium-conveyor-edge rotate: false - xy: 1139, 433 + xy: 1173, 467 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plastanium-conveyor-stack rotate: false - xy: 1173, 467 + xy: 969, 229 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-0-1 rotate: false - xy: 1207, 331 + xy: 1343, 433 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-0-2 rotate: false - xy: 1241, 365 + xy: 1139, 195 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-0-3 rotate: false - xy: 1275, 399 + xy: 1173, 229 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-1-0 rotate: false - xy: 1309, 433 + xy: 1207, 263 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-1-1 rotate: false - xy: 1343, 467 + xy: 1241, 297 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-1-2 rotate: false - xy: 1105, 195 + xy: 1275, 331 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-1-3 rotate: false - xy: 1139, 229 + xy: 1309, 365 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-2-0 rotate: false - xy: 1173, 263 + xy: 1343, 399 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-2-1 rotate: false - xy: 1207, 297 + xy: 1173, 195 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-2-2 rotate: false - xy: 1241, 331 + xy: 1207, 229 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-2-3 rotate: false - xy: 1275, 365 + xy: 1241, 263 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-3-0 rotate: false - xy: 1309, 399 + xy: 1275, 297 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-3-1 rotate: false - xy: 1343, 433 + xy: 1309, 331 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-3-2 rotate: false - xy: 1139, 195 + xy: 1343, 365 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-3-3 rotate: false - xy: 1173, 229 + xy: 1207, 195 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-4-0 rotate: false - xy: 1207, 263 + xy: 1241, 229 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-4-1 rotate: false - xy: 1241, 297 + xy: 1275, 263 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-4-2 rotate: false - xy: 1275, 331 + xy: 1309, 297 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-4-3 rotate: false - xy: 1309, 365 + xy: 1343, 331 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -615,35 +615,35 @@ mass-driver-base index: -1 overflow-gate rotate: false - xy: 1037, 399 + xy: 1071, 433 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-conveyor rotate: false - xy: 1037, 365 + xy: 1071, 399 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-conveyor-arrow rotate: false - xy: 1071, 399 + xy: 1105, 433 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-conveyor-bridge rotate: false - xy: 1105, 433 + xy: 1139, 467 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-conveyor-end rotate: false - xy: 1139, 467 + xy: 969, 263 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -664,7 +664,7 @@ sorter index: -1 underflow-gate rotate: false - xy: 1207, 229 + xy: 1309, 263 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -867,7 +867,7 @@ conduit-liquid index: -1 message rotate: false - xy: 1003, 365 + xy: 1037, 399 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -1096,132 +1096,153 @@ mechanical-pump orig: 32, 32 offset: 0, 0 index: -1 -phase-conduit +mechanical-pump-liquid rotate: false - xy: 1071, 433 + xy: 1037, 433 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -phase-conduit-arrow +rotary-pump-liquid + rotate: false + xy: 1037, 433 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +thermal-pump-liquid + rotate: false + xy: 1037, 433 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +phase-conduit rotate: false xy: 1105, 467 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -phase-conduit-bridge +phase-conduit-arrow rotate: false xy: 969, 297 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -phase-conduit-end +phase-conduit-bridge rotate: false xy: 1003, 331 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -plated-conduit-cap +phase-conduit-end rotate: false - xy: 1003, 263 + xy: 1037, 365 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -plated-conduit-top-0 +plated-conduit-cap rotate: false xy: 1037, 297 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -plated-conduit-top-1 +plated-conduit-top-0 rotate: false xy: 1071, 331 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -plated-conduit-top-2 +plated-conduit-top-1 rotate: false xy: 1105, 365 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -plated-conduit-top-3 +plated-conduit-top-2 rotate: false xy: 1139, 399 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -plated-conduit-top-4 +plated-conduit-top-3 rotate: false xy: 1173, 433 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -plated-conduit-top-5 +plated-conduit-top-4 rotate: false xy: 1207, 467 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -plated-conduit-top-6 +plated-conduit-top-5 rotate: false xy: 969, 195 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -pulse-conduit-top-0 +plated-conduit-top-6 rotate: false - xy: 1105, 331 + xy: 1003, 229 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -pulse-conduit-top-1 +pulse-conduit-top-0 rotate: false xy: 1139, 365 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -pulse-conduit-top-2 +pulse-conduit-top-1 rotate: false xy: 1173, 399 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -pulse-conduit-top-4 +pulse-conduit-top-2 rotate: false xy: 1207, 433 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -pulse-conduit-top-5 +pulse-conduit-top-4 rotate: false xy: 1241, 467 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -pulse-conduit-top-6 +pulse-conduit-top-5 rotate: false xy: 1003, 195 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 +pulse-conduit-top-6 + rotate: false + xy: 1037, 229 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 rotary-pump rotate: false xy: 1867, 975 @@ -1434,7 +1455,7 @@ impact-reactor-plasma-3 index: -1 power-node rotate: false - xy: 1003, 229 + xy: 1037, 263 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -1448,14 +1469,14 @@ power-node-large index: -1 power-source rotate: false - xy: 1037, 263 + xy: 1071, 297 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 power-void rotate: false - xy: 1071, 297 + xy: 1105, 331 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -1686,7 +1707,7 @@ liquid-void index: -1 melter rotate: false - xy: 1037, 433 + xy: 1071, 467 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -1734,20 +1755,13 @@ plastanium-compressor-top offset: 0, 0 index: -1 pulverizer - rotate: false - xy: 1037, 229 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -pulverizer-rotator rotate: false xy: 1071, 263 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -pump-liquid +pulverizer-rotator rotate: false xy: 1105, 297 size: 32, 32 @@ -1966,14 +1980,14 @@ launch-pad-large index: -1 unloader rotate: false - xy: 1241, 263 + xy: 1343, 297 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unloader-center rotate: false - xy: 1275, 297 + xy: 1275, 195 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -2330,7 +2344,7 @@ door-open index: -1 phase-wall rotate: false - xy: 969, 263 + xy: 1003, 297 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -2344,7 +2358,7 @@ phase-wall-large index: -1 plastanium-wall rotate: false - xy: 969, 229 + xy: 1003, 263 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -2435,7 +2449,7 @@ scrap-wall5 index: -1 surge-wall rotate: false - xy: 1139, 263 + xy: 1275, 365 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -2449,7 +2463,7 @@ surge-wall-large index: -1 thorium-wall rotate: false - xy: 1173, 297 + xy: 1309, 399 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -2470,7 +2484,7 @@ thruster index: -1 titanium-wall rotate: false - xy: 1343, 399 + xy: 1241, 195 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -2610,7 +2624,7 @@ transfer index: -1 transfer-arrow rotate: false - xy: 1173, 195 + xy: 1275, 229 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3744,7 +3758,7 @@ item-metaglass-medium index: -1 item-metaglass-small rotate: false - xy: 1309, 339 + xy: 1309, 237 size: 24, 24 orig: 24, 24 offset: 0, 0 @@ -3779,7 +3793,7 @@ item-phase-fabric-medium index: -1 item-phase-fabric-small rotate: false - xy: 1343, 373 + xy: 1343, 271 size: 24, 24 orig: 24, 24 offset: 0, 0 @@ -3814,7 +3828,7 @@ item-plastanium-medium index: -1 item-plastanium-small rotate: false - xy: 1207, 203 + xy: 1689, 1445 size: 24, 24 orig: 24, 24 offset: 0, 0 @@ -3849,7 +3863,7 @@ item-pyratite-medium index: -1 item-pyratite-small rotate: false - xy: 1241, 237 + xy: 1309, 211 size: 24, 24 orig: 24, 24 offset: 0, 0 @@ -3884,7 +3898,7 @@ item-sand-medium index: -1 item-sand-small rotate: false - xy: 1275, 271 + xy: 1381, 501 size: 24, 24 orig: 24, 24 offset: 0, 0 @@ -3919,7 +3933,7 @@ item-scrap-medium index: -1 item-scrap-small rotate: false - xy: 1689, 1445 + xy: 1377, 475 size: 24, 24 orig: 24, 24 offset: 0, 0 @@ -3954,7 +3968,7 @@ item-silicon-medium index: -1 item-silicon-small rotate: false - xy: 1309, 313 + xy: 1407, 501 size: 24, 24 orig: 24, 24 offset: 0, 0 @@ -3989,14 +4003,14 @@ item-spore-pod-medium index: -1 item-spore-pod-small rotate: false - xy: 1381, 501 + xy: 1377, 449 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-spore-pod-tiny rotate: false - xy: 1377, 405 + xy: 1377, 353 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -4024,14 +4038,14 @@ item-surge-alloy-medium index: -1 item-surge-alloy-small rotate: false - xy: 1377, 475 + xy: 1403, 475 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-surge-alloy-tiny rotate: false - xy: 866, 1609 + xy: 1403, 379 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -4059,14 +4073,14 @@ item-thorium-medium index: -1 item-thorium-small rotate: false - xy: 1407, 501 + xy: 1377, 423 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-thorium-tiny rotate: false - xy: 786, 1406 + xy: 866, 1609 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -4094,14 +4108,14 @@ item-titanium-medium index: -1 item-titanium-small rotate: false - xy: 1377, 449 + xy: 1403, 449 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-titanium-tiny rotate: false - xy: 955, 1479 + xy: 786, 1406 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -4136,14 +4150,14 @@ liquid-cryofluid-medium index: -1 liquid-cryofluid-small rotate: false - xy: 1403, 475 + xy: 1377, 397 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 liquid-cryofluid-tiny rotate: false - xy: 982, 1340 + xy: 955, 1479 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -4171,14 +4185,14 @@ liquid-oil-medium index: -1 liquid-oil-small rotate: false - xy: 1377, 423 + xy: 1403, 423 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 liquid-oil-tiny rotate: false - xy: 985, 814 + xy: 982, 1340 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -4206,14 +4220,14 @@ liquid-slag-medium index: -1 liquid-slag-small rotate: false - xy: 1403, 449 + xy: 1377, 371 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 liquid-slag-tiny rotate: false - xy: 1395, 405 + xy: 985, 814 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -4241,14 +4255,14 @@ liquid-water-medium index: -1 liquid-water-small rotate: false - xy: 1403, 423 + xy: 1403, 397 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 liquid-water-tiny rotate: false - xy: 884, 1609 + xy: 1377, 335 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -4316,6 +4330,90 @@ spectre orig: 128, 128 offset: 0, 0 index: -1 +splash-0 + rotate: false + xy: 1139, 263 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +splash-1 + rotate: false + xy: 1173, 297 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +splash-10 + rotate: false + xy: 1207, 297 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +splash-11 + rotate: false + xy: 1241, 331 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +splash-2 + rotate: false + xy: 1207, 331 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +splash-3 + rotate: false + xy: 1241, 365 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +splash-4 + rotate: false + xy: 1275, 399 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +splash-5 + rotate: false + xy: 1309, 433 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +splash-6 + rotate: false + xy: 1343, 467 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +splash-7 + rotate: false + xy: 1105, 195 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +splash-8 + rotate: false + xy: 1139, 229 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +splash-9 + rotate: false + xy: 1173, 263 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 swarmer rotate: false xy: 1009, 807 diff --git a/core/assets/sprites/sprites.png b/core/assets/sprites/sprites.png index 36f52cb659..8d6b82740f 100644 Binary files a/core/assets/sprites/sprites.png and b/core/assets/sprites/sprites.png differ diff --git a/core/assets/sprites/sprites2.png b/core/assets/sprites/sprites2.png index be00effaf8..adb28e8adf 100644 Binary files a/core/assets/sprites/sprites2.png and b/core/assets/sprites/sprites2.png differ diff --git a/core/build.gradle b/core/build.gradle index 0923858a74..f8d539ee3b 100644 --- a/core/build.gradle +++ b/core/build.gradle @@ -1,4 +1,3 @@ -apply plugin: "java" sourceCompatibility = 1.8 [compileJava, compileTestJava]*.options*.encoding = 'UTF-8' sourceSets.main.java.srcDirs = ["src/", "$buildDir/generated/sources/annotationProcessor/java/main"] diff --git a/core/src/mindustry/ClientLauncher.java b/core/src/mindustry/ClientLauncher.java index fd93a7fa5a..d7287df1be 100644 --- a/core/src/mindustry/ClientLauncher.java +++ b/core/src/mindustry/ClientLauncher.java @@ -36,7 +36,6 @@ public abstract class ClientLauncher extends ApplicationCore implements Platform loader = new LoadRenderer(); Events.fire(new ClientCreateEvent()); - Vars.loadLogger(); Vars.loadFileLogger(); Vars.platform = this; beginTime = Time.millis(); @@ -138,11 +137,11 @@ public abstract class ClientLauncher extends ApplicationCore implements Platform app.post(() -> app.post(() -> app.post(() -> app.post(() -> super.resize(graphics.getWidth(), graphics.getHeight()))))); } }else{ - asyncLogic.begin(); + asyncCore.begin(); super.update(); - asyncLogic.end(); + asyncCore.end(); } int targetfps = Core.settings.getInt("fpscap", 120); diff --git a/core/src/mindustry/Vars.java b/core/src/mindustry/Vars.java index 76625b2c8c..76b1d49e3d 100644 --- a/core/src/mindustry/Vars.java +++ b/core/src/mindustry/Vars.java @@ -12,6 +12,7 @@ import arc.util.Log.*; import arc.util.io.*; import mindustry.ai.*; import mindustry.async.*; +import mindustry.audio.LoopControl; import mindustry.core.*; import mindustry.entities.*; import mindustry.game.*; @@ -126,6 +127,10 @@ public class Vars implements Loadable{ public static boolean steam; /** whether typing into the console is enabled - developers only */ public static boolean enableConsole = false; + /** whether to clear sector saves when landing */ + public static boolean clearSectors = false; + /** whether any light rendering is enabled */ + public static boolean enableLight = true; /** application data directory, equivalent to {@link Settings#getDataDirectory()} */ public static Fi dataDirectory; /** data subdirectory used for screenshots */ @@ -163,12 +168,12 @@ public class Vars implements Loadable{ public static GlobalData data; public static EntityCollisions collisions; public static DefaultWaves defaultWaves; - public static LoopControl loops; + public static mindustry.audio.LoopControl loops; public static Platform platform = new Platform(){}; public static Mods mods; public static Schematics schematics; public static BeControl becontrol; - public static AsyncLogic asyncLogic; + public static AsyncCore asyncCore; public static TeamIndexProcess teamIndex; public static Universe universe; @@ -237,7 +242,7 @@ public class Vars implements Loadable{ world = new World(); universe = new Universe(); becontrol = new BeControl(); - asyncLogic = new AsyncLogic(); + asyncCore = new AsyncCore(); maps = new Maps(); spawner = new WaveSpawner(); diff --git a/core/src/mindustry/ai/BlockIndexer.java b/core/src/mindustry/ai/BlockIndexer.java index 7ad4e36c6f..efb3cd6ffb 100644 --- a/core/src/mindustry/ai/BlockIndexer.java +++ b/core/src/mindustry/ai/BlockIndexer.java @@ -39,8 +39,10 @@ public class BlockIndexer{ private ObjectSet allOres = new ObjectSet<>(); /** Stores teams that are present here as tiles. */ private Array activeTeams = new Array<>(); - /** Maps teams to a map of flagged tiles by type. */ + /** Maps teams to a map of flagged tiles by flag. */ private TileArray[][] flagMap = new TileArray[Team.all().length][BlockFlag.all.length]; + /** Max units by team. */ + private int[] unitCaps = new int[Team.all().length]; /** Maps tile positions to their last known tile index data. */ private IntMap typeMap = new IntMap<>(); /** Empty set used for returning. */ @@ -55,6 +57,10 @@ public class BlockIndexer{ for(BlockFlag flag : index.flags){ getFlagged(index.team)[flag.ordinal()].remove(event.tile); } + + if(index.flags.contains(BlockFlag.unitModifier)){ + updateCap(index.team); + } } process(event.tile); updateQuadrant(event.tile); @@ -65,6 +71,7 @@ public class BlockIndexer{ scanOres.addAll(Item.getAllOres()); damagedTiles = new TileArray[Team.all().length]; flagMap = new TileArray[Team.all().length][BlockFlag.all.length]; + unitCaps = new int[Team.all().length]; for(int i = 0; i < flagMap.length; i++){ for(int j = 0; j < BlockFlag.all.length; j++){ @@ -296,8 +303,21 @@ public class BlockIndexer{ return null; } + /** @return extra unit cap of a team. This is added onto the base value. */ + public int getExtraUnits(Team team){ + return unitCaps[team.id]; + } + + private void updateCap(Team team){ + TileArray capped = getFlagged(team)[BlockFlag.unitModifier.ordinal()]; + unitCaps[team.id] = 0; + for(Tile capper : capped){ + unitCaps[team.id] += capper.block().unitCapModifier; + } + } + private void process(Tile tile){ - if(tile.block().flags.size() > 0 && tile.team() != Team.derelict){ + if(tile.block().flags.size() > 0 && tile.team() != Team.derelict && tile.isCenter()){ TileArray[] map = getFlagged(tile.team()); for(BlockFlag flag : tile.block().flags){ @@ -308,8 +328,14 @@ public class BlockIndexer{ map[flag.ordinal()] = arr; } + + if(tile.block().flags.contains(BlockFlag.unitModifier)){ + updateCap(tile.team()); + } + typeMap.put(tile.pos(), new TileIndex(tile.block().flags, tile.team())); } + if(!activeTeams.contains(tile.team())){ activeTeams.add(tile.team()); } diff --git a/core/src/mindustry/ai/types/FormationAI.java b/core/src/mindustry/ai/types/FormationAI.java index 3ee744da56..b2096ac315 100644 --- a/core/src/mindustry/ai/types/FormationAI.java +++ b/core/src/mindustry/ai/types/FormationAI.java @@ -35,7 +35,7 @@ public class FormationAI extends AIController implements FormationMember{ } } - unit.moveAt(vec.set(target).sub(unit).limit2(unit.type().speed)); + unit.moveAt(vec.set(target).sub(unit).limit(unit.type().speed)); } @Override diff --git a/core/src/mindustry/async/AsyncLogic.java b/core/src/mindustry/async/AsyncCore.java similarity index 97% rename from core/src/mindustry/async/AsyncLogic.java rename to core/src/mindustry/async/AsyncCore.java index e27a9c8012..923c46bfb0 100644 --- a/core/src/mindustry/async/AsyncLogic.java +++ b/core/src/mindustry/async/AsyncCore.java @@ -9,7 +9,7 @@ import java.util.concurrent.*; import static mindustry.Vars.state; -public class AsyncLogic{ +public class AsyncCore{ //all processes to be executed each frame private final Array processes = Array.with( new PhysicsProcess(), @@ -26,7 +26,7 @@ public class AsyncLogic{ return thread; }); - public AsyncLogic(){ + public AsyncCore(){ Events.on(WorldLoadEvent.class, e -> { complete(); for(AsyncProcess p : processes){ diff --git a/core/src/mindustry/async/TeamIndexProcess.java b/core/src/mindustry/async/TeamIndexProcess.java index 35dfd55907..2be6415659 100644 --- a/core/src/mindustry/async/TeamIndexProcess.java +++ b/core/src/mindustry/async/TeamIndexProcess.java @@ -11,6 +11,7 @@ import mindustry.gen.*; public class TeamIndexProcess implements AsyncProcess{ private QuadTree[] trees = new QuadTree[Team.all().length]; private Array active = new Array<>(); + private int[] counts = new int[Team.all().length]; public QuadTree tree(Team team){ if(trees[team.uid] == null) trees[team.uid] = new QuadTree<>(Vars.world.getQuadBounds(new Rect())); @@ -18,9 +19,18 @@ public class TeamIndexProcess implements AsyncProcess{ return trees[team.uid]; } + public int count(Team team){ + return counts[team.id]; + } + + public void updateCount(Team team, int amount){ + counts[team.id] += amount; + } + @Override public void reset(){ active.clear(); + counts = new int[Team.all().length]; trees = new QuadTree[Team.all().length]; } @@ -38,8 +48,13 @@ public class TeamIndexProcess implements AsyncProcess{ } } + for(Team team : active){ + counts[team.id] = 0; + } + for(Unitc unit : Groups.unit){ tree(unit.team()).insert(unit); + counts[unit.team().id] ++; } } diff --git a/core/src/mindustry/game/LoopControl.java b/core/src/mindustry/audio/LoopControl.java similarity index 98% rename from core/src/mindustry/game/LoopControl.java rename to core/src/mindustry/audio/LoopControl.java index 8e0a9f1801..021549e463 100644 --- a/core/src/mindustry/game/LoopControl.java +++ b/core/src/mindustry/audio/LoopControl.java @@ -1,4 +1,4 @@ -package mindustry.game; +package mindustry.audio; import arc.*; import arc.audio.*; diff --git a/core/src/mindustry/game/MusicControl.java b/core/src/mindustry/audio/MusicControl.java similarity index 99% rename from core/src/mindustry/game/MusicControl.java rename to core/src/mindustry/audio/MusicControl.java index 16a619c158..cf49975931 100644 --- a/core/src/mindustry/game/MusicControl.java +++ b/core/src/mindustry/audio/MusicControl.java @@ -1,4 +1,4 @@ -package mindustry.game; +package mindustry.audio; import arc.*; import arc.audio.*; diff --git a/core/src/mindustry/game/SoundLoop.java b/core/src/mindustry/audio/SoundLoop.java similarity index 98% rename from core/src/mindustry/game/SoundLoop.java rename to core/src/mindustry/audio/SoundLoop.java index 444ce0c857..cfdf380753 100644 --- a/core/src/mindustry/game/SoundLoop.java +++ b/core/src/mindustry/audio/SoundLoop.java @@ -1,4 +1,4 @@ -package mindustry.game; +package mindustry.audio; import arc.audio.*; import arc.math.*; diff --git a/core/src/mindustry/content/Blocks.java b/core/src/mindustry/content/Blocks.java index 88dde90936..895def33f2 100644 --- a/core/src/mindustry/content/Blocks.java +++ b/core/src/mindustry/content/Blocks.java @@ -21,11 +21,11 @@ import mindustry.world.blocks.environment.*; import mindustry.world.blocks.experimental.*; import mindustry.world.blocks.legacy.*; import mindustry.world.blocks.liquid.*; -import mindustry.world.blocks.logic.*; import mindustry.world.blocks.power.*; import mindustry.world.blocks.production.*; import mindustry.world.blocks.sandbox.*; import mindustry.world.blocks.storage.*; +import mindustry.world.blocks.storage.MessageBlock; import mindustry.world.blocks.units.*; import mindustry.world.consumers.*; import mindustry.world.meta.*; diff --git a/core/src/mindustry/content/Bullets.java b/core/src/mindustry/content/Bullets.java index a23cfa2975..01bacd44a5 100644 --- a/core/src/mindustry/content/Bullets.java +++ b/core/src/mindustry/content/Bullets.java @@ -117,7 +117,7 @@ public class Bullets implements ContentList{ frontColor = Pal.missileYellow; }}; - artilleryUnit = new ArtilleryBulletType(2f, 0, "shell"){{ + artilleryUnit = new ArtilleryBulletType(2f, 8, "shell"){{ hitEffect = Fx.blastExplosion; knockback = 0.8f; lifetime = 90f; diff --git a/core/src/mindustry/content/Weathers.java b/core/src/mindustry/content/Weathers.java index e7c13e9e1a..d0b2a137d8 100644 --- a/core/src/mindustry/content/Weathers.java +++ b/core/src/mindustry/content/Weathers.java @@ -8,6 +8,7 @@ import arc.util.*; import mindustry.ctype.*; import mindustry.gen.*; import mindustry.type.*; +import mindustry.world.*; import static mindustry.Vars.*; @@ -30,7 +31,7 @@ public class Weathers implements ContentList{ } @Override - public void draw(Weatherc state){ + public void drawOver(Weatherc state){ rand.setSeed(0); Tmp.r1.setCentered(Core.camera.position.x, Core.camera.position.y, Core.graphics.getWidth() / renderer.minScale(), Core.graphics.getHeight() / renderer.minScale()); Tmp.r1.grow(padding); @@ -61,11 +62,20 @@ public class Weathers implements ContentList{ }; rain = new Weather("rain"){ - float yspeed = 7f, xspeed = 2f, padding = 16f, size = 40f, density = 1000f; + float yspeed = 7f, xspeed = 2f, padding = 16f, size = 40f, density = 1200f; + TextureRegion[] splashes = new TextureRegion[12]; @Override - public void draw(Weatherc state){ - rand.setSeed(0); + public void load(){ + super.load(); + + for(int i = 0; i < splashes.length; i++){ + splashes[i] = Core.atlas.find("splash-" + i); + } + } + + @Override + public void drawOver(Weatherc state){ Tmp.r1.setCentered(Core.camera.position.x, Core.camera.position.y, Core.graphics.getWidth() / renderer.minScale(), Core.graphics.getHeight() / renderer.minScale()); Tmp.r1.grow(padding); Core.camera.bounds(Tmp.r2); @@ -95,6 +105,43 @@ public class Weathers implements ContentList{ } } } + + @Override + public void drawUnder(Weatherc state){ + Tmp.r1.setCentered(Core.camera.position.x, Core.camera.position.y, Core.graphics.getWidth() / renderer.minScale(), Core.graphics.getHeight() / renderer.minScale()); + Tmp.r1.grow(padding); + Core.camera.bounds(Tmp.r2); + int total = (int)(Tmp.r1.area() / density * state.intensity()) / 2; + + float t = Time.time() / 22f; + + for(int i = 0; i < total; i++){ + float offset = rand.random(0f, 1f); + float time = t + offset; + + int pos = (int)((time)); + float life = time % 1f; + float x = (rand.random(0f, world.unitWidth()) + pos*953); + float y = (rand.random(0f, world.unitHeight()) - pos*453); + + x -= Tmp.r1.x; + y -= Tmp.r1.y; + x = Mathf.mod(x, Tmp.r1.width); + y = Mathf.mod(y, Tmp.r1.height); + x += Tmp.r1.x; + y += Tmp.r1.y; + + if(Tmp.r3.setCentered(x, y, life * 4f).overlaps(Tmp.r2)){ + Tile tile = world.tileWorld(x, y); + if(tile != null && tile.floor().liquidDrop == Liquids.water){ + Draw.tint(Tmp.c1.set(tile.floor().mapColor).mul(1.5f)); + Draw.rect(splashes[(int)(life * (splashes.length - 1))], x, y); + //Lines.stroke((1f - life) * 2f); + //Lines.circle(x, y, life * 4f); + } + } + } + } }; } } diff --git a/core/src/mindustry/core/Control.java b/core/src/mindustry/core/Control.java index 65698bff5a..4b53e7c8e7 100644 --- a/core/src/mindustry/core/Control.java +++ b/core/src/mindustry/core/Control.java @@ -9,6 +9,7 @@ import arc.math.*; import arc.scene.ui.*; import arc.struct.*; import arc.util.*; +import mindustry.audio.MusicControl; import mindustry.content.*; import mindustry.core.GameState.*; import mindustry.entities.*; @@ -39,7 +40,7 @@ import static mindustry.Vars.*; */ public class Control implements ApplicationListener, Loadable{ public Saves saves; - public MusicControl music; + public mindustry.audio.MusicControl music; public Tutorial tutorial; public InputHandler input; @@ -263,9 +264,7 @@ public class Control implements ApplicationListener, Loadable{ ui.loadAnd(() -> { ui.planet.hide(); SaveSlot slot = sector.save; - //TODO comment for new sector states - //slot = null; - if(slot != null){ + if(slot != null && !clearSectors){ try{ net.reset(); slot.load(); diff --git a/core/src/mindustry/core/GameState.java b/core/src/mindustry/core/GameState.java index 82c7d5142f..d715ce653d 100644 --- a/core/src/mindustry/core/GameState.java +++ b/core/src/mindustry/core/GameState.java @@ -41,7 +41,7 @@ public class GameState{ /** Note that being in a campaign does not necessarily mean having a sector. */ public boolean isCampaign(){ - return rules.sector != null || rules.region != null; + return rules.sector != null; } public boolean hasSector(){ diff --git a/core/src/mindustry/core/Logic.java b/core/src/mindustry/core/Logic.java index 55ef78647e..3dadc5e81e 100644 --- a/core/src/mindustry/core/Logic.java +++ b/core/src/mindustry/core/Logic.java @@ -142,31 +142,43 @@ public class Logic implements ApplicationListener{ } private void checkGameOver(){ - if(!state.rules.attackMode && state.teams.playerCores().size == 0 && !state.gameOver){ - state.gameOver = true; - Events.fire(new GameOverEvent(state.rules.waveTeam)); - }else if(state.rules.attackMode){ - Team alive = null; - - for(TeamData team : state.teams.getActive()){ - if(team.hasCore()){ - if(alive != null){ - return; - } - alive = team.team; - } + //campaign maps do not have a 'win' state! + if(state.isCampaign()){ + //gameover only when cores are dead + if(!state.rules.attackMode && state.teams.playerCores().size == 0 && !state.gameOver){ + state.gameOver = true; + Events.fire(new GameOverEvent(state.rules.waveTeam)); } - if(alive != null && !state.gameOver){ - if(state.isCampaign() && alive == state.rules.defaultTeam){ - //in attack maps, a victorious game over is equivalent to a launch - Call.launchZone(); - }else{ - Events.fire(new GameOverEvent(alive)); - } + //check if there are no enemy spawns + if(state.rules.waves && spawner.countSpawns() + state.teams.cores(state.rules.waveTeam).size <= 0){ + //if yes, waves get disabled + state.rules.waves = false; + } + }else{ + if(!state.rules.attackMode && state.teams.playerCores().size == 0 && !state.gameOver){ state.gameOver = true; + Events.fire(new GameOverEvent(state.rules.waveTeam)); + }else if(state.rules.attackMode){ + Team alive = null; + + for(TeamData team : state.teams.getActive()){ + if(team.hasCore()){ + if(alive != null){ + return; + } + alive = team.team; + } + } + + if(alive != null && !state.gameOver){ + Events.fire(new GameOverEvent(alive)); + state.gameOver = true; + } } } + + } private void updateWeather(){ diff --git a/core/src/mindustry/core/NetServer.java b/core/src/mindustry/core/NetServer.java index 986b345cf1..7783dcfa2f 100644 --- a/core/src/mindustry/core/NetServer.java +++ b/core/src/mindustry/core/NetServer.java @@ -293,7 +293,10 @@ public class NetServer implements ApplicationListener{ }); clientCommands.register("t", "", "Send a message only to your teammates.", (args, player) -> { - Groups.player.each(p -> p.team() == player.team(), o -> o.sendMessage(args[0], player, "[#" + player.team().color.toString() + "]" + NetClient.colorizeName(player.id(), player.name()))); + String message = admins.filterMessage(player, args[0]); + if(message != null){ + Groups.player.each(p -> p.team() == player.team(), o -> o.sendMessage(message, player, "[#" + player.team().color.toString() + "]" + NetClient.colorizeName(player.id(), player.name()))); + } }); //duration of a a kick in seconds diff --git a/core/src/mindustry/entities/Units.java b/core/src/mindustry/entities/Units.java index fc6d297390..85221e1741 100644 --- a/core/src/mindustry/entities/Units.java +++ b/core/src/mindustry/entities/Units.java @@ -15,6 +15,15 @@ public class Units{ private static float cdist; private static boolean boolResult; + /** @return whether a new instance of a unit of this team can be created. */ + public static boolean canCreate(Team team){ + return teamIndex.count(team) < getCap(team); + } + + public static int getCap(Team team){ + return state.rules.unitCap + indexer.getExtraUnits(team); + } + /** @return whether this player can interact with a specific tile. if either of these are null, returns true.*/ public static boolean canInteract(Playerc player, Tilec tile){ return player == null || tile == null || tile.interactable(player.team()); diff --git a/core/src/mindustry/entities/def/CommanderComp.java b/core/src/mindustry/entities/def/CommanderComp.java index 60e65980ce..2fa10cad4c 100644 --- a/core/src/mindustry/entities/def/CommanderComp.java +++ b/core/src/mindustry/entities/def/CommanderComp.java @@ -2,7 +2,6 @@ package mindustry.entities.def; import arc.struct.*; import arc.util.ArcAnnotate.*; -import arc.util.*; import mindustry.ai.formations.*; import mindustry.ai.types.*; import mindustry.annotations.Annotations.*; @@ -57,9 +56,6 @@ abstract class CommanderComp implements Unitc{ members.add((FormationAI)u.controller()); } - Log.info(members); - Log.info(members.size); - //TODO doesn't handle units that don't fit a formation formation.addMembers(members); diff --git a/core/src/mindustry/entities/def/TileComp.java b/core/src/mindustry/entities/def/TileComp.java index b1ded3f0ee..86db58b602 100644 --- a/core/src/mindustry/entities/def/TileComp.java +++ b/core/src/mindustry/entities/def/TileComp.java @@ -15,6 +15,7 @@ import arc.util.*; import arc.util.ArcAnnotate.*; import arc.util.io.*; import mindustry.annotations.Annotations.*; +import mindustry.audio.SoundLoop; import mindustry.content.*; import mindustry.ctype.*; import mindustry.entities.*; @@ -59,7 +60,7 @@ abstract class TileComp implements Posc, Teamc, Healthc, Tilec, Timerc, QuadTree private transient float timeScale = 1f, timeScaleDuration; - private transient @Nullable SoundLoop sound; + private transient @Nullable mindustry.audio.SoundLoop sound; private transient boolean sleeping; private transient float sleepTime; @@ -184,27 +185,8 @@ abstract class TileComp implements Posc, Teamc, Healthc, Tilec, Timerc, QuadTree return relativeTo(tile.x, tile.y); } - /** Return relative rotation to a coordinate. Returns -1 if the coordinate is not near this tile. */ public byte relativeTo(int cx, int cy){ - int x = tile.x, y = tile.y; - if(x == cx && y == cy - 1) return 1; - if(x == cx && y == cy + 1) return 3; - if(x == cx - 1 && y == cy) return 0; - if(x == cx + 1 && y == cy) return 2; - return -1; - } - - public byte absoluteRelativeTo(int cx, int cy){ - int x = tile.x, y = tile.y; - if(Math.abs(x - cx) > Math.abs(y - cy)){ - if(x <= cx - 1) return 0; - if(x >= cx + 1) return 2; - }else{ - if(y <= cy - 1) return 1; - if(y >= cy + 1) return 3; - } - - return -1; + return tile.absoluteRelativeTo(cx, cy); } public @Nullable Tilec front(){ diff --git a/core/src/mindustry/entities/def/UnitComp.java b/core/src/mindustry/entities/def/UnitComp.java index 6378aca4cf..9979360736 100644 --- a/core/src/mindustry/entities/def/UnitComp.java +++ b/core/src/mindustry/entities/def/UnitComp.java @@ -115,6 +115,16 @@ abstract class UnitComp implements Healthc, Physicsc, Hitboxc, Statusc, Teamc, I type(this.type); } + @Override + public void add(){ + teamIndex.updateCount(team(), 1); + } + + @Override + public void remove(){ + teamIndex.updateCount(team(), -1); + } + @Override public void update(){ drag(type.drag * (isGrounded() ? (floorOn().dragMultiplier) : 1f)); diff --git a/core/src/mindustry/game/EventType.java b/core/src/mindustry/game/EventType.java index 03a40e9c13..64dfaca18d 100644 --- a/core/src/mindustry/game/EventType.java +++ b/core/src/mindustry/game/EventType.java @@ -90,9 +90,9 @@ public class EventType{ /** Called when a zone's requirements are met. */ public static class ZoneRequireCompleteEvent{ public final SectorPreset zoneMet, zoneForMet; - public final Objective objective; + public final Objectives.Objective objective; - public ZoneRequireCompleteEvent(SectorPreset zoneMet, SectorPreset zoneForMet, Objective objective){ + public ZoneRequireCompleteEvent(SectorPreset zoneMet, SectorPreset zoneForMet, Objectives.Objective objective){ this.zoneMet = zoneMet; this.zoneForMet = zoneForMet; this.objective = objective; diff --git a/core/src/mindustry/game/GlobalData.java b/core/src/mindustry/game/GlobalData.java index 88dc3ee0b4..15b6228ae2 100644 --- a/core/src/mindustry/game/GlobalData.java +++ b/core/src/mindustry/game/GlobalData.java @@ -1,9 +1,9 @@ package mindustry.game; import arc.*; -import arc.struct.*; import arc.files.*; -import arc.util.ArcAnnotate.*; +import arc.math.*; +import arc.struct.*; import arc.util.io.*; import mindustry.*; import mindustry.content.*; @@ -21,7 +21,6 @@ public class GlobalData{ private ObjectMap> unlocked = new ObjectMap<>(); private ObjectIntMap items = new ObjectIntMap<>(); private Array satellites = new Array<>(); - private ObjectMap regions = new ObjectMap<>(); private boolean modified; public GlobalData(){ @@ -38,10 +37,6 @@ public class GlobalData{ }); } - public @Nullable MapRegion getRegion(String name){ - return regions.get(name); - } - public void exportData(Fi file) throws IOException{ Array files = new Array<>(); files.add(Core.settings.getSettingsFile()); @@ -98,8 +93,10 @@ public class GlobalData{ items.getAndIncrement(item, 0, amount); state.stats.itemsDelivered.getAndIncrement(item, 0, amount); + //clamp to capacity + items.put(item, Mathf.clamp(items.get(item), 0, getItemCapacity())); + //clamp overflow - if(items.get(item, 0) < 0) items.put(item, Integer.MAX_VALUE); if(state.stats.itemsDelivered.get(item, 0) < 0) state.stats.itemsDelivered.put(item, Integer.MAX_VALUE); } @@ -139,6 +136,11 @@ public class GlobalData{ return items; } + //TODO: make it upgradeable + public int getItemCapacity(){ + return 10000; + } + /** Returns whether or not this piece of content is unlocked yet. */ public boolean isUnlocked(UnlockableContent content){ return content.alwaysUnlocked() || unlocked.getOr(content.getContentType(), ObjectSet::new).contains(content.name); diff --git a/core/src/mindustry/game/MapRegion.java b/core/src/mindustry/game/MapRegion.java deleted file mode 100644 index 8a6908b216..0000000000 --- a/core/src/mindustry/game/MapRegion.java +++ /dev/null @@ -1,12 +0,0 @@ -package mindustry.game; - -/** Defines a special map that can be visited, loaded, and saved. */ -public abstract class MapRegion{ - - /** Name of the region. Used for lookup and save names. */ - public abstract String name(); - - public void load(){ - - } -} diff --git a/core/src/mindustry/game/Objective.java b/core/src/mindustry/game/Objective.java deleted file mode 100644 index 14436e4171..0000000000 --- a/core/src/mindustry/game/Objective.java +++ /dev/null @@ -1,27 +0,0 @@ -package mindustry.game; - -import arc.scene.ui.layout.*; -import arc.util.ArcAnnotate.*; -import mindustry.game.Objectives.*; -import mindustry.type.*; - -/** Defines a specific objective for a game. */ -public interface Objective{ - - /** @return whether this objective is met. */ - boolean complete(); - - /** @return the string displayed when this objective is completed, in imperative form. - * e.g. when the objective is 'complete 10 waves', this would display "complete 10 waves". - * If this objective should not be displayed, should return null.*/ - @Nullable String display(); - - /** Build a display for this zone requirement.*/ - default void build(Table table){ - - } - - default SectorPreset zone(){ - return this instanceof ZoneObjective ? ((ZoneObjective)this).zone : null; - } -} diff --git a/core/src/mindustry/game/Objectives.java b/core/src/mindustry/game/Objectives.java index 590a277c5c..aba23a8c21 100644 --- a/core/src/mindustry/game/Objectives.java +++ b/core/src/mindustry/game/Objectives.java @@ -1,6 +1,7 @@ package mindustry.game; import arc.*; +import arc.scene.ui.layout.*; import arc.util.ArcAnnotate.*; import mindustry.type.*; import mindustry.world.*; @@ -93,4 +94,25 @@ public class Objectives{ public abstract static class ZoneObjective implements Objective{ public @NonNull SectorPreset zone; } + + /** Defines a specific objective for a game. */ + public static interface Objective{ + + /** @return whether this objective is met. */ + boolean complete(); + + /** @return the string displayed when this objective is completed, in imperative form. + * e.g. when the objective is 'complete 10 waves', this would display "complete 10 waves". + * If this objective should not be displayed, should return null.*/ + @Nullable String display(); + + /** Build a display for this zone requirement.*/ + default void build(Table table){ + + } + + default SectorPreset zone(){ + return this instanceof ZoneObjective ? ((ZoneObjective)this).zone : null; + } + } } diff --git a/core/src/mindustry/game/Rules.java b/core/src/mindustry/game/Rules.java index d00759cbd8..19fb57e631 100644 --- a/core/src/mindustry/game/Rules.java +++ b/core/src/mindustry/game/Rules.java @@ -58,10 +58,10 @@ public class Rules{ public float bossWaveMultiplier = 3f; /** How many times longer a launch wave takes. */ public float launchWaveMultiplier = 2f; + /** Base unit cap. Can still be increased by blocks. */ + public int unitCap = 0; /** Sector for saves that have them.*/ public @Nullable Sector sector; - /** Region that save is on. Indicates campaign. TODO not implemented. */ - public @Nullable MapRegion region; /** Spawn layout. */ public Array spawns = new Array<>(); /** Determines if there should be limited respawns. */ diff --git a/core/src/mindustry/game/Schematic.java b/core/src/mindustry/game/Schematic.java index 9e798af72b..eeeda0fbd7 100644 --- a/core/src/mindustry/game/Schematic.java +++ b/core/src/mindustry/game/Schematic.java @@ -16,8 +16,7 @@ public class Schematic implements Publishable, Comparable{ public final Array tiles; public StringMap tags; public int width, height; - public @Nullable - Fi file; + public @Nullable Fi file; /** Associated mod. If null, no mod is associated with this schematic. */ public @Nullable LoadedMod mod; diff --git a/core/src/mindustry/game/Schematics.java b/core/src/mindustry/game/Schematics.java index 43d9d96e35..7c1374dad0 100644 --- a/core/src/mindustry/game/Schematics.java +++ b/core/src/mindustry/game/Schematics.java @@ -30,7 +30,6 @@ import mindustry.world.blocks.power.*; import mindustry.world.blocks.production.*; import mindustry.world.blocks.sandbox.*; import mindustry.world.blocks.storage.*; -import mindustry.world.blocks.units.*; import java.io.*; import java.util.zip.*; @@ -487,7 +486,7 @@ public class Schematics implements Loadable{ //write each tile for(Stile tile : schematic.tiles){ stream.writeByte(blocks.orderedItems().indexOf(tile.block)); - stream.writeInt(Point2.pack((int)tile.x, (int)tile.y)); + stream.writeInt(Point2.pack(tile.x, tile.y)); TypeIO.writeObject(Writes.get(stream), tile.config); stream.writeByte(tile.rotation); } @@ -499,7 +498,7 @@ public class Schematics implements Loadable{ if(block instanceof Sorter || block instanceof Unloader || block instanceof ItemSource) return content.item(value); if(block instanceof LiquidSource) return content.liquid(value); if(block instanceof MassDriver || block instanceof ItemBridge) return Point2.unpack(value).sub(Point2.x(position), Point2.y(position)); - if(block instanceof LightBlock || block instanceof CommandCenter) return value; + if(block instanceof LightBlock) return value; return null; } diff --git a/core/src/mindustry/game/Turns.java b/core/src/mindustry/game/Turns.java new file mode 100644 index 0000000000..1e252bb2df --- /dev/null +++ b/core/src/mindustry/game/Turns.java @@ -0,0 +1,4 @@ +package mindustry.game; + +public class Turns{ +} diff --git a/core/src/mindustry/game/Universe.java b/core/src/mindustry/game/Universe.java index 0cdec7b616..430493087d 100644 --- a/core/src/mindustry/game/Universe.java +++ b/core/src/mindustry/game/Universe.java @@ -69,8 +69,7 @@ public class Universe{ } private void save(){ - Core.settings.put("utime", seconds); - Core.settings.save(); + Core.settings.putSave("utime", seconds); } private void load(){ diff --git a/core/src/mindustry/graphics/LightRenderer.java b/core/src/mindustry/graphics/LightRenderer.java index 723e58f8b8..f36f3d35a4 100644 --- a/core/src/mindustry/graphics/LightRenderer.java +++ b/core/src/mindustry/graphics/LightRenderer.java @@ -1,19 +1,19 @@ package mindustry.graphics; import arc.*; -import arc.struct.*; import arc.graphics.*; import arc.graphics.g2d.*; import arc.graphics.gl.*; import arc.math.*; import arc.math.geom.*; +import arc.struct.*; import arc.util.*; +import mindustry.*; import static mindustry.Vars.state; /** Renders overlay lights. Client only. */ public class LightRenderer{ - public static boolean enable = true; private static final int scaling = 4; private float[] vertices = new float[24]; @@ -175,7 +175,7 @@ public class LightRenderer{ } public void draw(){ - if(!enable){ + if(!Vars.enableLight){ lights.clear(); return; } diff --git a/core/src/mindustry/input/Binding.java b/core/src/mindustry/input/Binding.java index 2231f6ccfa..cb66af4209 100644 --- a/core/src/mindustry/input/Binding.java +++ b/core/src/mindustry/input/Binding.java @@ -10,7 +10,7 @@ public enum Binding implements KeyBind{ move_x(new Axis(KeyCode.a, KeyCode.d), "general"), move_y(new Axis(KeyCode.s, KeyCode.w)), mouse_move(KeyCode.mouseBack), - dash(KeyCode.shiftLeft), + boost(KeyCode.shiftLeft), //TODO rename control(KeyCode.shiftLeft), select(KeyCode.mouseLeft), deselect(KeyCode.mouseRight), diff --git a/core/src/mindustry/input/DesktopInput.java b/core/src/mindustry/input/DesktopInput.java index cfb470e8c3..e122b911aa 100644 --- a/core/src/mindustry/input/DesktopInput.java +++ b/core/src/mindustry/input/DesktopInput.java @@ -132,30 +132,32 @@ public class DesktopInput extends InputHandler{ drawOverRequest(request); } - //draw things that may be placed soon - if(mode == placing && block != null){ - for(int i = 0; i < lineRequests.size; i++){ - BuildRequest req = lineRequests.get(i); - if(i == lineRequests.size - 1 && req.block.rotate){ - drawArrow(block, req.x, req.y, req.rotation); + if(player.isBuilder()){ + //draw things that may be placed soon + if(mode == placing && block != null){ + for(int i = 0; i < lineRequests.size; i++){ + BuildRequest req = lineRequests.get(i); + if(i == lineRequests.size - 1 && req.block.rotate){ + drawArrow(block, req.x, req.y, req.rotation); + } + drawRequest(lineRequests.get(i)); } - drawRequest(lineRequests.get(i)); - } - }else if(isPlacing()){ - if(block.rotate){ - drawArrow(block, cursorX, cursorY, rotation); - } - Draw.color(); - drawRequest(cursorX, cursorY, block, rotation); - block.drawPlace(cursorX, cursorY, rotation, validPlace(cursorX, cursorY, block, rotation)); + }else if(isPlacing()){ + if(block.rotate){ + drawArrow(block, cursorX, cursorY, rotation); + } + Draw.color(); + drawRequest(cursorX, cursorY, block, rotation); + block.drawPlace(cursorX, cursorY, rotation, validPlace(cursorX, cursorY, block, rotation)); - if(block.saveConfig && block.lastConfig != null){ - brequest.set(cursorX, cursorY, rotation, block); - brequest.config = block.lastConfig; + if(block.saveConfig && block.lastConfig != null){ + brequest.set(cursorX, cursorY, rotation, block); + brequest.config = block.lastConfig; + block.drawRequestConfig(brequest, allRequests()); + brequest.config = null; + } - block.drawRequestConfig(brequest, allRequests()); } - } Draw.reset(); @@ -172,7 +174,7 @@ public class DesktopInput extends InputHandler{ if((player.dead() || state.isPaused()) && !ui.chatfrag.shown()){ if(!(scene.getKeyboardFocus() instanceof TextField)){ //move camera around - float camSpeed = !Core.input.keyDown(Binding.dash) ? 3f : 8f; + float camSpeed = !Core.input.keyDown(Binding.boost) ? 3f : 8f; Core.camera.position.add(Tmp.v1.setZero().add(Core.input.axis(Binding.move_x), Core.input.axis(Binding.move_y)).nor().scl(Time.delta() * camSpeed)); if(Core.input.keyDown(Binding.mouse_move)){ @@ -254,7 +256,7 @@ public class DesktopInput extends InputHandler{ isShooting = false; } - if(isPlacing()){ + if(isPlacing() && player.isBuilder()){ cursorType = SystemCursor.hand; selectScale = Mathf.lerpDelta(selectScale, 1f, 0.2f); }else{ @@ -463,7 +465,7 @@ public class DesktopInput extends InputHandler{ }else if(Core.input.keyTap(Binding.deselect) && !selectRequests.isEmpty()){ selectRequests.clear(); lastSchematic = null; - }else if(Core.input.keyTap(Binding.break_block) && !Core.scene.hasMouse()){ + }else if(Core.input.keyTap(Binding.break_block) && !Core.scene.hasMouse() && player.isBuilder()){ //is recalculated because setting the mode to breaking removes potential multiblock cursor offset deleting = false; mode = breaking; diff --git a/core/src/mindustry/input/InputHandler.java b/core/src/mindustry/input/InputHandler.java index cedc02046c..d25ee14842 100644 --- a/core/src/mindustry/input/InputHandler.java +++ b/core/src/mindustry/input/InputHandler.java @@ -508,7 +508,7 @@ public abstract class InputHandler implements InputProcessor, GestureListener{ protected void drawRequest(BuildRequest request){ request.block.drawRequest(request, allRequests(), validPlace(request.x, request.y, request.block, request.rotation)); - if(request.block.saveConfig && request.block.lastConfig != null){ + if(request.block.saveConfig && request.block.lastConfig != null && !request.hasConfig){ Object conf = request.config; request.config = request.block.lastConfig; request.block.drawRequestConfig(request, allRequests()); diff --git a/core/src/mindustry/maps/generators/BaseGenerator.java b/core/src/mindustry/maps/generators/BaseGenerator.java new file mode 100644 index 0000000000..278167baf4 --- /dev/null +++ b/core/src/mindustry/maps/generators/BaseGenerator.java @@ -0,0 +1,20 @@ +package mindustry.maps.generators; + +import arc.struct.*; +import mindustry.content.*; +import mindustry.game.*; +import mindustry.type.*; +import mindustry.world.*; + +public class BaseGenerator{ + + public void generate(Tiles tiles, Array cores, Tile spawn, Team team, Sector sector){ + + for(Tile tile : cores){ + tile.clearOverlay(); + tile.setBlock(Blocks.coreShard, team); + } + + + } +} diff --git a/core/src/mindustry/maps/planet/TODOPlanetGenerator.java b/core/src/mindustry/maps/planet/TODOPlanetGenerator.java index 7198afee5f..ac5f1cb158 100644 --- a/core/src/mindustry/maps/planet/TODOPlanetGenerator.java +++ b/core/src/mindustry/maps/planet/TODOPlanetGenerator.java @@ -123,7 +123,7 @@ public class TODOPlanetGenerator extends PlanetGenerator{ float constraint = 1.3f; float radius = width / 2f / Mathf.sqrt3; - int rooms = rand.random(2, 5) - 1; + int rooms = rand.random(2, 5); Array array = new Array<>(); for(int i = 0; i < rooms; i++){ @@ -262,6 +262,12 @@ public class TODOPlanetGenerator extends PlanetGenerator{ Schematics.placeLoadout(Loadouts.advancedShard, spawn.x, spawn.y); + if(sector.hostility > 0.02f){ + new BaseGenerator().generate(tiles, enemies.map(r -> tiles.getn(r.x, r.y)), tiles.get(spawn.x, spawn.y), state.rules.waveTeam, sector); + + state.rules.attackMode = true; + } + state.rules.waves = true; } diff --git a/core/src/mindustry/mod/ContentParser.java b/core/src/mindustry/mod/ContentParser.java index 9c91f0fb24..79695a181e 100644 --- a/core/src/mindustry/mod/ContentParser.java +++ b/core/src/mindustry/mod/ContentParser.java @@ -86,10 +86,10 @@ public class ContentParser{ desc.errored = Throwable::printStackTrace; return sound; }); - put(Objective.class, (type, data) -> { - Class oc = data.has("type") ? resolve(data.getString("type"), "mindustry.game.Objectives") : ZoneWave.class; + put(Objectives.Objective.class, (type, data) -> { + Class oc = data.has("type") ? resolve(data.getString("type"), "mindustry.game.Objectives") : ZoneWave.class; data.remove("type"); - Objective obj = make(oc); + Objectives.Objective obj = make(oc); readFields(obj, data); return obj; }); diff --git a/core/src/mindustry/type/SectorPreset.java b/core/src/mindustry/type/SectorPreset.java index e21b5da566..80675a4aaa 100644 --- a/core/src/mindustry/type/SectorPreset.java +++ b/core/src/mindustry/type/SectorPreset.java @@ -17,9 +17,9 @@ import static mindustry.Vars.*; //TODO ? remove ? public class SectorPreset extends UnlockableContent{ public @NonNull WorldGenerator generator; - public @NonNull Objective configureObjective = new ZoneWave(this, 15); + public @NonNull Objectives.Objective configureObjective = new ZoneWave(this, 15); public @NonNull Planet planet; - public Array requirements = new Array<>(); + public Array requirements = new Array<>(); //TODO autogenerate public Array resources = new Array<>(); diff --git a/core/src/mindustry/type/Weather.java b/core/src/mindustry/type/Weather.java index 8952756e0d..cdcaad0733 100644 --- a/core/src/mindustry/type/Weather.java +++ b/core/src/mindustry/type/Weather.java @@ -16,8 +16,8 @@ public abstract class Weather extends MappableContent{ public float duration = 15f * Time.toMinutes; //internals - protected Rand rand = new Rand(); - protected Prov type = WeatherEntity::create; + public Rand rand = new Rand(); + public Prov type = WeatherEntity::create; public Weather(String name, Prov type){ super(name); @@ -58,7 +58,11 @@ public abstract class Weather extends MappableContent{ } - public void draw(Weatherc state){ + public void drawOver(Weatherc state){ + + } + + public void drawUnder(Weatherc state){ } @@ -105,7 +109,7 @@ public abstract class Weather extends MappableContent{ @EntityDef(value = {Weatherc.class}, pooled = true, isFinal = false) @Component - abstract class WeatherComp implements Drawc{ + abstract static class WeatherComp implements Drawc{ private static final float fadeTime = 60 * 4; Weather weather; @@ -132,8 +136,16 @@ public abstract class Weather extends MappableContent{ public void draw(){ if(renderer.weatherAlpha() > 0.0001f){ Draw.draw(Layer.weather, () -> { + weather.rand.setSeed(0); Draw.alpha(renderer.weatherAlpha() * opacity); - weather.draw((Weatherc)this); + weather.drawOver((Weatherc)this); + Draw.reset(); + }); + + Draw.draw(Layer.debris, () -> { + weather.rand.setSeed(0); + Draw.alpha(renderer.weatherAlpha() * opacity); + weather.drawUnder((Weatherc)this); Draw.reset(); }); } diff --git a/core/src/mindustry/ui/dialogs/PlanetDialog.java b/core/src/mindustry/ui/dialogs/PlanetDialog.java index 907b691496..afaa4f8295 100644 --- a/core/src/mindustry/ui/dialogs/PlanetDialog.java +++ b/core/src/mindustry/ui/dialogs/PlanetDialog.java @@ -80,7 +80,7 @@ public class PlanetDialog extends FloatingDialog{ float bmargin = 6f; //TODO names - buttons.button("$back", Icon.left, style, this::hide).margin(bmargin); + //buttons.button("$back", Icon.left, style, this::hide).margin(bmargin); //buttons.addImageTextButton("Tech", Icon.tree, style, () -> ui.tech.show()).margin(bmargin); //buttons.addImageTextButton("Launch", Icon.upOpen, style, this::hide).margin(bmargin); //buttons.addImageTextButton("Database", Icon.book, style, () -> ui.database.show()).margin(bmargin); @@ -273,7 +273,11 @@ public class PlanetDialog extends FloatingDialog{ } if(sec.hostility >= 0.02f){ - //drawSelection(sec, Color.scarlet, 0.11f * sec.hostility); + drawSelection(sec, Color.scarlet, 0.11f * sec.hostility, 0.0001f); + } + + if(sec.save != null){ + drawSelection(sec, Color.lime, 0.03f, 0.0009f); } } @@ -402,11 +406,11 @@ public class PlanetDialog extends FloatingDialog{ } private void drawSelection(Sector sector){ - drawSelection(sector, Pal.accent, 0.04f); + drawSelection(sector, Pal.accent, 0.04f, 0.001f); } - private void drawSelection(Sector sector, Color color, float length){ - float arad = outlineRad + 0.0001f; + private void drawSelection(Sector sector, Color color, float stroke, float length){ + float arad = outlineRad + length; for(int i = 0; i < sector.tile.corners.length; i++){ Corner next = sector.tile.corners[(i + 1) % sector.tile.corners.length]; @@ -416,8 +420,8 @@ public class PlanetDialog extends FloatingDialog{ curr.v.scl(arad); sector.tile.v.scl(arad); - Tmp.v31.set(curr.v).sub(sector.tile.v).setLength(curr.v.dst(sector.tile.v) - length).add(sector.tile.v); - Tmp.v32.set(next.v).sub(sector.tile.v).setLength(next.v.dst(sector.tile.v) - length).add(sector.tile.v); + Tmp.v31.set(curr.v).sub(sector.tile.v).setLength(curr.v.dst(sector.tile.v) - stroke).add(sector.tile.v); + Tmp.v32.set(next.v).sub(sector.tile.v).setLength(next.v.dst(sector.tile.v) - stroke).add(sector.tile.v); batch.tri(curr.v, next.v, Tmp.v31, color); batch.tri(Tmp.v31, next.v, Tmp.v32, color); diff --git a/core/src/mindustry/ui/dialogs/ZoneInfoDialog.java b/core/src/mindustry/ui/dialogs/ZoneInfoDialog.java index b5f0f1e79c..5483db1d67 100644 --- a/core/src/mindustry/ui/dialogs/ZoneInfoDialog.java +++ b/core/src/mindustry/ui/dialogs/ZoneInfoDialog.java @@ -63,13 +63,13 @@ public class ZoneInfoDialog extends FloatingDialog{ cont.table(req -> { req.defaults().left(); - Array zones = zone.requirements.select(o -> !(o instanceof Unlock)); + Array zones = zone.requirements.select(o -> !(o instanceof Unlock)); if(!zones.isEmpty()){ req.table(r -> { r.add("$complete").colspan(2).left(); r.row(); - for(Objective o : zones){ + for(Objectives.Objective o : zones){ r.image(Icon.terrain).padRight(4); r.add(o.display()).color(Color.lightGray); r.image(o.complete() ? Icon.ok : Icon.cancel, o.complete() ? Color.lightGray : Color.scarlet).padLeft(3); diff --git a/core/src/mindustry/ui/fragments/BlockInventoryFragment.java b/core/src/mindustry/ui/fragments/BlockInventoryFragment.java index 186ec46121..550ee6f972 100644 --- a/core/src/mindustry/ui/fragments/BlockInventoryFragment.java +++ b/core/src/mindustry/ui/fragments/BlockInventoryFragment.java @@ -11,6 +11,7 @@ import arc.scene.actions.*; import arc.scene.event.*; import arc.scene.ui.*; import arc.scene.ui.layout.*; +import arc.scene.ui.layout.Stack; import arc.struct.*; import arc.util.*; import mindustry.annotations.Annotations.*; @@ -22,6 +23,8 @@ import mindustry.net.*; import mindustry.type.*; import mindustry.ui.*; +import java.util.*; + import static mindustry.Vars.*; public class BlockInventoryFragment extends Fragment{ @@ -94,6 +97,9 @@ public class BlockInventoryFragment extends Fragment{ private void rebuild(boolean actions){ IntSet container = new IntSet(); + Arrays.fill(shrinkHoldTimes, 0); + holdTime = emptyTime = 0f; + table.clearChildren(); table.clearActions(); table.background(Tex.inventory); diff --git a/core/src/mindustry/world/Block.java b/core/src/mindustry/world/Block.java index 64432e779f..4ad376ed3c 100644 --- a/core/src/mindustry/world/Block.java +++ b/core/src/mindustry/world/Block.java @@ -106,6 +106,9 @@ public class Block extends UnlockableContent{ public EnumSet flags = EnumSet.of(); /** Targeting priority of this block, as seen by enemies.*/ public TargetPriority priority = TargetPriority.base; + /** How much this block affects the unit cap by. + * The block flags must contain unitModifier in order for this to work. */ + public int unitCapModifier = 0; /** Whether the block can be tapped and selected to configure. */ public boolean configurable; /** Whether this block consumes touchDown events when tapped. */ diff --git a/core/src/mindustry/world/Tile.java b/core/src/mindustry/world/Tile.java index c19322cbb7..01361687aa 100644 --- a/core/src/mindustry/world/Tile.java +++ b/core/src/mindustry/world/Tile.java @@ -80,18 +80,26 @@ public class Tile implements Position, QuadTreeObject{ } public byte absoluteRelativeTo(int cx, int cy){ - if(x == cx && y <= cy - 1) return 1; - if(x == cx && y >= cy + 1) return 3; - if(x <= cx - 1 && y == cy) return 0; - if(x >= cx + 1 && y == cy) return 2; - return -1; - } - public static byte absoluteRelativeTo(int x, int y, int cx, int cy){ - if(x == cx && y <= cy - 1) return 1; - if(x == cx && y >= cy + 1) return 3; - if(x <= cx - 1 && y == cy) return 0; - if(x >= cx + 1 && y == cy) return 2; + //very straightforward for odd sizes + if(block.size % 2 == 1){ + if(Math.abs(x - cx) > Math.abs(y - cy)){ + if(x <= cx - 1) return 0; + if(x >= cx + 1) return 2; + }else{ + if(y <= cy - 1) return 1; + if(y >= cy + 1) return 3; + } + }else{ //need offsets here + if(Math.abs(x - cx + 0.5f) > Math.abs(y - cy + 0.5f)){ + if(x+0.5f <= cx - 1) return 0; + if(x+0.5f >= cx + 1) return 2; + }else{ + if(y+0.5f <= cy - 1) return 1; + if(y+0.5f >= cy + 1) return 3; + } + } + return -1; } diff --git a/core/src/mindustry/world/blocks/distribution/ItemBridge.java b/core/src/mindustry/world/blocks/distribution/ItemBridge.java index 84ac3325e6..7ca39a2e37 100644 --- a/core/src/mindustry/world/blocks/distribution/ItemBridge.java +++ b/core/src/mindustry/world/blocks/distribution/ItemBridge.java @@ -237,7 +237,7 @@ public class ItemBridge extends Block{ float opacity = Core.settings.getInt("bridgeopacity") / 100f; if(Mathf.zero(opacity)) return; - int i = tile.absoluteRelativeTo(other.x, other.y); + int i = relativeTo(other.x, other.y); Draw.color(Color.white, Color.black, Mathf.absin(Time.time(), 6f, 0.07f)); Draw.alpha(Math.max(uptime, 0.25f) * opacity); @@ -275,8 +275,8 @@ public class ItemBridge extends Block{ Tile other = world.tile(link); if(linkValid(tile, other)){ - int rel = tile.absoluteRelativeTo(other.x, other.y); - int rel2 = tile.relativeTo(source.tileX(), source.tileY()); + int rel = relativeTo(other.x, other.y); + int rel2 = relativeTo(source.tileX(), source.tileY()); if(rel == rel2) return false; }else{ @@ -292,21 +292,21 @@ public class ItemBridge extends Block{ Tile other = world.tile(link); if(!linkValid(tile, other)){ Tile edge = Edges.getFacingEdge(to.tile(), tile); - int i = tile.absoluteRelativeTo(edge.x, edge.y); + int i = relativeTo(edge.x, edge.y); IntSetIterator it = incoming.iterator(); while(it.hasNext){ int v = it.next(); - if(tile.absoluteRelativeTo(Point2.x(v), Point2.y(v)) == i){ + if(relativeTo(Point2.x(v), Point2.y(v)) == i){ return false; } } return true; } - int rel = tile.absoluteRelativeTo(other.x, other.y); - int rel2 = tile.relativeTo(to.tileX(), to.tileY()); + int rel = relativeTo(other.x, other.y); + int rel2 = relativeTo(to.tileX(), to.tileY()); return rel != rel2; } @@ -318,8 +318,8 @@ public class ItemBridge extends Block{ Tile other = world.tile(link); if(linkValid(tile, other)){ - int rel = tile.absoluteRelativeTo(other.x, other.y); - int rel2 = tile.relativeTo(source.tileX(), source.tileY()); + int rel = relativeTo(other.x, other.y); + int rel2 = relativeTo(source.tileX(), source.tileY()); if(rel == rel2) return false; }else if(!(source.block() instanceof ItemBridge && ((ItemBridgeEntity)source).link == tile.pos())){ @@ -334,21 +334,21 @@ public class ItemBridge extends Block{ Tile other = world.tile(link); if(!linkValid(tile, other)){ Tile edge = Edges.getFacingEdge(to.tile(), tile); - int i = tile.absoluteRelativeTo(edge.x, edge.y); + int i = relativeTo(edge.x, edge.y); IntSetIterator it = incoming.iterator(); while(it.hasNext){ int v = it.next(); - if(tile.absoluteRelativeTo(Point2.x(v), Point2.y(v)) == i){ + if(relativeTo(Point2.x(v), Point2.y(v)) == i){ return false; } } return true; } - int rel = tile.absoluteRelativeTo(other.x, other.y); - int rel2 = tile.relativeTo(to.tileX(), to.tileY()); + int rel = relativeTo(other.x, other.y); + int rel2 = relativeTo(to.tileX(), to.tileY()); return rel != rel2; } diff --git a/core/src/mindustry/world/blocks/distribution/Junction.java b/core/src/mindustry/world/blocks/distribution/Junction.java index 6faa2fff8b..ba120e3097 100644 --- a/core/src/mindustry/world/blocks/distribution/Junction.java +++ b/core/src/mindustry/world/blocks/distribution/Junction.java @@ -63,13 +63,13 @@ public class Junction extends Block{ @Override public void handleItem(Tilec source, Item item){ - int relative = source.relativeTo(tile.x, tile.y); + int relative = source.relativeTo(tile); buffer.accept(relative, item); } @Override public boolean acceptItem(Tilec source, Item item){ - int relative = source.relativeTo(tile.x, tile.y); + int relative = source.relativeTo(tile); if(relative == -1 || !buffer.accepts(relative)) return false; Tilec to = nearby(relative); diff --git a/core/src/mindustry/world/blocks/distribution/Sorter.java b/core/src/mindustry/world/blocks/distribution/Sorter.java index 811e8983ec..62de4f8a1c 100644 --- a/core/src/mindustry/world/blocks/distribution/Sorter.java +++ b/core/src/mindustry/world/blocks/distribution/Sorter.java @@ -70,8 +70,6 @@ public class Sorter extends Block{ Draw.rect("center", x, y); Draw.color(); } - - } @Override @@ -94,7 +92,7 @@ public class Sorter extends Block{ } Tilec getTileTarget(Item item, Tilec source, boolean flip){ - int dir = source.absoluteRelativeTo(tile.x, tile.y); + int dir = source.relativeTo(tile.x, tile.y); if(dir == -1) return null; Tilec to; diff --git a/core/src/mindustry/world/blocks/experimental/LogicExecutor.java b/core/src/mindustry/world/blocks/experimental/LogicExecutor.java index e7e7add43b..eada670acf 100644 --- a/core/src/mindustry/world/blocks/experimental/LogicExecutor.java +++ b/core/src/mindustry/world/blocks/experimental/LogicExecutor.java @@ -1,11 +1,12 @@ package mindustry.world.blocks.experimental; -import arc.math.*; import mindustry.gen.*; +import java.nio.*; + public class LogicExecutor{ Instruction[] instructions; - int[] registers = new int[256]; + ByteBuffer memory = ByteBuffer.allocate(1024 * 512); int counter; void step(){ @@ -29,16 +30,16 @@ public class LogicExecutor{ class RegisterI implements Instruction{ /** operation to perform */ Op op; - /** destination register */ - short dest; - /** registers to take data from. -1 for no register. */ - short left, right; + /** destination memory */ + int dest; + /** memory to take data from. -1 for immediate values. */ + int left, right; /** left/right immediate values, only used if no registers are present. */ - int ileft, iright; + double ileft, iright; @Override public void exec(){ - registers[dest] = op.function.get(left == -1 ? ileft : registers[left], right == -1 ? iright : registers[right]); + //memory.putDouble(dest, op.function.get(left == -1 ? ileft : registers[left], right == -1 ? iright : registers[right])); } } @@ -54,7 +55,7 @@ public class LogicExecutor{ @Override public void exec(){ - registers[dest] = op.function.get(device(device), parameter); + //registers[dest] = op.function.get(device(device), parameter); } } @@ -89,12 +90,12 @@ public class LogicExecutor{ mul("*", (a, b) -> a * b), div("/", (a, b) -> a / b), mod("%", (a, b) -> a % b), - pow("^", Mathf::pow), - shl(">>", (a, b) -> a >> b), - shr("<<", (a, b) -> a << b), - or("or", (a, b) -> a | b), - and("and", (a, b) -> a & b), - xor("xor", (a, b) -> a ^ b); + pow("^", Math::pow), + shl(">>", (a, b) -> (int)a >> (int)b), + shr("<<", (a, b) -> (int)a << (int)b), + or("or", (a, b) -> (int)a | (int)b), + and("and", (a, b) -> (int)a & (int)b), + xor("xor", (a, b) -> (int)a ^ (int)b); final OpLambda function; final String symbol; @@ -105,7 +106,7 @@ public class LogicExecutor{ } interface OpLambda{ - int get(int a, int b); + double get(double a, double b); } } diff --git a/core/src/mindustry/world/blocks/liquid/Conduit.java b/core/src/mindustry/world/blocks/liquid/Conduit.java index 5b452eff6d..0e03ad83d9 100644 --- a/core/src/mindustry/world/blocks/liquid/Conduit.java +++ b/core/src/mindustry/world/blocks/liquid/Conduit.java @@ -106,7 +106,7 @@ public class Conduit extends LiquidBlock implements Autotiler{ public boolean acceptLiquid(Tilec source, Liquid liquid, float amount){ noSleep(); return liquids.get(liquid) + amount < liquidCapacity && (liquids.current() == liquid || liquids.currentAmount() < 0.2f) - && ((source.absoluteRelativeTo(tile.x, tile.y) + 2) % 4 != tile.rotation()); + && ((source.relativeTo(tile.x, tile.y) + 2) % 4 != tile.rotation()); } @Override diff --git a/core/src/mindustry/world/blocks/liquid/LiquidJunction.java b/core/src/mindustry/world/blocks/liquid/LiquidJunction.java index a67b883940..1a85be6af8 100644 --- a/core/src/mindustry/world/blocks/liquid/LiquidJunction.java +++ b/core/src/mindustry/world/blocks/liquid/LiquidJunction.java @@ -37,7 +37,7 @@ public class LiquidJunction extends LiquidBlock{ @Override public Tilec getLiquidDestination(Tilec source, Liquid liquid){ - int dir = source.absoluteRelativeTo(tile.x, tile.y); + int dir = source.relativeTo(tile.x, tile.y); dir = (dir + 4) % 4; Tilec next = nearby(dir); if(next == null || (!next.acceptLiquid(this, liquid, 0f) && !(next.block() instanceof LiquidJunction))){ diff --git a/core/src/mindustry/world/blocks/power/PowerNode.java b/core/src/mindustry/world/blocks/power/PowerNode.java index 924eafa069..97a874e6c5 100644 --- a/core/src/mindustry/world/blocks/power/PowerNode.java +++ b/core/src/mindustry/world/blocks/power/PowerNode.java @@ -132,10 +132,8 @@ public class PowerNode extends PowerBlock{ } protected void drawLaser(float x1, float y1, float x2, float y2, float satisfaction, int size1, int size2){ - int opacityPercentage = Core.settings.getInt("lasersopacity"); - if(opacityPercentage == 0) return; - - float opacity = opacityPercentage / 100f; + float opacity = Core.settings.getInt("lasersopacity") / 100f; + if(Mathf.zero(opacity)) return; float angle1 = Angles.angle(x1, y1, x2, y2); t1.trns(angle1, size1 * tilesize / 2f - 1.5f); diff --git a/core/src/mindustry/world/blocks/production/Pump.java b/core/src/mindustry/world/blocks/production/Pump.java index d03932cb1c..4d8c655ec3 100644 --- a/core/src/mindustry/world/blocks/production/Pump.java +++ b/core/src/mindustry/world/blocks/production/Pump.java @@ -3,7 +3,6 @@ package mindustry.world.blocks.production; import arc.*; import arc.graphics.*; import arc.graphics.g2d.*; -import mindustry.annotations.Annotations.*; import mindustry.type.*; import mindustry.ui.*; import mindustry.world.*; @@ -13,7 +12,6 @@ import mindustry.world.meta.*; import static mindustry.Vars.*; public class Pump extends LiquidBlock{ - public @Load("pump-liquid") TextureRegion liquidRegion; public final int timerContentCheck = timers++; /** Pump amount, total. */ diff --git a/core/src/mindustry/world/blocks/production/SolidPump.java b/core/src/mindustry/world/blocks/production/SolidPump.java index e7299d0e38..8aecc70d85 100644 --- a/core/src/mindustry/world/blocks/production/SolidPump.java +++ b/core/src/mindustry/world/blocks/production/SolidPump.java @@ -5,6 +5,7 @@ import arc.graphics.g2d.*; import arc.math.*; import arc.util.ArcAnnotate.*; import arc.util.*; +import mindustry.annotations.Annotations.*; import mindustry.content.*; import mindustry.entities.*; import mindustry.graphics.*; @@ -24,6 +25,8 @@ public class SolidPump extends Pump{ /** Attribute that is checked when calculating output. */ public @Nullable Attribute attribute; + public @Load("@-rotator") TextureRegion rotatorRegion; + public SolidPump(String name){ super(name); hasPower = true; @@ -94,8 +97,8 @@ public class SolidPump extends Pump{ Draw.alpha(liquids.total() / liquidCapacity); Draw.rect(liquidRegion, x, y); Draw.color(); - Draw.rect(name + "-rotator", x, y, pumpTime * rotateSpeed); - Draw.rect(name + "-top", x, y); + Draw.rect(rotatorRegion, x, y, pumpTime * rotateSpeed); + Draw.rect(topRegion, x, y); } @Override diff --git a/core/src/mindustry/world/blocks/storage/CoreBlock.java b/core/src/mindustry/world/blocks/storage/CoreBlock.java index bb338057cd..fce5726ea0 100644 --- a/core/src/mindustry/world/blocks/storage/CoreBlock.java +++ b/core/src/mindustry/world/blocks/storage/CoreBlock.java @@ -8,6 +8,7 @@ import arc.math.geom.*; import arc.struct.*; import mindustry.annotations.Annotations.*; import mindustry.content.*; +import mindustry.entities.*; import mindustry.game.EventType.*; import mindustry.gen.*; import mindustry.graphics.*; @@ -28,7 +29,8 @@ public class CoreBlock extends StorageBlock{ solid = true; update = true; hasItems = true; - flags = EnumSet.of(BlockFlag.core, BlockFlag.producer); + flags = EnumSet.of(BlockFlag.core, BlockFlag.producer, BlockFlag.unitModifier); + unitCapModifier = 10; activeSound = Sounds.respawning; activeSoundVolume = 1f; } @@ -59,6 +61,13 @@ public class CoreBlock extends StorageBlock{ () -> Pal.items, () -> e.items().total() / (float)(((CoreEntity)e).storageCapacity * content.items().count(i -> i.type == ItemType.material)) )); + + bars.add("units", e -> + new Bar( + () -> Core.bundle.format("bar.units", teamIndex.count(e.team()), Units.getCap(e.team())), + () -> Pal.power, + () -> (float)teamIndex.count(e.team()) / Units.getCap(e.team()) + )); } @Override diff --git a/core/src/mindustry/world/blocks/logic/MessageBlock.java b/core/src/mindustry/world/blocks/storage/MessageBlock.java similarity index 99% rename from core/src/mindustry/world/blocks/logic/MessageBlock.java rename to core/src/mindustry/world/blocks/storage/MessageBlock.java index d57f3fd9c2..9fe6535c2f 100644 --- a/core/src/mindustry/world/blocks/logic/MessageBlock.java +++ b/core/src/mindustry/world/blocks/storage/MessageBlock.java @@ -1,4 +1,4 @@ -package mindustry.world.blocks.logic; +package mindustry.world.blocks.storage; import arc.*; import arc.Input.*; diff --git a/core/src/mindustry/world/blocks/units/CommandCenter.java b/core/src/mindustry/world/blocks/units/CommandCenter.java deleted file mode 100644 index fa1c24ec86..0000000000 --- a/core/src/mindustry/world/blocks/units/CommandCenter.java +++ /dev/null @@ -1,134 +0,0 @@ -package mindustry.world.blocks.units; - -import arc.*; -import arc.graphics.*; -import arc.graphics.g2d.*; -import arc.scene.style.*; -import arc.scene.ui.*; -import arc.scene.ui.layout.*; -import arc.struct.*; -import arc.util.*; -import arc.util.io.*; -import mindustry.ai.BlockIndexer.*; -import mindustry.content.*; -import mindustry.entities.*; -import mindustry.entities.units.*; -import mindustry.game.EventType.*; -import mindustry.gen.*; -import mindustry.graphics.*; -import mindustry.ui.*; -import mindustry.world.*; -import mindustry.world.meta.*; - -import static mindustry.Vars.*; - -public class CommandCenter extends Block{ - protected TextureRegionDrawable[] commandRegions = new TextureRegionDrawable[UnitCommand.all.length]; - protected Color topColor = Pal.command; - protected Color bottomColor = Color.valueOf("5e5e5e"); - protected Effect effect = Fx.commandSend; - - public CommandCenter(String name){ - super(name); - - flags = EnumSet.of(BlockFlag.comandCenter); - destructible = true; - solid = true; - configurable = true; - config(Integer.class, (tile, value) -> { - UnitCommand command = UnitCommand.all[value]; - ((CommandCenter)tile.block()).effect.at(tile); - - for(Tile center : indexer.getAllied(tile.team(), BlockFlag.comandCenter)){ - if(center.block() instanceof CommandCenter){ - CommandCenterEntity entity = center.ent(); - entity.command = command; - } - } - - Groups.unit.each(t -> t.team() == tile.team(), u -> u.controller().command(command)); - Events.fire(new CommandIssueEvent(tile, command)); - }); - } - - @Override - public void load(){ - super.load(); - - if(ui != null){ - for(UnitCommand cmd : UnitCommand.all){ - commandRegions[cmd.ordinal()] = ui.getIcon("command" + Strings.capitalize(cmd.name())); - } - } - } - - public class CommandCenterEntity extends TileEntity{ - public UnitCommand command = UnitCommand.attack; - - @Override - public void draw(){ - super.draw(); - - float size = 6f; - - Draw.color(bottomColor); - Draw.rect(commandRegions[command.ordinal()].getRegion(), x, y - 1, size, size); - Draw.color(topColor); - Draw.rect(commandRegions[command.ordinal()].getRegion(), x, y, size, size); - Draw.color(); - } - - @Override - public void buildConfiguration(Table table){ - ButtonGroup group = new ButtonGroup<>(); - Table buttons = new Table(); - - for(UnitCommand cmd : UnitCommand.all){ - buttons.button(commandRegions[cmd.ordinal()], Styles.clearToggleTransi, () -> configure(cmd.ordinal())) - .size(44).group(group).update(b -> b.setChecked(command == cmd)); - } - table.add(buttons); - table.row(); - table.label(() -> command.localized()).style(Styles.outlineLabel).center().growX().get().setAlignment(Align.center); - } - - @Override - public void placed(){ - super.placed(); - TileArray set = indexer.getAllied(team, BlockFlag.comandCenter); - - if(set.size() > 0){ - CommandCenterEntity oe = set.first().ent(); - command = oe.command; - } - } - - @Override - public void onRemoved(){ - super.onRemoved(); - - TileArray set = indexer.getAllied(team, BlockFlag.comandCenter); - - if(set.size() == 1){ - Groups.unit.each(t -> t.team() == team, u -> u.controller().command(UnitCommand.all[0])); - } - } - - @Override - public Integer config(){ - return command.ordinal(); - } - - @Override - public void write(Writes write){ - super.write(write); - write.b(command.ordinal()); - } - - @Override - public void read(Reads read, byte revision){ - super.read(read, revision); - command = UnitCommand.all[read.b()]; - } - } -} diff --git a/core/src/mindustry/world/blocks/units/UnitFactory.java b/core/src/mindustry/world/blocks/units/UnitFactory.java index f659b6cf31..23fcb3bc3a 100644 --- a/core/src/mindustry/world/blocks/units/UnitFactory.java +++ b/core/src/mindustry/world/blocks/units/UnitFactory.java @@ -38,7 +38,8 @@ public class UnitFactory extends Block{ hasPower = true; hasItems = true; solid = false; - flags = EnumSet.of(BlockFlag.producer); + flags = EnumSet.of(BlockFlag.producer, BlockFlag.unitModifier); + unitCapModifier = 4; configurable = true; config(Integer.class, (tile, i) -> { @@ -220,7 +221,7 @@ public class UnitFactory extends Block{ if(currentPlan != -1){ UnitPlan plan = plans[currentPlan]; - if(progress >= plan.time/* && !Units.anyEntities(tile, !plan.unit.flying)*/){ + if(progress >= plan.time/* && !Units.anyEntities(tile, !plan.unit.flying)*/ && Units.canCreate(team)){ progress = 0f; Call.onUnitFactorySpawn(tile); diff --git a/core/src/mindustry/world/meta/BlockFlag.java b/core/src/mindustry/world/meta/BlockFlag.java index 0fd2ca9c43..2308448e45 100644 --- a/core/src/mindustry/world/meta/BlockFlag.java +++ b/core/src/mindustry/world/meta/BlockFlag.java @@ -4,18 +4,16 @@ package mindustry.world.meta; public enum BlockFlag{ /** Enemy core; primary target for all units. */ core, - /** Rally point for units.*/ - rally, /** Producer of important goods. */ producer, /** A turret. */ turret, - /** Only the command center block.*/ - comandCenter, /** Repair point. */ repair, - /** Upgrade pad. */ - mechPad; + /** Rally point. TODO remove*/ + rally, + /** Any block that boosts unit capacity. */ + unitModifier; public final static BlockFlag[] all = values(); } diff --git a/desktop/build.gradle b/desktop/build.gradle index a55b0c07e3..9852666a89 100644 --- a/desktop/build.gradle +++ b/desktop/build.gradle @@ -4,8 +4,6 @@ import com.badlogicgames.packr.PackrConfig import java.nio.ByteBuffer import java.security.MessageDigest -apply plugin: "java" - sourceCompatibility = 1.8 sourceSets.main.java.srcDirs = [ "src/" ] @@ -72,7 +70,7 @@ task run(dependsOn: classes, type: JavaExec){ task dist(type: Jar, dependsOn: classes){ from files(sourceSets.main.output.classesDirs) from files(sourceSets.main.output.resourcesDir) - from {configurations.compile.collect{ it.isDirectory() ? it : zipTree(it) }} + from {configurations.compileClasspath.collect{ !it.exists() ? null : it.isDirectory() ? it : zipTree(it) }} from files(project.assetsDir) archiveFileName = "${appName}.jar" diff --git a/gradle.properties b/gradle.properties index bd4bb38d4f..92ac814bbd 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,3 @@ org.gradle.daemon=true org.gradle.jvmargs=-Xms256m -Xmx1024m -archash=ef4e114c648101c2d49ab98c1801737450f2a93a +archash=1ccdb62216c9e6e0d85a85aa120f4dfc59b76e63 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 5028f28f8e..4c5803d13c 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.4-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew index 8e25e6c19d..83f2acfdc3 100755 --- a/gradlew +++ b/gradlew @@ -125,8 +125,8 @@ if $darwin; then GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" fi -# For Cygwin, switch paths to Windows format before running java -if $cygwin ; then +# For Cygwin or MSYS, switch paths to Windows format before running java +if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then APP_HOME=`cygpath --path --mixed "$APP_HOME"` CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` JAVACMD=`cygpath --unix "$JAVACMD"` diff --git a/server/build.gradle b/server/build.gradle index 8d75ac7f1d..859aad3056 100644 --- a/server/build.gradle +++ b/server/build.gradle @@ -1,5 +1,3 @@ -apply plugin: "java" - sourceCompatibility = 1.8 sourceSets.main.java.srcDirs = ["src/"] diff --git a/server/src/mindustry/server/ServerLauncher.java b/server/src/mindustry/server/ServerLauncher.java index d1c3d24c52..760d480fc4 100644 --- a/server/src/mindustry/server/ServerLauncher.java +++ b/server/src/mindustry/server/ServerLauncher.java @@ -74,11 +74,11 @@ public class ServerLauncher implements ApplicationListener{ System.exit(1); } - Core.app.addListener(new ApplicationListener(){public void update(){ asyncLogic.begin(); }}); + Core.app.addListener(new ApplicationListener(){public void update(){ asyncCore.begin(); }}); Core.app.addListener(logic = new Logic()); Core.app.addListener(netServer = new NetServer()); Core.app.addListener(new ServerControl(args)); - Core.app.addListener(new ApplicationListener(){public void update(){ asyncLogic.end(); }}); + Core.app.addListener(new ApplicationListener(){public void update(){ asyncCore.end(); }}); mods.eachClass(Mod::init); diff --git a/tests/build.gradle b/tests/build.gradle index b501c8de32..9b94f1f444 100644 --- a/tests/build.gradle +++ b/tests/build.gradle @@ -1,5 +1 @@ -apply plugin: "java" - -sourceCompatibility = 1.8 - -sourceSets.test.resources.srcDir = "src/test/resources" +sourceSets.test.resources.srcDirs = ["src/test/resources"] diff --git a/tools/build.gradle b/tools/build.gradle index a4b5ed9e1e..1b3dc36bba 100644 --- a/tools/build.gradle +++ b/tools/build.gradle @@ -1,5 +1,3 @@ -apply plugin: "java" - sourceCompatibility = 1.8 sourceSets.main.java.srcDirs = ["src/"] diff --git a/tools/src/mindustry/tools/Generators.java b/tools/src/mindustry/tools/Generators.java index a7c3b27196..c8c15b5a12 100644 --- a/tools/src/mindustry/tools/Generators.java +++ b/tools/src/mindustry/tools/Generators.java @@ -24,6 +24,32 @@ public class Generators{ public static void generate(){ ObjectMap gens = new ObjectMap<>(); + ImagePacker.generate("splashes", () -> { + ArcNativesLoader.load(); + + int frames = 12; + int size = 32; + for(int i = 0; i < frames; i++){ + float fin = (float)i / (frames); + float fout = 1f - fin; + float stroke = 4f * fout; + float radius = (size/2f) * fin; + + Pixmap pixmap = new Pixmap(size, size); + + pixmap.each((x, y) -> { + float dst = Mathf.dst(x, y, size/2f, size/2f); + if(Math.abs(dst - radius) <= stroke){ + pixmap.draw(x, y, Color.white); + } + }); + + Fi.get("splash-" + i + ".png").writePNG(pixmap); + + pixmap.dispose(); + } + }); + ImagePacker.generate("cracks", () -> { RidgedPerlin r = new RidgedPerlin(1, 3); for(int size = 1; size <= Block.maxCrackSize; size++){