diff --git a/core/assets/bundles/bundle.properties b/core/assets/bundles/bundle.properties index ef4cccb584..cbf4f022d1 100644 --- a/core/assets/bundles/bundle.properties +++ b/core/assets/bundles/bundle.properties @@ -1379,6 +1379,9 @@ rules.weather.frequency = Frequency: rules.weather.always = Always rules.weather.duration = Duration: +rules.placerangecheck.info = Prevents players from placing anything near enemy buildings. When trying to place a turret, the range is increased, so the turret will not be able to reach the enemy. +rules.onlydepositcore.info = Prevents units from depositing items into any buildings except cores. + content.item.name = Items content.liquid.name = Fluids content.unit.name = Units diff --git a/core/assets/bundles/bundle_be.properties b/core/assets/bundles/bundle_be.properties index 2a0e4c4e9e..2757457626 100644 --- a/core/assets/bundles/bundle_be.properties +++ b/core/assets/bundles/bundle_be.properties @@ -598,7 +598,7 @@ filter.option.floor2 = Другая паверхню filter.option.threshold2 = Другасны гранічны парог filter.option.radius = Радыус filter.option.percentile = Процентль -locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: @[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable) +locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable) locales.deletelocale = Are you sure you want to delete this locale bundle? locales.applytoall = Apply Changes To All Locales locales.addtoother = Add To Other Locales @@ -2273,7 +2273,7 @@ unit.emanate.description = Builds structures to defend the Acropolis core. Repai lst.read = Read a number from a linked memory cell. lst.write = Write a number to a linked memory cell. lst.print = Add text to the print buffer.\nDoes not display anything until [accent]Print Flush[] is used. -lst.format = Replace next placeholder ("[accent]@[]") in text buffer with a value.\nExample:\n[accent]print "test @"\nformat "example" +lst.format = Replace next placeholder in text buffer with a value.\nDoes not do anything if placeholder pattern is invalid.\nPlaceholder pattern: "{[accent]number 0-9[]}"\nExample:\n[accent]print "test {0}"\nformat "example" lst.draw = Add an operation to the drawing buffer.\nDoes not display anything until [accent]Draw Flush[] is used. lst.drawflush = Flush queued [accent]Draw[] operations to a display. lst.printflush = Flush queued [accent]Print[] operations to a message block. diff --git a/core/assets/bundles/bundle_bg.properties b/core/assets/bundles/bundle_bg.properties index 530c050bbd..08d2bd5893 100644 --- a/core/assets/bundles/bundle_bg.properties +++ b/core/assets/bundles/bundle_bg.properties @@ -604,7 +604,7 @@ filter.option.floor2 = Втори под filter.option.threshold2 = Втори праг filter.option.radius = Радиус filter.option.percentile = Перцентил -locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: @[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable) +locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable) locales.deletelocale = Are you sure you want to delete this locale bundle? locales.applytoall = Apply Changes To All Locales locales.addtoother = Add To Other Locales @@ -2287,7 +2287,7 @@ unit.emanate.description = Builds structures to defend the Acropolis core. Repai lst.read = Прочети число от свързано хранилище за памет. lst.write = Запиши число в свързано хранилище за памет. lst.print = Добави текст в буфера за изписване.\nНе визуализира нищо докато не използвате [accent]Print Flush[]. -lst.format = Replace next placeholder ("[accent]@[]") in text buffer with a value.\nExample:\n[accent]print "test @"\nformat "example" +lst.format = Replace next placeholder in text buffer with a value.\nDoes not do anything if placeholder pattern is invalid.\nPlaceholder pattern: "{[accent]number 0-9[]}"\nExample:\n[accent]print "test {0}"\nformat "example" lst.draw = Добавя операция в буфера за изображение.\nНе показва нищо докато не използвате [accent]Draw Flush[]. lst.drawflush = Изпълнява операции, поискани с команда [accent]Draw[] върху посочен дисплей. lst.printflush = Извежда текст натрупан с [accent]Print[] върху посочен блок за съобщение. diff --git a/core/assets/bundles/bundle_ca.properties b/core/assets/bundles/bundle_ca.properties index f7642061f9..bde7361028 100644 --- a/core/assets/bundles/bundle_ca.properties +++ b/core/assets/bundles/bundle_ca.properties @@ -607,7 +607,7 @@ filter.option.floor2 = Terra secundari filter.option.threshold2 = Llindar secundari filter.option.radius = Radi filter.option.percentile = Percentil -locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: @[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable) +locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable) locales.deletelocale = Are you sure you want to delete this locale bundle? locales.applytoall = Apply Changes To All Locales locales.addtoother = Add To Other Locales @@ -2297,7 +2297,7 @@ unit.emanate.description = Construeix estructures per defensar el nucli Acròpol lst.read = Llegeix un nombre des d’una cel·la de memòria connectada. lst.write = Escriu un nombre en una cel·la de memòria connectada. lst.print = Afegeix un text a la cua d’impressió.\nEl text no es mostrarà fins que s’apliqui «[accent]Print Flush[]». -lst.format = Replace next placeholder ("[accent]@[]") in text buffer with a value.\nExample:\n[accent]print "test @"\nformat "example" +lst.format = Replace next placeholder in text buffer with a value.\nDoes not do anything if placeholder pattern is invalid.\nPlaceholder pattern: "{[accent]number 0-9[]}"\nExample:\n[accent]print "test {0}"\nformat "example" lst.draw = Afegeix una instrucció de dibuix a la cua corresponent.\nEl resultat no es mostrarà fins que s’apliqui «[accent]Draw Flush[]». lst.drawflush = Executa les operacions de la cua de dibuix al monitor lògic. lst.printflush = Executa les operacions de la cua d’impressió al monitor lògic. diff --git a/core/assets/bundles/bundle_cs.properties b/core/assets/bundles/bundle_cs.properties index bd98459a70..acd90ddc68 100644 --- a/core/assets/bundles/bundle_cs.properties +++ b/core/assets/bundles/bundle_cs.properties @@ -606,7 +606,7 @@ filter.option.floor2 = Druhotný povrch filter.option.threshold2 = Druhotný práh filter.option.radius = Poloměr filter.option.percentile = Percentil -locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: @[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable) +locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable) locales.deletelocale = Are you sure you want to delete this locale bundle? locales.applytoall = Apply Changes To All Locales locales.addtoother = Add To Other Locales @@ -2292,7 +2292,7 @@ unit.emanate.description = Builds structures to defend the Acropolis core. Repai lst.read = Přečte číslo z připojené paměti. lst.write = Zapíše číslo do připojené paměti. lst.print = Přídá text do vypisovacího buferu.\nNezobrazí nic dokud [accent]Print Flush[] je použít. -lst.format = Replace next placeholder ("[accent]@[]") in text buffer with a value.\nExample:\n[accent]print "test @"\nformat "example" +lst.format = Replace next placeholder in text buffer with a value.\nDoes not do anything if placeholder pattern is invalid.\nPlaceholder pattern: "{[accent]number 0-9[]}"\nExample:\n[accent]print "test {0}"\nformat "example" lst.draw = Přídá operaci do vykreslovacího buferu.\nNezobrazí nic dokud [accent]Draw Flush[] je použít. lst.drawflush = Provede všechny [accent]Draw[] operace na zobrazovač logiky. Pak vyčistí vykreslovací bufer. lst.printflush = Provede všechny [accent]Print[] operace do zprávy. Pak vyčistí vypisovací bufer. diff --git a/core/assets/bundles/bundle_da.properties b/core/assets/bundles/bundle_da.properties index 687a4be97e..56e0977799 100644 --- a/core/assets/bundles/bundle_da.properties +++ b/core/assets/bundles/bundle_da.properties @@ -599,7 +599,7 @@ filter.option.floor2 = Sekundært gulv filter.option.threshold2 = Sekundær terskel filter.option.radius = Radius filter.option.percentile = Percentil -locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: @[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable) +locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable) locales.deletelocale = Are you sure you want to delete this locale bundle? locales.applytoall = Apply Changes To All Locales locales.addtoother = Add To Other Locales @@ -2273,7 +2273,7 @@ unit.emanate.description = Builds structures to defend the Acropolis core. Repai lst.read = Read a number from a linked memory cell. lst.write = Write a number to a linked memory cell. lst.print = Add text to the print buffer.\nDoes not display anything until [accent]Print Flush[] is used. -lst.format = Replace next placeholder ("[accent]@[]") in text buffer with a value.\nExample:\n[accent]print "test @"\nformat "example" +lst.format = Replace next placeholder in text buffer with a value.\nDoes not do anything if placeholder pattern is invalid.\nPlaceholder pattern: "{[accent]number 0-9[]}"\nExample:\n[accent]print "test {0}"\nformat "example" lst.draw = Add an operation to the drawing buffer.\nDoes not display anything until [accent]Draw Flush[] is used. lst.drawflush = Flush queued [accent]Draw[] operations to a display. lst.printflush = Flush queued [accent]Print[] operations to a message block. diff --git a/core/assets/bundles/bundle_de.properties b/core/assets/bundles/bundle_de.properties index 023a6da38a..260236969e 100644 --- a/core/assets/bundles/bundle_de.properties +++ b/core/assets/bundles/bundle_de.properties @@ -610,7 +610,7 @@ filter.option.floor2 = Sekundärer Boden filter.option.threshold2 = Sekundärer Grenzwert filter.option.radius = Radius filter.option.percentile = Perzentil -locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: @[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable) +locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable) locales.deletelocale = Are you sure you want to delete this locale bundle? locales.applytoall = Apply Changes To All Locales locales.addtoother = Add To Other Locales @@ -2322,7 +2322,7 @@ unit.emanate.description = Baut Blöcke, um den Akropolis-Kern zu beschützen. H lst.read = Liest einen Wert aus einer verbundenen Speicherzelle. lst.write = Schreibt eine Zahl in einer verbundene Speicherzelle. lst.print = Fügt Text zum Textspeicher hinzu.\nZeigt nichts an, bis [accent]Print Flush[] verwendet wird. -lst.format = Replace next placeholder ("[accent]@[]") in text buffer with a value.\nExample:\n[accent]print "test @"\nformat "example" +lst.format = Replace next placeholder in text buffer with a value.\nDoes not do anything if placeholder pattern is invalid.\nPlaceholder pattern: "{[accent]number 0-9[]}"\nExample:\n[accent]print "test {0}"\nformat "example" lst.draw = Fügt eine [accent]Draw[]-Aufgabe zum Bildspeicher hinzu.\nZeigt nichts an, bis [accent]Draw Flush[] verwendet wird. lst.drawflush = Druckt [accent]Draw[]-Aufgaben aus dem Bildspeicher auf einen Bildschirm. lst.printflush = Druckt [accent]Print[]-Aufgaben aus dem Textspeicher auf einen Nachrichtenblock. diff --git a/core/assets/bundles/bundle_es.properties b/core/assets/bundles/bundle_es.properties index 8e2ab61238..a1784ec9c6 100644 --- a/core/assets/bundles/bundle_es.properties +++ b/core/assets/bundles/bundle_es.properties @@ -607,7 +607,7 @@ filter.option.floor2 = Terreno secundario filter.option.threshold2 = Umbral secundario filter.option.radius = Radio filter.option.percentile = Percentil -locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: @[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable) +locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable) locales.deletelocale = Are you sure you want to delete this locale bundle? locales.applytoall = Apply Changes To All Locales locales.addtoother = Add To Other Locales @@ -2315,7 +2315,7 @@ unit.emanate.description = Construye estructuras para defender el núcleo Acropo lst.read = Lee un número desde una unidad de memoria conectada. lst.write = Escribe un número en una unidad de memoria conectada. lst.print = Añade texto a la cola para imprimir texto.\nNo mostrará nada hasta que se use [accent]Print Flush[]. -lst.format = Replace next placeholder ("[accent]@[]") in text buffer with a value.\nExample:\n[accent]print "test @"\nformat "example" +lst.format = Replace next placeholder in text buffer with a value.\nDoes not do anything if placeholder pattern is invalid.\nPlaceholder pattern: "{[accent]number 0-9[]}"\nExample:\n[accent]print "test {0}"\nformat "example" lst.draw = Añade una operación a la cola para dibujar.\nNo mostrará nada hasta que se use [accent]Draw Flush[]. lst.drawflush = Muestra los datos en cola de operaciones [accent]Draw[] en un monitor gráfico. lst.printflush = Muestra los datos en cola de operaciones de [accent]Print[] en un bloque de mensaje. diff --git a/core/assets/bundles/bundle_et.properties b/core/assets/bundles/bundle_et.properties index 3acece8285..675204d69b 100644 --- a/core/assets/bundles/bundle_et.properties +++ b/core/assets/bundles/bundle_et.properties @@ -599,7 +599,7 @@ filter.option.floor2 = Teine põrand filter.option.threshold2 = Teine lävi filter.option.radius = Raadius filter.option.percentile = Protsentiil -locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: @[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable) +locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable) locales.deletelocale = Are you sure you want to delete this locale bundle? locales.applytoall = Apply Changes To All Locales locales.addtoother = Add To Other Locales @@ -2275,7 +2275,7 @@ unit.emanate.description = Builds structures to defend the Acropolis core. Repai lst.read = Read a number from a linked memory cell. lst.write = Write a number to a linked memory cell. lst.print = Add text to the print buffer.\nDoes not display anything until [accent]Print Flush[] is used. -lst.format = Replace next placeholder ("[accent]@[]") in text buffer with a value.\nExample:\n[accent]print "test @"\nformat "example" +lst.format = Replace next placeholder in text buffer with a value.\nDoes not do anything if placeholder pattern is invalid.\nPlaceholder pattern: "{[accent]number 0-9[]}"\nExample:\n[accent]print "test {0}"\nformat "example" lst.draw = Add an operation to the drawing buffer.\nDoes not display anything until [accent]Draw Flush[] is used. lst.drawflush = Flush queued [accent]Draw[] operations to a display. lst.printflush = Flush queued [accent]Print[] operations to a message block. diff --git a/core/assets/bundles/bundle_eu.properties b/core/assets/bundles/bundle_eu.properties index d29722b775..e43fd2fdf6 100644 --- a/core/assets/bundles/bundle_eu.properties +++ b/core/assets/bundles/bundle_eu.properties @@ -601,7 +601,7 @@ filter.option.floor2 = Bigarren zorua filter.option.threshold2 = Bigarren atalasea filter.option.radius = Erradioa filter.option.percentile = Pertzentila -locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: @[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable) +locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable) locales.deletelocale = Are you sure you want to delete this locale bundle? locales.applytoall = Apply Changes To All Locales locales.addtoother = Add To Other Locales @@ -2277,7 +2277,7 @@ unit.emanate.description = Builds structures to defend the Acropolis core. Repai lst.read = Read a number from a linked memory cell. lst.write = Write a number to a linked memory cell. lst.print = Add text to the print buffer.\nDoes not display anything until [accent]Print Flush[] is used. -lst.format = Replace next placeholder ("[accent]@[]") in text buffer with a value.\nExample:\n[accent]print "test @"\nformat "example" +lst.format = Replace next placeholder in text buffer with a value.\nDoes not do anything if placeholder pattern is invalid.\nPlaceholder pattern: "{[accent]number 0-9[]}"\nExample:\n[accent]print "test {0}"\nformat "example" lst.draw = Add an operation to the drawing buffer.\nDoes not display anything until [accent]Draw Flush[] is used. lst.drawflush = Flush queued [accent]Draw[] operations to a display. lst.printflush = Flush queued [accent]Print[] operations to a message block. diff --git a/core/assets/bundles/bundle_fi.properties b/core/assets/bundles/bundle_fi.properties index d2cfbbeb4a..a955c097ed 100644 --- a/core/assets/bundles/bundle_fi.properties +++ b/core/assets/bundles/bundle_fi.properties @@ -599,7 +599,7 @@ filter.option.floor2 = Toinen lattia filter.option.threshold2 = Toissijainen raja-arvo filter.option.radius = Säde filter.option.percentile = Prosentti -locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: @[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable) +locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable) locales.deletelocale = Are you sure you want to delete this locale bundle? locales.applytoall = Apply Changes To All Locales locales.addtoother = Add To Other Locales @@ -2278,7 +2278,7 @@ unit.emanate.description = Builds structures to defend the Acropolis core. Repai lst.read = Lue numero yhdistetystä muistisolusta. lst.write = Kirjoita numero yhdistettyyn muistisoluun. lst.print = Lisää tekstiä tekstipuskuriin.\nEi näytä mitään, kunnes [accent]Painosyötettä[] käytetään. -lst.format = Replace next placeholder ("[accent]@[]") in text buffer with a value.\nExample:\n[accent]print "test @"\nformat "example" +lst.format = Replace next placeholder in text buffer with a value.\nDoes not do anything if placeholder pattern is invalid.\nPlaceholder pattern: "{[accent]number 0-9[]}"\nExample:\n[accent]print "test {0}"\nformat "example" lst.draw = Lisää operaation piirtopuskuriin.\nEi näytä mitään, kunnes [accent]Piirtosyötettä[] käytetään. lst.drawflush = Syöttää jonottavat [accent]Piirto[]-operaatiot näyttöön. lst.printflush = Syöttää jonottavat [accent]Paino[]-operaatiot viestipalikkaan. diff --git a/core/assets/bundles/bundle_fil.properties b/core/assets/bundles/bundle_fil.properties index 85fe063009..08cd5e1fbd 100644 --- a/core/assets/bundles/bundle_fil.properties +++ b/core/assets/bundles/bundle_fil.properties @@ -599,7 +599,7 @@ filter.option.floor2 = Secondary Floor filter.option.threshold2 = Secondary Threshold filter.option.radius = Radius filter.option.percentile = Percentile -locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: @[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable) +locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable) locales.deletelocale = Are you sure you want to delete this locale bundle? locales.applytoall = Apply Changes To All Locales locales.addtoother = Add To Other Locales @@ -2274,7 +2274,7 @@ unit.emanate.description = Builds structures to defend the Acropolis core. Repai lst.read = Read a number from a linked memory cell. lst.write = Write a number to a linked memory cell. lst.print = Add text to the print buffer.\nDoes not display anything until [accent]Print Flush[] is used. -lst.format = Replace next placeholder ("[accent]@[]") in text buffer with a value.\nExample:\n[accent]print "test @"\nformat "example" +lst.format = Replace next placeholder in text buffer with a value.\nDoes not do anything if placeholder pattern is invalid.\nPlaceholder pattern: "{[accent]number 0-9[]}"\nExample:\n[accent]print "test {0}"\nformat "example" lst.draw = Add an operation to the drawing buffer.\nDoes not display anything until [accent]Draw Flush[] is used. lst.drawflush = Flush queued [accent]Draw[] operations to a display. lst.printflush = Flush queued [accent]Print[] operations to a message block. diff --git a/core/assets/bundles/bundle_fr.properties b/core/assets/bundles/bundle_fr.properties index 0dea263859..7e3d8ea6cd 100644 --- a/core/assets/bundles/bundle_fr.properties +++ b/core/assets/bundles/bundle_fr.properties @@ -613,7 +613,7 @@ filter.option.floor2 = Sol secondaire filter.option.threshold2 = Seuil secondaire filter.option.radius = Rayon filter.option.percentile = Pourcentage -locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: @[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable) +locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable) locales.deletelocale = Are you sure you want to delete this locale bundle? locales.applytoall = Apply Changes To All Locales locales.addtoother = Add To Other Locales @@ -2322,7 +2322,7 @@ unit.emanate.description = Construit des structures pour défendre le Noyau acro lst.read = Lit un nombre depuis un bloc de mémoire relié au processeur. lst.write = Écrit un nombre dans un bloc de mémoire relié au processeur. lst.print = Ajoute du texte dans la mémoire tampon de l'imprimante.\nNe montrera aucun texte tant que [accent]Print Flush[] ne sera pas utilisé. -lst.format = Replace next placeholder ("[accent]@[]") in text buffer with a value.\nExample:\n[accent]print "test @"\nformat "example" +lst.format = Replace next placeholder in text buffer with a value.\nDoes not do anything if placeholder pattern is invalid.\nPlaceholder pattern: "{[accent]number 0-9[]}"\nExample:\n[accent]print "test {0}"\nformat "example" lst.draw = Ajoute une opération dans la mémoire tampon de dessin.\nNe montrera aucune image tant que [accent]Draw Flush[] ne sera pas utilisé. lst.drawflush = Affiche les opérations [accent]Draw[] en file d'attente vers un écran. lst.printflush = Affiche les opérations [accent]Print[] en file d'attente vers un bloc de message. diff --git a/core/assets/bundles/bundle_id_ID.properties b/core/assets/bundles/bundle_id_ID.properties index f9a2127af0..0f1bd6fd5e 100644 --- a/core/assets/bundles/bundle_id_ID.properties +++ b/core/assets/bundles/bundle_id_ID.properties @@ -607,7 +607,7 @@ filter.option.floor2 = Lantai Sekunder filter.option.threshold2 = Ambang Sekunder filter.option.radius = Radius filter.option.percentile = Perseratus -locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: @[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable) +locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable) locales.deletelocale = Are you sure you want to delete this locale bundle? locales.applytoall = Apply Changes To All Locales locales.addtoother = Add To Other Locales @@ -2313,7 +2313,7 @@ unit.emanate.description = Builds structures to defend the Acropolis core. Repai lst.read = Membaca angka dari memori sel yang dihubungkan. lst.write = Menulis angka ke memori sel yang dihubungkan. lst.print = Menambahkan teks ke daftar cetak.\nTidak dapat menampilkan apapun sampai [accent]Print Flush[] dipakai. -lst.format = Replace next placeholder ("[accent]@[]") in text buffer with a value.\nExample:\n[accent]print "test @"\nformat "example" +lst.format = Replace next placeholder in text buffer with a value.\nDoes not do anything if placeholder pattern is invalid.\nPlaceholder pattern: "{[accent]number 0-9[]}"\nExample:\n[accent]print "test {0}"\nformat "example" lst.draw = Menambahkan perintah ke daftar gambar.\nTidak dapat menampilkan apapun sampai [accent]Draw Flush[] dipakai. lst.drawflush = Mengeluarkan perintah [accent]Draw[] dari daftar antrean untuk ditampilkan. lst.printflush = Mengeluarkan perintah [accent]Print[] dari daftar antrean untuk blok pesan. diff --git a/core/assets/bundles/bundle_it.properties b/core/assets/bundles/bundle_it.properties index c5d871dd97..97221f7113 100644 --- a/core/assets/bundles/bundle_it.properties +++ b/core/assets/bundles/bundle_it.properties @@ -602,7 +602,7 @@ filter.option.floor2 = Terreno Secondario filter.option.threshold2 = Soglia Secondaria filter.option.radius = Raggio filter.option.percentile = Percentuale -locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: @[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable) +locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable) locales.deletelocale = Are you sure you want to delete this locale bundle? locales.applytoall = Apply Changes To All Locales locales.addtoother = Add To Other Locales @@ -2287,7 +2287,7 @@ unit.emanate.description = Costruisce strutture per difendere il nucleo dell'Acr lst.read = Leggi un numero da una cella di memoria collegata. lst.write = Scrivi un numero in una cella di memoria collegata. lst.print = Add text to the print buffer.\nDoes not display anything until [accent]Print Flush[] is used. -lst.format = Replace next placeholder ("[accent]@[]") in text buffer with a value.\nExample:\n[accent]print "test @"\nformat "example" +lst.format = Replace next placeholder in text buffer with a value.\nDoes not do anything if placeholder pattern is invalid.\nPlaceholder pattern: "{[accent]number 0-9[]}"\nExample:\n[accent]print "test {0}"\nformat "example" lst.draw = Add an operation to the drawing buffer.\nDoes not display anything until [accent]Draw Flush[] is used. lst.drawflush = Flush queued [accent]Draw[] operations to a display. lst.printflush = Flush queued [accent]Print[] operations to a message block. diff --git a/core/assets/bundles/bundle_ja.properties b/core/assets/bundles/bundle_ja.properties index 59f64d47b1..b54b1f57f3 100644 --- a/core/assets/bundles/bundle_ja.properties +++ b/core/assets/bundles/bundle_ja.properties @@ -606,7 +606,7 @@ filter.option.floor2 = 2番目の地面 filter.option.threshold2 = 2番目の閾値 filter.option.radius = 半径 filter.option.percentile = パーセンタイル -locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: @[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable) +locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable) locales.deletelocale = Are you sure you want to delete this locale bundle? locales.applytoall = Apply Changes To All Locales locales.addtoother = Add To Other Locales @@ -2291,7 +2291,7 @@ unit.emanate.description = アクロポリスコアを敵から守ります。\n lst.read = リンクされたメモリセルから数値を読み取ります。 lst.write = リンクされたメモリセルに数値を書き込みます。 lst.print = メッセージブロックにテキストを追加します。[accent]Print Flush[] を使用するまで何も表示しません。 -lst.format = Replace next placeholder ("[accent]@[]") in text buffer with a value.\nExample:\n[accent]print "test @"\nformat "example" +lst.format = Replace next placeholder in text buffer with a value.\nDoes not do anything if placeholder pattern is invalid.\nPlaceholder pattern: "{[accent]number 0-9[]}"\nExample:\n[accent]print "test {0}"\nformat "example" lst.draw = ロジックディスプレイに操作を追加します。[accent]Draw Flush[] を使用するまで何も表示しません。 lst.drawflush = キューに入れられた [accent]Draw[] 操作をディスプレイにフラッシュします。 lst.printflush = キューに入れられた [accent]Print[] 操作をメッセージ ブロックにフラッシュします。 diff --git a/core/assets/bundles/bundle_ko.properties b/core/assets/bundles/bundle_ko.properties index f3c014faed..342c511010 100644 --- a/core/assets/bundles/bundle_ko.properties +++ b/core/assets/bundles/bundle_ko.properties @@ -606,7 +606,7 @@ filter.option.floor2 = 2번째 타일 filter.option.threshold2 = 2번째 경계선 filter.option.radius = 반경 filter.option.percentile = 백분율 -locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: @[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable) +locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable) locales.deletelocale = Are you sure you want to delete this locale bundle? locales.applytoall = Apply Changes To All Locales locales.addtoother = Add To Other Locales @@ -2290,7 +2290,7 @@ unit.emanate.description = 코어: 도심을 지켜내기 위해 구조물을 lst.read = 연결된 메모리 셀에서 숫자 읽음 lst.write = 연결된 메모리 셀에 숫자 작성 lst.print = 프린트 버퍼에 텍스트 추가\n[accent]Print Flush[]가 사용되기 전까진 아무것도 보여주지 않습니다 -lst.format = Replace next placeholder ("[accent]@[]") in text buffer with a value.\nExample:\n[accent]print "test @"\nformat "example" +lst.format = Replace next placeholder in text buffer with a value.\nDoes not do anything if placeholder pattern is invalid.\nPlaceholder pattern: "{[accent]number 0-9[]}"\nExample:\n[accent]print "test {0}"\nformat "example" lst.draw = 드로잉 버퍼에 실행문 추가\n[accent]Draw Flush[]가 사용되기 전까진 아무것도 보여주지 않습니다 lst.drawflush = 대기중인 [accent]Draw[]실행문을 디스플레이에 출력 lst.printflush = 대기중인 [accent]Print[]실행문을 메시지 블록에 출력 diff --git a/core/assets/bundles/bundle_lt.properties b/core/assets/bundles/bundle_lt.properties index 6bc26f33fd..f61d0b08b5 100644 --- a/core/assets/bundles/bundle_lt.properties +++ b/core/assets/bundles/bundle_lt.properties @@ -599,7 +599,7 @@ filter.option.floor2 = Antrasis sluoksnis filter.option.threshold2 = Antrasis slenkstis filter.option.radius = Spindulys filter.option.percentile = Procentilė -locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: @[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable) +locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable) locales.deletelocale = Are you sure you want to delete this locale bundle? locales.applytoall = Apply Changes To All Locales locales.addtoother = Add To Other Locales @@ -2275,7 +2275,7 @@ unit.emanate.description = Builds structures to defend the Acropolis core. Repai lst.read = Read a number from a linked memory cell. lst.write = Write a number to a linked memory cell. lst.print = Add text to the print buffer.\nDoes not display anything until [accent]Print Flush[] is used. -lst.format = Replace next placeholder ("[accent]@[]") in text buffer with a value.\nExample:\n[accent]print "test @"\nformat "example" +lst.format = Replace next placeholder in text buffer with a value.\nDoes not do anything if placeholder pattern is invalid.\nPlaceholder pattern: "{[accent]number 0-9[]}"\nExample:\n[accent]print "test {0}"\nformat "example" lst.draw = Add an operation to the drawing buffer.\nDoes not display anything until [accent]Draw Flush[] is used. lst.drawflush = Flush queued [accent]Draw[] operations to a display. lst.printflush = Flush queued [accent]Print[] operations to a message block. diff --git a/core/assets/bundles/bundle_nl.properties b/core/assets/bundles/bundle_nl.properties index 46eb33949b..66590f28e8 100644 --- a/core/assets/bundles/bundle_nl.properties +++ b/core/assets/bundles/bundle_nl.properties @@ -609,7 +609,7 @@ filter.option.floor2 = Secundaire Vloer filter.option.threshold2 = Secundaire Drempel filter.option.radius = Straal filter.option.percentile = percentiel -locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: @[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable) +locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable) locales.deletelocale = Are you sure you want to delete this locale bundle? locales.applytoall = Apply Changes To All Locales locales.addtoother = Add To Other Locales @@ -2288,7 +2288,7 @@ unit.emanate.description = Builds structures to defend the Acropolis core. Repai lst.read = Read a number from a linked memory cell. lst.write = Write a number to a linked memory cell. lst.print = Add text to the print buffer.\nDoes not display anything until [accent]Print Flush[] is used. -lst.format = Replace next placeholder ("[accent]@[]") in text buffer with a value.\nExample:\n[accent]print "test @"\nformat "example" +lst.format = Replace next placeholder in text buffer with a value.\nDoes not do anything if placeholder pattern is invalid.\nPlaceholder pattern: "{[accent]number 0-9[]}"\nExample:\n[accent]print "test {0}"\nformat "example" lst.draw = Add an operation to the drawing buffer.\nDoes not display anything until [accent]Draw Flush[] is used. lst.drawflush = Flush queued [accent]Draw[] operations to a display. lst.printflush = Flush queued [accent]Print[] operations to a message block. diff --git a/core/assets/bundles/bundle_nl_BE.properties b/core/assets/bundles/bundle_nl_BE.properties index 01a6cf3f1f..8d0e615414 100644 --- a/core/assets/bundles/bundle_nl_BE.properties +++ b/core/assets/bundles/bundle_nl_BE.properties @@ -599,7 +599,7 @@ filter.option.floor2 = Secondary Floor filter.option.threshold2 = Secondary Threshold filter.option.radius = Radius filter.option.percentile = Percentile -locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: @[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable) +locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable) locales.deletelocale = Are you sure you want to delete this locale bundle? locales.applytoall = Apply Changes To All Locales locales.addtoother = Add To Other Locales @@ -2275,7 +2275,7 @@ unit.emanate.description = Builds structures to defend the Acropolis core. Repai lst.read = Read a number from a linked memory cell. lst.write = Write a number to a linked memory cell. lst.print = Add text to the print buffer.\nDoes not display anything until [accent]Print Flush[] is used. -lst.format = Replace next placeholder ("[accent]@[]") in text buffer with a value.\nExample:\n[accent]print "test @"\nformat "example" +lst.format = Replace next placeholder in text buffer with a value.\nDoes not do anything if placeholder pattern is invalid.\nPlaceholder pattern: "{[accent]number 0-9[]}"\nExample:\n[accent]print "test {0}"\nformat "example" lst.draw = Add an operation to the drawing buffer.\nDoes not display anything until [accent]Draw Flush[] is used. lst.drawflush = Flush queued [accent]Draw[] operations to a display. lst.printflush = Flush queued [accent]Print[] operations to a message block. diff --git a/core/assets/bundles/bundle_pl.properties b/core/assets/bundles/bundle_pl.properties index 0de92a7351..86cea38c99 100644 --- a/core/assets/bundles/bundle_pl.properties +++ b/core/assets/bundles/bundle_pl.properties @@ -604,7 +604,7 @@ filter.option.floor2 = Druga Podłoga filter.option.threshold2 = Drugi Próg filter.option.radius = Zasięg filter.option.percentile = Procent -locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: @[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable) +locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable) locales.deletelocale = Are you sure you want to delete this locale bundle? locales.applytoall = Apply Changes To All Locales locales.addtoother = Add To Other Locales @@ -2309,7 +2309,7 @@ unit.emanate.description = Lotnicza jednostka aministracyjna zdolna do wydobycia lst.read = Wczytuje liczbę z połączonej komórki pamięci. lst.write = Zapisuje liczbę do połączonej komórki pamięci. lst.print = Dodaje tekst do buforu drukującego.\nNie wyświetla niczego dopóki [accent]Print Flush[] nie jest użyte. -lst.format = Replace next placeholder ("[accent]@[]") in text buffer with a value.\nExample:\n[accent]print "test @"\nformat "example" +lst.format = Replace next placeholder in text buffer with a value.\nDoes not do anything if placeholder pattern is invalid.\nPlaceholder pattern: "{[accent]number 0-9[]}"\nExample:\n[accent]print "test {0}"\nformat "example" lst.draw = Dodaje operacje do buforu rysującego.\nNie wyświetla niczego dopóki [accent]Draw Flush[] nie jest użyte. lst.drawflush = Wyświetla oczekujące operacje z funkcji [accent]Draw[] na wyświetlaczu. lst.printflush = Dodaje oczekujące operacje z funkcji [accent]Print[] do bloku wiadomości. diff --git a/core/assets/bundles/bundle_pt_BR.properties b/core/assets/bundles/bundle_pt_BR.properties index 4883362261..8ac998829a 100644 --- a/core/assets/bundles/bundle_pt_BR.properties +++ b/core/assets/bundles/bundle_pt_BR.properties @@ -607,7 +607,7 @@ filter.option.floor2 = Chão secundário filter.option.threshold2 = Margem secundária filter.option.radius = Raio filter.option.percentile = Percentual -locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: @[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable) +locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable) locales.deletelocale = Are you sure you want to delete this locale bundle? locales.applytoall = Apply Changes To All Locales locales.addtoother = Add To Other Locales @@ -2308,7 +2308,7 @@ unit.emanate.description = Constrói estruturas para defender o Núcelo Acrópol lst.read = Ler um número de uma célula de memória vinculada. lst.write = Escrever um número de uma célula de memória vinculada. lst.print = Adiciona texto ao buffer de impressão.\nNão exibe nada até [accent]Print Flush[] ser usado. -lst.format = Replace next placeholder ("[accent]@[]") in text buffer with a value.\nExample:\n[accent]print "test @"\nformat "example" +lst.format = Replace next placeholder in text buffer with a value.\nDoes not do anything if placeholder pattern is invalid.\nPlaceholder pattern: "{[accent]number 0-9[]}"\nExample:\n[accent]print "test {0}"\nformat "example" lst.draw = Adicionar uma operação ao buffer de desenho.\nNão exibe nada até [accent]Draw Flush[] ser usado. lst.drawflush = Liberar operações [accent]Draw[] enfileiradas para um display. lst.printflush = Liberar operações [accent]Print[] enfileiradas para um bloco de mensagem. diff --git a/core/assets/bundles/bundle_pt_PT.properties b/core/assets/bundles/bundle_pt_PT.properties index cf29525e4c..17ca743e25 100644 --- a/core/assets/bundles/bundle_pt_PT.properties +++ b/core/assets/bundles/bundle_pt_PT.properties @@ -599,7 +599,7 @@ filter.option.floor2 = Chão secundário filter.option.threshold2 = Margem secundária filter.option.radius = Raio filter.option.percentile = Percentual -locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: @[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable) +locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable) locales.deletelocale = Are you sure you want to delete this locale bundle? locales.applytoall = Apply Changes To All Locales locales.addtoother = Add To Other Locales @@ -2275,7 +2275,7 @@ unit.emanate.description = Builds structures to defend the Acropolis core. Repai lst.read = Read a number from a linked memory cell. lst.write = Write a number to a linked memory cell. lst.print = Add text to the print buffer.\nDoes not display anything until [accent]Print Flush[] is used. -lst.format = Replace next placeholder ("[accent]@[]") in text buffer with a value.\nExample:\n[accent]print "test @"\nformat "example" +lst.format = Replace next placeholder in text buffer with a value.\nDoes not do anything if placeholder pattern is invalid.\nPlaceholder pattern: "{[accent]number 0-9[]}"\nExample:\n[accent]print "test {0}"\nformat "example" lst.draw = Add an operation to the drawing buffer.\nDoes not display anything until [accent]Draw Flush[] is used. lst.drawflush = Flush queued [accent]Draw[] operations to a display. lst.printflush = Flush queued [accent]Print[] operations to a message block. diff --git a/core/assets/bundles/bundle_ro.properties b/core/assets/bundles/bundle_ro.properties index d9e45b96ca..a0d08c50f9 100644 --- a/core/assets/bundles/bundle_ro.properties +++ b/core/assets/bundles/bundle_ro.properties @@ -606,7 +606,7 @@ filter.option.floor2 = Podea Secundară filter.option.threshold2 = Cantitate Secundară filter.option.radius = Rază filter.option.percentile = Procent -locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: @[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable) +locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable) locales.deletelocale = Are you sure you want to delete this locale bundle? locales.applytoall = Apply Changes To All Locales locales.addtoother = Add To Other Locales @@ -2292,7 +2292,7 @@ unit.emanate.description = Builds structures to defend the Acropolis core. Repai lst.read = Citește un număr dintr-o celulă de memorie conectată. lst.write = Scrie un număr într-o celulă de memorie conectată. lst.print = Adaugă text în bufferul de tipărire.\nNu tipărește decât când se execută [accent]Print Flush[]. -lst.format = Replace next placeholder ("[accent]@[]") in text buffer with a value.\nExample:\n[accent]print "test @"\nformat "example" +lst.format = Replace next placeholder in text buffer with a value.\nDoes not do anything if placeholder pattern is invalid.\nPlaceholder pattern: "{[accent]number 0-9[]}"\nExample:\n[accent]print "test {0}"\nformat "example" lst.draw = Adaugă o operație în bufferul de desenare.\nNu afișează decât când se execută [accent]Draw Flush[]. lst.drawflush = Afișează pe un monitor instrucțiunile [accent]Draw[] aflate în așteptare. lst.printflush = Tipărește într-un bloc Mesaj instrucțiunile [accent]Print[] aflate în așteptare. diff --git a/core/assets/bundles/bundle_ru.properties b/core/assets/bundles/bundle_ru.properties index c5ccfc459c..3c593f330f 100644 --- a/core/assets/bundles/bundle_ru.properties +++ b/core/assets/bundles/bundle_ru.properties @@ -606,7 +606,7 @@ filter.option.floor2 = Вторая поверхность filter.option.threshold2 = Вторичный предельный порог filter.option.radius = Радиус filter.option.percentile = Процентиль -locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: @[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable) +locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable) locales.deletelocale = Are you sure you want to delete this locale bundle? locales.applytoall = Apply Changes To All Locales locales.addtoother = Add To Other Locales @@ -1297,7 +1297,7 @@ rules.invaliddata = Invalid clipboard data. rules.hidebannedblocks = Скрыть запрещенные блоки rules.infiniteresources = Бесконечные ресурсы rules.onlydepositcore = Разрешен перенос только в ядро -rules.derelictrepair = Allow Derelict Block Repair +rules.derelictrepair = Разрешить починку покинутых построек rules.reactorexplosions = Взрывы реакторов rules.coreincinerates = Ядро сжигает избыток ресурсов rules.disableworldprocessors = Отключить мировые процессоры @@ -2294,7 +2294,7 @@ unit.emanate.description = Защищает ядро «Акрополь» от lst.read = Считывает число из соединённой ячейки памяти. lst.write = Записывает число в соединённую ячейку памяти. lst.print = Добавляет текст в текстовый буфер. Ничего не отображает, пока не будет вызван [accent]Print Flush[]. -lst.format = Replace next placeholder ("[accent]@[]") in text buffer with a value.\nExample:\n[accent]print "test @"\nformat "example" +lst.format = Replace next placeholder in text buffer with a value.\nDoes not do anything if placeholder pattern is invalid.\nPlaceholder pattern: "{[accent]number 0-9[]}"\nExample:\n[accent]print "test {0}"\nformat "example" lst.draw = Добавляет операцию в буфер отрисовки. Ничего не отображает, пока не будет вызван [accent]Draw Flush[]. lst.drawflush = Сбрасывает буфер [accent]Draw[] операций на дисплей. lst.printflush = Сбрасывает буфер [accent]Print[] операций в блок-сообщение. diff --git a/core/assets/bundles/bundle_sr.properties b/core/assets/bundles/bundle_sr.properties index 52cf175915..de821a980a 100644 --- a/core/assets/bundles/bundle_sr.properties +++ b/core/assets/bundles/bundle_sr.properties @@ -606,7 +606,7 @@ filter.option.floor2 = Drugi Pod filter.option.threshold2 = Secondary Threshold filter.option.radius = Radius filter.option.percentile = Percentile -locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: @[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable) +locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable) locales.deletelocale = Are you sure you want to delete this locale bundle? locales.applytoall = Apply Changes To All Locales locales.addtoother = Add To Other Locales @@ -2295,7 +2295,7 @@ unit.emanate.description = Gradi građevine da odbrani Veliki Grad jezgro. Popra lst.read = Čita broj iz povezane memorijske ćelije. lst.write = Piše broj u povezanu memorijsku ćeliju. lst.print = Add text to the print buffer.\nDoes not display anything until [accent]Print Flush[] is used. -lst.format = Replace next placeholder ("[accent]@[]") in text buffer with a value.\nExample:\n[accent]print "test @"\nformat "example" +lst.format = Replace next placeholder in text buffer with a value.\nDoes not do anything if placeholder pattern is invalid.\nPlaceholder pattern: "{[accent]number 0-9[]}"\nExample:\n[accent]print "test {0}"\nformat "example" lst.draw = Add an operation to the drawing buffer.\nDoes not display anything until [accent]Draw Flush[] is used. lst.drawflush = Flush queued [accent]Draw[] operations to a display. lst.printflush = Flush queued [accent]Print[] operations to a message block. diff --git a/core/assets/bundles/bundle_sv.properties b/core/assets/bundles/bundle_sv.properties index be714b7f2b..8d025a4cae 100644 --- a/core/assets/bundles/bundle_sv.properties +++ b/core/assets/bundles/bundle_sv.properties @@ -599,7 +599,7 @@ filter.option.floor2 = Secondary Floor filter.option.threshold2 = Secondary Threshold filter.option.radius = Radie filter.option.percentile = Percentile -locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: @[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable) +locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable) locales.deletelocale = Are you sure you want to delete this locale bundle? locales.applytoall = Apply Changes To All Locales locales.addtoother = Add To Other Locales @@ -2275,7 +2275,7 @@ unit.emanate.description = Builds structures to defend the Acropolis core. Repai lst.read = Read a number from a linked memory cell. lst.write = Write a number to a linked memory cell. lst.print = Add text to the print buffer.\nDoes not display anything until [accent]Print Flush[] is used. -lst.format = Replace next placeholder ("[accent]@[]") in text buffer with a value.\nExample:\n[accent]print "test @"\nformat "example" +lst.format = Replace next placeholder in text buffer with a value.\nDoes not do anything if placeholder pattern is invalid.\nPlaceholder pattern: "{[accent]number 0-9[]}"\nExample:\n[accent]print "test {0}"\nformat "example" lst.draw = Add an operation to the drawing buffer.\nDoes not display anything until [accent]Draw Flush[] is used. lst.drawflush = Flush queued [accent]Draw[] operations to a display. lst.printflush = Flush queued [accent]Print[] operations to a message block. diff --git a/core/assets/bundles/bundle_th.properties b/core/assets/bundles/bundle_th.properties index 9f5f8253b8..fa345d3212 100644 --- a/core/assets/bundles/bundle_th.properties +++ b/core/assets/bundles/bundle_th.properties @@ -606,7 +606,7 @@ filter.option.floor2 = พื้นชั้นสอง filter.option.threshold2 = เกณฑ์ชั้นสอง filter.option.radius = รัศมี filter.option.percentile = เปอร์เซ็นต์ไทล์ -locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: @[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable) +locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable) locales.deletelocale = Are you sure you want to delete this locale bundle? locales.applytoall = Apply Changes To All Locales locales.addtoother = Add To Other Locales @@ -2312,7 +2312,7 @@ unit.emanate.description = สร้างสิ่งต่างๆ เพื lst.read = อ่านเลขจากเซลล์ความจำที่เชื่อมต่อไว้ lst.write = เขียนเลขไปยังเซลล์ความจำที่เชื่อมต่อไว้ lst.print = เพิ่มข้อความไปยังคิวข้อความ\nข้อความจะยังไม่แสดงจนกว่าจะใช้คำสั่ง [accent]Print Flush[] -lst.format = Replace next placeholder ("[accent]@[]") in text buffer with a value.\nExample:\n[accent]print "test @"\nformat "example" +lst.format = Replace next placeholder in text buffer with a value.\nDoes not do anything if placeholder pattern is invalid.\nPlaceholder pattern: "{[accent]number 0-9[]}"\nExample:\n[accent]print "test {0}"\nformat "example" lst.draw = เพิ่มรูปไปยังคิวการวาด\nภาพจะยังไม่แสดงจนกว่าจะใช้คำสั่ง [accent]Draw Flush[] lst.drawflush = ปล่อยคิว [accent]Draw[] ไปยังหน้าจอลอจิกที่เชื่อมต่อไว้ lst.printflush = ปล่อยคิว [accent]Print[] ไปยังตัวเก็บข้อความที่เชื่อมต่อไว้ diff --git a/core/assets/bundles/bundle_tk.properties b/core/assets/bundles/bundle_tk.properties index cca3894127..63422c96b9 100644 --- a/core/assets/bundles/bundle_tk.properties +++ b/core/assets/bundles/bundle_tk.properties @@ -599,7 +599,7 @@ filter.option.floor2 = Secondary Floor filter.option.threshold2 = Secondary Threshold filter.option.radius = Radius filter.option.percentile = Percentile -locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: @[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable) +locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable) locales.deletelocale = Are you sure you want to delete this locale bundle? locales.applytoall = Apply Changes To All Locales locales.addtoother = Add To Other Locales @@ -2275,7 +2275,7 @@ unit.emanate.description = Builds structures to defend the Acropolis core. Repai lst.read = Read a number from a linked memory cell. lst.write = Write a number to a linked memory cell. lst.print = Add text to the print buffer.\nDoes not display anything until [accent]Print Flush[] is used. -lst.format = Replace next placeholder ("[accent]@[]") in text buffer with a value.\nExample:\n[accent]print "test @"\nformat "example" +lst.format = Replace next placeholder in text buffer with a value.\nDoes not do anything if placeholder pattern is invalid.\nPlaceholder pattern: "{[accent]number 0-9[]}"\nExample:\n[accent]print "test {0}"\nformat "example" lst.draw = Add an operation to the drawing buffer.\nDoes not display anything until [accent]Draw Flush[] is used. lst.drawflush = Flush queued [accent]Draw[] operations to a display. lst.printflush = Flush queued [accent]Print[] operations to a message block. diff --git a/core/assets/bundles/bundle_tr.properties b/core/assets/bundles/bundle_tr.properties index 3df7fa80c7..ebc53ffe12 100644 --- a/core/assets/bundles/bundle_tr.properties +++ b/core/assets/bundles/bundle_tr.properties @@ -606,7 +606,7 @@ filter.option.floor2 = İkincil Duvar filter.option.threshold2 = İkincil Eşik filter.option.radius = Yarıçap filter.option.percentile = Yüzdelik -locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: @[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable) +locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable) locales.deletelocale = Are you sure you want to delete this locale bundle? locales.applytoall = Apply Changes To All Locales locales.addtoother = Add To Other Locales @@ -2292,7 +2292,7 @@ unit.emanate.description = Akropolis Merkezini korumak için binalar inşa eder. lst.read = Bağlı hafıza kutusundaki numarayı okur. lst.write = Bağlı hafıza kutuaundaki numaraya yazar. lst.print = Yazı yazar. -lst.format = Replace next placeholder ("[accent]@[]") in text buffer with a value.\nExample:\n[accent]print "test @"\nformat "example" +lst.format = Replace next placeholder in text buffer with a value.\nDoes not do anything if placeholder pattern is invalid.\nPlaceholder pattern: "{[accent]number 0-9[]}"\nExample:\n[accent]print "test {0}"\nformat "example" lst.draw = Ekrana Çizer. lst.drawflush = Ekrana Çizimi Aktarır. lst.printflush = Mesaj bloğuna metnini aktarır, diff --git a/core/assets/bundles/bundle_uk_UA.properties b/core/assets/bundles/bundle_uk_UA.properties index 6f94bbdf57..94e234dfa3 100644 --- a/core/assets/bundles/bundle_uk_UA.properties +++ b/core/assets/bundles/bundle_uk_UA.properties @@ -609,7 +609,7 @@ filter.option.floor2 = Друга поверхня filter.option.threshold2 = Вторинний граничний поріг filter.option.radius = Радіус filter.option.percentile = Спад -locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: @[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable) +locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable) locales.deletelocale = Are you sure you want to delete this locale bundle? locales.applytoall = Apply Changes To All Locales locales.addtoother = Add To Other Locales @@ -2319,7 +2319,7 @@ unit.emanate.description = Англійська назва: Emanate\nБудує lst.read = Зчитує число із з’єднаної комірки пам’яті. lst.write = Записує числу у з’єднану комірку пам’яті. lst.print = Додайте текст до буфера друку.\nНічого не відображає, поки [accent]Print Flush[] використовується. -lst.format = Replace next placeholder ("[accent]@[]") in text buffer with a value.\nExample:\n[accent]print "test @"\nformat "example" +lst.format = Replace next placeholder in text buffer with a value.\nDoes not do anything if placeholder pattern is invalid.\nPlaceholder pattern: "{[accent]number 0-9[]}"\nExample:\n[accent]print "test {0}"\nformat "example" lst.draw = Додає операцію до буфера рисунка.\nНічого не відображає, поки [accent]Draw Flush[] використовується. lst.drawflush = Скидає буфер операцій [accent]Draw[] на дисплей. lst.printflush = Скидає буфер операцій [accent]Print[] у блок «Повідомлення». diff --git a/core/assets/bundles/bundle_vi.properties b/core/assets/bundles/bundle_vi.properties index 931daa4dd9..7d74309dec 100644 --- a/core/assets/bundles/bundle_vi.properties +++ b/core/assets/bundles/bundle_vi.properties @@ -607,7 +607,7 @@ filter.option.floor2 = Nền phụ filter.option.threshold2 = Ngưỡng phụ filter.option.radius = Bán kính filter.option.percentile = Phần trăm -locales.info = Tại đây, bạn có thể thêm gói ngôn ngữ cho ngôn ngữ cụ thể vào bản đồ của bạn. Trong gói ngôn ngữ, mỗi thuộc tính có tên và giá trị. Những thuộc tính này có thể được sử dụng bởi Bộ xử lý thế giới và Mục tiêu nhiệm vụ bằng tên của chúng. Chúng hỗ trợ định dạng văn bản (thay thế kí tự giữ chỗ bằng giá trị thực tế).\n\n[cyan]Ví dụ thuộc tính:\n[]tên: [accent]timer[]\nvalue: [accent]Bộ đếm thời gian ví dụ, thời gian còn lại: @[]\n\n[cyan]Cách dùng:\n[]Đặt làm văn bản cho Mục tiêu nhiệm vụ: [accent]@timer\n\n[]In nó trong Bộ xử lý thế giới:\n[accent]localeprint "timer"\nformat time\n[gray](với time là biến được tính toán riêng biệt) +locales.info = Tại đây, bạn có thể thêm gói ngôn ngữ cho ngôn ngữ cụ thể vào bản đồ của bạn. Trong gói ngôn ngữ, mỗi thuộc tính có tên và giá trị. Những thuộc tính này có thể được sử dụng bởi Bộ xử lý thế giới và Mục tiêu nhiệm vụ bằng tên của chúng. Chúng hỗ trợ định dạng văn bản (thay thế kí tự giữ chỗ bằng giá trị thực tế).\n\n[cyan]Ví dụ thuộc tính:\n[]tên: [accent]timer[]\nvalue: [accent]Bộ đếm thời gian ví dụ, thời gian còn lại: {0}[]\n\n[cyan]Cách dùng:\n[]Đặt làm văn bản cho Mục tiêu nhiệm vụ: [accent]@timer\n\n[]In nó trong Bộ xử lý thế giới:\n[accent]localeprint "timer"\nformat time\n[gray](với time là biến được tính toán riêng biệt) locales.deletelocale = Bạn có chắc muốn xóa gói ngôn ngữ này? locales.applytoall = Áp dụng thay đổi cho tất cả gói ngôn ngữ locales.addtoother = Thêm vào các gói ngôn ngữ khác diff --git a/core/assets/bundles/bundle_zh_CN.properties b/core/assets/bundles/bundle_zh_CN.properties index 7386027dfa..9cc26e8dfd 100644 --- a/core/assets/bundles/bundle_zh_CN.properties +++ b/core/assets/bundles/bundle_zh_CN.properties @@ -610,7 +610,7 @@ filter.option.floor2 = 内层地形 filter.option.threshold2 = 内层比例 filter.option.radius = 半径 filter.option.percentile = 百分比 -locales.info = 在这里,您可以为特定语言添加本地化语言包到您的地图中。在本地化语言包中,每个文本属性都有一个名称和一个值。这些文本属性可以由世界处理器和游戏目标使用它们的名称。它们支持文本格式化(用实际值替换占位符)。\n\n[cyan]示例文本属性:\n[]名称: [accent]timer[]值: [accent]示例计时器, 剩余时间: @[]\n\n[cyan]用法:\n[]将其设置为目标的文本: [accent]@timer\n\n[]在世界处理器中打印它:\n[accent]localeprint "timer"\n格式化时间\n[gray](时间是一个单独计算的变量) +locales.info = 在这里,您可以为特定语言添加本地化语言包到您的地图中。在本地化语言包中,每个文本属性都有一个名称和一个值。这些文本属性可以由世界处理器和游戏目标使用它们的名称。它们支持文本格式化(用实际值替换占位符)。\n\n[cyan]示例文本属性:\n[]名称: [accent]timer[]值: [accent]示例计时器, 剩余时间: {0}[]\n\n[cyan]用法:\n[]将其设置为目标的文本: [accent]@timer\n\n[]在世界处理器中打印它:\n[accent]localeprint "timer"\n格式化时间\n[gray](时间是一个单独计算的变量) locales.deletelocale = 您确定要删除该本地化语言包吗? locales.applytoall = 将更改应用于所有本地化语言包 locales.addtoother = 添加到其他本地化语言包 @@ -2319,7 +2319,7 @@ unit.emanate.description = 保护卫城核心,可建造建筑。 使用一对 lst.read = 从连接的内存读取数字 lst.write = 向连接的内存写入数字 lst.print = 添加文字到打印缓存\n使用[accent]Print Flush[]后才会真正显示 -lst.format = Replace next placeholder ("[accent]@[]") in text buffer with a value.\nExample:\n[accent]print "test @"\nformat "example" +lst.format = Replace next placeholder in text buffer with a value.\nDoes not do anything if placeholder pattern is invalid.\nPlaceholder pattern: "{[accent]number 0-9[]}"\nExample:\n[accent]print "test {0}"\nformat "example" lst.draw = 添加绘图操作到绘图缓存\n使用[accent]Draw Flush[]后才会真正显示 lst.drawflush = 将绘图缓存中的[accent]Draw[]队列刷新到显示屏 lst.printflush = 将打印缓存中的[accent]Print[]队列刷新到信息板 diff --git a/core/assets/bundles/bundle_zh_TW.properties b/core/assets/bundles/bundle_zh_TW.properties index 85afd5a50f..5330002f2f 100644 --- a/core/assets/bundles/bundle_zh_TW.properties +++ b/core/assets/bundles/bundle_zh_TW.properties @@ -607,7 +607,7 @@ filter.option.floor2 = 次要地板 filter.option.threshold2 = 次要閾值 filter.option.radius = 半徑 filter.option.percentile = 百分比 -locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: @[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable) +locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable) locales.deletelocale = Are you sure you want to delete this locale bundle? locales.applytoall = Apply Changes To All Locales locales.addtoother = Add To Other Locales @@ -2304,7 +2304,7 @@ unit.emanate.description = Builds structures to defend the Acropolis core. Repai lst.read = [accent]讀取[]記憶體中的一項數值 lst.write = [accent]寫入[]一項數值到記憶體中 lst.print = 將文字加入輸出的暫存中,搭配[accent]Print Flush[], [accent]Flush message[]使用 -lst.format = Replace next placeholder ("[accent]@[]") in text buffer with a value.\nExample:\n[accent]print "test @"\nformat "example" +lst.format = Replace next placeholder in text buffer with a value.\nDoes not do anything if placeholder pattern is invalid.\nPlaceholder pattern: "{[accent]number 0-9[]}"\nExample:\n[accent]print "test {0}"\nformat "example" lst.draw = 將圖形加入顯示的暫存中,搭配[accent]Draw Flush[]使用 lst.drawflush = 將所有暫存的[accent]Draw[]指令推到顯示器上 lst.printflush = 將所有暫存的[accent]Print[]指令推到訊息板上 diff --git a/core/src/mindustry/editor/MapLocalesDialog.java b/core/src/mindustry/editor/MapLocalesDialog.java index 17cc9f2764..47d902639c 100644 --- a/core/src/mindustry/editor/MapLocalesDialog.java +++ b/core/src/mindustry/editor/MapLocalesDialog.java @@ -5,7 +5,6 @@ import arc.func.*; import arc.graphics.*; import arc.scene.style.*; import arc.scene.ui.*; -import arc.scene.ui.Button.*; import arc.scene.ui.TextButton.*; import arc.scene.ui.layout.*; import arc.scene.utils.*; diff --git a/core/src/mindustry/ui/dialogs/CustomRulesDialog.java b/core/src/mindustry/ui/dialogs/CustomRulesDialog.java index 1091c74c08..40f7e1a642 100644 --- a/core/src/mindustry/ui/dialogs/CustomRulesDialog.java +++ b/core/src/mindustry/ui/dialogs/CustomRulesDialog.java @@ -3,6 +3,7 @@ package mindustry.ui.dialogs; import arc.*; import arc.func.*; import arc.graphics.*; +import arc.input.KeyCode; import arc.scene.style.*; import arc.scene.ui.*; import arc.scene.ui.ImageButton.*; @@ -30,6 +31,12 @@ public class CustomRulesDialog extends BaseDialog{ private Table main; private Prov resetter; private LoadoutDialog loadoutDialog; + public Seq categories; + public Table current; + public Seq categoryNames; + public String currentName; + public String ruleSearch = ""; + public Seq additionalSetup; // for modding to easily add new rules public CustomRulesDialog(){ super("@mode.custom"); @@ -40,6 +47,12 @@ public class CustomRulesDialog extends BaseDialog{ shown(this::setup); addCloseButton(); + additionalSetup = new Seq<>(); + categories = new Seq<>(); + categoryNames = new Seq<>(); + currentName = ""; + ruleSearch = ""; + buttons.button("@edit", Icon.pencil, () -> { BaseDialog dialog = new BaseDialog("@waves.edit"); dialog.addCloseButton(); @@ -176,13 +189,26 @@ public class CustomRulesDialog extends BaseDialog{ } void setup(){ + categories.clear(); cont.clear(); + cont.table(t -> { + t.add("@search").padRight(10); + t.field(ruleSearch, text -> + ruleSearch = text.trim().replaceAll(" +", " ").toLowerCase() + ).grow().pad(8).get().keyDown(KeyCode.enter, this::setup); + t.button(Icon.cancel, Styles.emptyi, () -> { + ruleSearch = ""; + setup(); + }).padLeft(10f).size(35f); + t.button(Icon.zoom, Styles.emptyi, this::setup).size(54f); + }).row(); cont.pane(m -> main = m).scrollX(false); main.margin(10f); - main.left().defaults().fillX().left().pad(5); + main.left().defaults().fillX().left(); main.row(); - title("@rules.title.waves"); + + category("waves"); check("@rules.waves", b -> rules.waves = b, () -> rules.waves); check("@rules.wavesending", b -> rules.waveSending = b, () -> rules.waveSending, () -> rules.waves); check("@rules.wavetimer", b -> rules.waveTimer = b, () -> rules.waveTimer, () -> rules.waves); @@ -195,7 +221,8 @@ public class CustomRulesDialog extends BaseDialog{ } number("@rules.dropzoneradius", false, f -> rules.dropZoneRadius = f * tilesize, () -> rules.dropZoneRadius / tilesize, () -> rules.waves); - title("@rules.title.resourcesbuilding"); + + category("resourcesbuilding"); check("@rules.infiniteresources", b -> { rules.infiniteResources = b; @@ -207,7 +234,7 @@ public class CustomRulesDialog extends BaseDialog{ setup(); } }, () -> rules.infiniteResources); - check("@rules.onlydepositcore", b -> rules.onlyDepositCore = b, () -> rules.onlyDepositCore); + withInfo("@rules.onlydepositcore.info", () -> check("@rules.onlydepositcore", b -> rules.onlyDepositCore = b, () -> rules.onlyDepositCore)); check("@rules.derelictrepair", b -> rules.derelictRepair = b, () -> rules.derelictRepair); check("@rules.reactorexplosions", b -> rules.reactorExplosions = b, () -> rules.reactorExplosions); check("@rules.schematic", b -> rules.schematicsAllowed = b, () -> rules.schematicsAllowed); @@ -220,18 +247,23 @@ public class CustomRulesDialog extends BaseDialog{ number("@rules.blockhealthmultiplier", f -> rules.blockHealthMultiplier = f, () -> rules.blockHealthMultiplier); number("@rules.blockdamagemultiplier", f -> rules.blockDamageMultiplier = f, () -> rules.blockDamageMultiplier); - main.button("@configure", - () -> loadoutDialog.show(999999, rules.loadout, - i -> true, - () -> rules.loadout.clear().add(new ItemStack(Items.copper, 100)), - () -> {}, () -> {} - )).left().width(300f).row(); + if(Core.bundle.get("configure").toLowerCase().contains(ruleSearch)){ + current.button("@configure", + () -> loadoutDialog.show(999999, rules.loadout, + i -> true, + () -> rules.loadout.clear().add(new ItemStack(Items.copper, 100)), + () -> {}, () -> {} + )).left().width(300f).row(); + } - main.button("@bannedblocks", () -> showBanned("@bannedblocks", ContentType.block, rules.bannedBlocks, Block::canBeBuilt)).left().width(300f).row(); + if(Core.bundle.get("bannedblocks").toLowerCase().contains(ruleSearch)){ + current.button("@bannedblocks", () -> showBanned("@bannedblocks", ContentType.block, rules.bannedBlocks, Block::canBeBuilt)).left().width(300f).row(); + } check("@rules.hidebannedblocks", b -> rules.hideBannedBlocks = b, () -> rules.hideBannedBlocks); check("@bannedblocks.whitelist", b -> rules.blockWhitelist = b, () -> rules.blockWhitelist); - title("@rules.title.unit"); + + category("unit"); check("@rules.unitcapvariable", b -> rules.unitCapVariable = b, () -> rules.unitCapVariable); check("@rules.unitpayloadsexplode", b -> rules.unitPayloadsExplode = b, () -> rules.unitPayloadsExplode); numberi("@rules.unitcap", f -> rules.unitCap = f, () -> rules.unitCap, -999, 999); @@ -241,17 +273,21 @@ public class CustomRulesDialog extends BaseDialog{ number("@rules.unitcostmultiplier", f -> rules.unitCostMultiplier = f, () -> rules.unitCostMultiplier); number("@rules.unithealthmultiplier", f -> rules.unitHealthMultiplier = f, () -> rules.unitHealthMultiplier); - main.button("@bannedunits", () -> showBanned("@bannedunits", ContentType.unit, rules.bannedUnits, u -> !u.isHidden())).left().width(300f).row(); + if(Core.bundle.get("bannedunits").toLowerCase().contains(ruleSearch)){ + current.button("@bannedunits", () -> showBanned("@bannedunits", ContentType.unit, rules.bannedUnits, u -> !u.isHidden())).left().width(300f).row(); + } check("@bannedunits.whitelist", b -> rules.unitWhitelist = b, () -> rules.unitWhitelist); - title("@rules.title.enemy"); + + category("enemy"); check("@rules.attack", b -> rules.attackMode = b, () -> rules.attackMode); check("@rules.corecapture", b -> rules.coreCapture = b, () -> rules.coreCapture); - check("@rules.placerangecheck", b -> rules.placeRangeCheck = b, () -> rules.placeRangeCheck); + withInfo("@rules.placerangecheck.info",() -> check("@rules.placerangecheck", b -> rules.placeRangeCheck = b, () -> rules.placeRangeCheck)); check("@rules.polygoncoreprotection", b -> rules.polygonCoreProtection = b, () -> rules.polygonCoreProtection); number("@rules.enemycorebuildradius", f -> rules.enemyCoreBuildRadius = f * tilesize, () -> Math.min(rules.enemyCoreBuildRadius / tilesize, 200), () -> !rules.polygonCoreProtection); - title("@rules.title.environment"); + + category("environment"); check("@rules.explosions", b -> rules.damageExplosions = b, () -> rules.damageExplosions); check("@rules.fire", b -> rules.fire = b, () -> rules.fire); check("@rules.fog", b -> rules.fog = b, () -> rules.fog); @@ -267,63 +303,70 @@ public class CustomRulesDialog extends BaseDialog{ number("@rules.solarmultiplier", f -> rules.solarMultiplier = f, () -> rules.solarMultiplier); - main.button(b -> { - b.left(); - b.table(Tex.pane, in -> { - in.stack(new Image(Tex.alphaBg), new Image(Tex.whiteui){{ - update(() -> setColor(rules.ambientLight)); - }}).grow(); - }).margin(4).size(50f).padRight(10); - b.add("@rules.ambientlight"); - }, () -> ui.picker.show(rules.ambientLight, rules.ambientLight::set)).left().width(250f).row(); + if(Core.bundle.get("rules.ambientlight").toLowerCase().contains(ruleSearch)){ + current.button(b -> { + b.left(); + b.table(Tex.pane, in -> { + in.stack(new Image(Tex.alphaBg), new Image(Tex.whiteui){{ + update(() -> setColor(rules.ambientLight)); + }}).grow(); + }).margin(4).size(50f).padRight(10); + b.add("@rules.ambientlight"); + }, () -> ui.picker.show(rules.ambientLight, rules.ambientLight::set)).left().width(250f).row(); + } - main.button("@rules.weather", this::weatherDialog).width(250f).left().row(); + if(Core.bundle.get("rules.weather").toLowerCase().contains(ruleSearch)){ + current.button("@rules.weather", this::weatherDialog).width(250f).left().row(); + } - title("@rules.title.planet"); - main.table(Tex.button, t -> { - t.margin(10f); - var group = new ButtonGroup<>(); - var style = Styles.flatTogglet; + category("planet"); + if(Core.bundle.get("rules.title.planet").toLowerCase().contains(ruleSearch)){ + current.table(Tex.button, t -> { + t.margin(10f); + var group = new ButtonGroup<>(); + var style = Styles.flatTogglet; - t.defaults().size(140f, 50f); + t.defaults().size(140f, 50f); - for(Planet planet : content.planets().select(p -> p.accessible && p.visible && p.isLandable())){ - t.button(planet.localizedName, style, () -> { - planet.applyRules(rules); - }).group(group).checked(b -> rules.planet == planet); + for(Planet planet : content.planets().select(p -> p.accessible && p.visible && p.isLandable())){ + t.button(planet.localizedName, style, () -> { + planet.applyRules(rules); + }).group(group).checked(b -> rules.planet == planet); - if(t.getChildren().size % 3 == 0){ - t.row(); + if(t.getChildren().size % 3 == 0){ + t.row(); + } } - } - t.button("@rules.anyenv", style, () -> { - rules.env = Vars.defaultEnv; - rules.hiddenBuildItems.clear(); - rules.planet = Planets.sun; - }).group(group).checked(b -> rules.planet == Planets.sun); - }).left().fill(false).expand(false, false).row(); + t.button("@rules.anyenv", style, () -> { + rules.env = Vars.defaultEnv; + rules.hiddenBuildItems.clear(); + rules.planet = Planets.sun; + }).group(group).checked(b -> rules.planet == Planets.sun); + }).left().fill(false).expand(false, false).row(); + } - title("@rules.title.teams"); + category("teams"); team("@rules.playerteam", t -> rules.defaultTeam = t, () -> rules.defaultTeam); team("@rules.enemyteam", t -> rules.waveTeam = t, () -> rules.waveTeam); for(Team team : Team.baseTeams){ boolean[] shown = {false}; - Table wasMain = main; + Table wasCurrent = current; - main.button(team.coloredName(), Icon.downOpen, Styles.togglet, () -> { + Table teamRules = new Table(); // just button and collapser in one table + teamRules.button(team.coloredName(), Icon.downOpen, Styles.togglet, () -> { shown[0] = !shown[0]; }).marginLeft(14f).width(260f).height(55f).update(t -> { ((Image)t.getChildren().get(1)).setDrawable(shown[0] ? Icon.upOpen : Icon.downOpen); t.setChecked(shown[0]); - }).row(); + }).left().padBottom(2f).row(); - main.collapser(t -> { - t.left().defaults().fillX().left().pad(5); - main = t; + teamRules.collapser(c -> { + c.left().defaults().fillX().left().pad(5); + current = c; TeamRule teams = rules.teams.get(team); number("@rules.blockhealthmultiplier", f -> teams.blockHealthMultiplier = f, () -> teams.blockHealthMultiplier); @@ -347,13 +390,42 @@ public class CustomRulesDialog extends BaseDialog{ number("@rules.unitcostmultiplier", f -> teams.unitCostMultiplier = f, () -> teams.unitCostMultiplier); number("@rules.unithealthmultiplier", f -> teams.unitHealthMultiplier = f, () -> teams.unitHealthMultiplier); - main = wasMain; - }, () -> shown[0]).growX().row(); + if(!current.hasChildren()){ + teamRules.clear(); + }else{ + wasCurrent.add(teamRules).row(); + } + + current = wasCurrent; + }, () -> shown[0]).left().growX().row(); + } + + additionalSetup.each(Runnable::run); + + for(var i = 0; i < categories.size; i++){ + addToMain(categories.get(i), Core.bundle.get("rules.title." + categoryNames.get(i))); } } - void team(String text, Cons cons, Prov prov){ - main.table(t -> { + public void category(String name){ + current = new Table(); + current.left().defaults().fillX().left().pad(5); + currentName = name; + categories.add(current); + categoryNames.add(currentName); + } + + void addToMain(Table category, String title){ + if(category.hasChildren()){ + main.add(title).color(Pal.accent).padTop(20).padRight(100f).padBottom(-3).fillX().left().pad(5).row(); + main.image().color(Pal.accent).height(3f).padRight(100f).padBottom(20).fillX().left().pad(5).row(); + main.add(category).row(); + } + } + + public void team(String text, Cons cons, Prov prov){ + if(!Core.bundle.get(text.substring(1)).toLowerCase().contains(ruleSearch)) return; + current.table(t -> { t.left(); t.add(text).left().padRight(5); @@ -365,28 +437,29 @@ public class CustomRulesDialog extends BaseDialog{ }).padTop(0).row(); } - void number(String text, Floatc cons, Floatp prov){ + public void number(String text, Floatc cons, Floatp prov){ number(text, false, cons, prov, () -> true, 0, Float.MAX_VALUE); } - void number(String text, Floatc cons, Floatp prov, float min, float max){ + public void number(String text, Floatc cons, Floatp prov, float min, float max){ number(text, false, cons, prov, () -> true, min, max); } - void number(String text, boolean integer, Floatc cons, Floatp prov, Boolp condition){ + public void number(String text, boolean integer, Floatc cons, Floatp prov, Boolp condition){ number(text, integer, cons, prov, condition, 0, Float.MAX_VALUE); } - void number(String text, Floatc cons, Floatp prov, Boolp condition){ + public void number(String text, Floatc cons, Floatp prov, Boolp condition){ number(text, false, cons, prov, condition, 0, Float.MAX_VALUE); } - void numberi(String text, Intc cons, Intp prov, int min, int max){ + public void numberi(String text, Intc cons, Intp prov, int min, int max){ numberi(text, cons, prov, () -> true, min, max); } - void numberi(String text, Intc cons, Intp prov, Boolp condition, int min, int max){ - main.table(t -> { + public void numberi(String text, Intc cons, Intp prov, Boolp condition, int min, int max){ + if(!Core.bundle.get(text.substring(1)).toLowerCase().contains(ruleSearch)) return; + current.table(t -> { t.left(); t.add(text).left().padRight(5) .update(a -> a.setColor(condition.get() ? Color.white : Color.gray)); @@ -397,8 +470,9 @@ public class CustomRulesDialog extends BaseDialog{ }).padTop(0).row(); } - void number(String text, boolean integer, Floatc cons, Floatp prov, Boolp condition, float min, float max){ - main.table(t -> { + public void number(String text, boolean integer, Floatc cons, Floatp prov, Boolp condition, float min, float max){ + if(!Core.bundle.get(text.substring(1)).toLowerCase().contains(ruleSearch)) return; + current.table(t -> { t.left(); t.add(text).left().padRight(5) .update(a -> a.setColor(condition.get() ? Color.white : Color.gray)); @@ -407,23 +481,34 @@ public class CustomRulesDialog extends BaseDialog{ .update(a -> a.setDisabled(!condition.get())) .valid(f -> Strings.canParsePositiveFloat(f) && Strings.parseFloat(f) >= min && Strings.parseFloat(f) <= max).width(120f).left(); }).padTop(0); - main.row(); + current.row(); } - void check(String text, Boolc cons, Boolp prov){ + public void check(String text, Boolc cons, Boolp prov){ check(text, cons, prov, () -> true); } - void check(String text, Boolc cons, Boolp prov, Boolp condition){ - main.check(text, cons).checked(prov.get()).update(a -> a.setDisabled(!condition.get())).padRight(100f).get().left(); - main.row(); + public void check(String text, Boolc cons, Boolp prov, Boolp condition){ + if(!Core.bundle.get(text.substring(1)).toLowerCase().contains(ruleSearch)) return; + current.check(text, cons).checked(prov.get()).update(a -> a.setDisabled(!condition.get())).padRight(100f).get().left(); + current.row(); } - void title(String text){ - main.add(text).color(Pal.accent).padTop(20).padRight(100f).padBottom(-3); - main.row(); - main.image().color(Pal.accent).height(3f).padRight(100f).padBottom(20); - main.row(); + public void withInfo(String info, Runnable add){ + Table wasCurrent = current; + current = new Table(); + current.left().defaults().fillX().left(); + + current.button(Icon.infoSmall, () -> ui.showInfo(info)).size(32f).padRight(10f); + add.run(); + + // rule does not match search pattern (runnable returned without adding anything) + if(current.getCells().size < 2){ + current.clear(); + }else{ + wasCurrent.add(current).row(); + } + current = wasCurrent; } Cell field(Table table, float value, Floatc setter){