mirror of
https://github.com/curioustorvald/Terrarum.git
synced 2026-03-09 21:31:51 +09:00
lang updater
This commit is contained in:
@@ -5,7 +5,7 @@ import net.torvald.terrarum.Terrarum
|
||||
import net.torvald.terrarum.console.ConsoleCommand
|
||||
import net.torvald.terrarum.console.Echo
|
||||
import net.torvald.terrarum.modulebasegame.Ingame
|
||||
import net.torvald.terrarum.serialise.SavegameWriter
|
||||
import net.torvald.terrarum.utils.JsonWriter
|
||||
import java.io.BufferedWriter
|
||||
import java.io.FileWriter
|
||||
import java.io.IOException
|
||||
@@ -17,7 +17,7 @@ internal object GsonTest : ConsoleCommand {
|
||||
override fun execute(args: Array<String>) {
|
||||
if (args.size == 2) {
|
||||
|
||||
val jsonBuilder = SavegameWriter.getJsonBuilder()
|
||||
val jsonBuilder = JsonWriter.getJsonBuilder()
|
||||
|
||||
|
||||
val jsonString = jsonBuilder.toJson((Terrarum.ingame!! as Ingame).actorNowPlaying)
|
||||
|
||||
@@ -8,11 +8,11 @@ import com.badlogic.gdx.graphics.glutils.ShapeRenderer
|
||||
import net.torvald.terrarum.*
|
||||
import net.torvald.terrarum.AppLoader.printdbg
|
||||
import net.torvald.terrarum.Terrarum.gamepadLabelEast
|
||||
import net.torvald.terrarum.Terrarum.gamepadLabelLEFTRIGHT
|
||||
import net.torvald.terrarum.Terrarum.gamepadLabelLStick
|
||||
import net.torvald.terrarum.Terrarum.gamepadLabelLT
|
||||
import net.torvald.terrarum.Terrarum.gamepadLabelNorth
|
||||
import net.torvald.terrarum.Terrarum.gamepadLabelRIGHT
|
||||
import net.torvald.terrarum.Terrarum.gamepadLabelRStick
|
||||
import net.torvald.terrarum.Terrarum.gamepadLabelRT
|
||||
import net.torvald.terrarum.Terrarum.gamepadLabelStart
|
||||
import net.torvald.terrarum.Terrarum.gamepadLabelWest
|
||||
import net.torvald.terrarum.gameactors.ActorWBMovable
|
||||
@@ -57,7 +57,7 @@ class UIInventoryFull(
|
||||
internal val catArrangement: IntArray = intArrayOf(9,6,7,1,0,2,3,4,5,8)
|
||||
|
||||
|
||||
private val SP = "${0x3000.toChar()}${0x3000.toChar()}"
|
||||
private val SP = "${0x3000.toChar()} "
|
||||
val listControlHelp: String
|
||||
get() = if (AppLoader.environment == RunningEnvironment.PC)
|
||||
"${0xe031.toChar()} ${Lang["GAME_ACTION_CLOSE"]}$SP" +
|
||||
@@ -66,7 +66,8 @@ class UIInventoryFull(
|
||||
"${0xe034.toChar()} ${Lang["GAME_INVENTORY_DROP"]}"
|
||||
else
|
||||
"$gamepadLabelStart ${Lang["GAME_ACTION_CLOSE"]}$SP" +
|
||||
"$gamepadLabelLEFTRIGHT ${"$ Section"}$SP" +
|
||||
"$gamepadLabelLT ${Lang["CONTEXT_ITEM_MAP"]}$SP" +
|
||||
"$gamepadLabelRT ${Lang["MENU_LABEL_MENU"]}$SP" +
|
||||
"$gamepadLabelWest ${Lang["GAME_INVENTORY_USE"]}$SP" +
|
||||
"$gamepadLabelNorth$gamepadLabelLStick ${Lang["GAME_INVENTORY_REGISTER"]}$SP" +
|
||||
"$gamepadLabelEast ${Lang["GAME_INVENTORY_DROP"]}"
|
||||
@@ -77,13 +78,13 @@ class UIInventoryFull(
|
||||
else
|
||||
"$gamepadLabelStart ${Lang["GAME_ACTION_CLOSE"]}$SP" +
|
||||
"$gamepadLabelRStick ${Lang["GAME_ACTION_MOVE_VERB"]}$SP" +
|
||||
"$gamepadLabelRIGHT ${Lang["GAME_INVENTORY"]}"
|
||||
"$gamepadLabelRT ${Lang["GAME_INVENTORY"]}"
|
||||
val gameMenuControlHelp: String
|
||||
get() = if (AppLoader.environment == RunningEnvironment.PC)
|
||||
"${0xe031.toChar()} ${Lang["GAME_ACTION_CLOSE"]}"
|
||||
else
|
||||
"$gamepadLabelStart ${Lang["GAME_ACTION_CLOSE"]}$SP" +
|
||||
"${0xe068.toChar()} ${Lang["GAME_INVENTORY"]}"
|
||||
"$gamepadLabelLT ${Lang["GAME_INVENTORY"]}"
|
||||
val controlHelpHeight = Terrarum.fontGame.lineHeight
|
||||
|
||||
private var encumbrancePerc = 0f
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package net.torvald.terrarum.serialise
|
||||
|
||||
import com.badlogic.gdx.Gdx
|
||||
import com.google.gson.GsonBuilder
|
||||
import net.torvald.terrarum.AppLoader
|
||||
import net.torvald.terrarum.Terrarum
|
||||
import net.torvald.terrarum.gameactors.AVKey
|
||||
@@ -10,6 +9,7 @@ import net.torvald.terrarum.itemproperties.GameItem
|
||||
import net.torvald.terrarum.itemproperties.ItemCodex
|
||||
import net.torvald.terrarum.modulecomputers.virtualcomputer.tvd.*
|
||||
import net.torvald.terrarum.roundInt
|
||||
import net.torvald.terrarum.utils.JsonWriter.getJsonBuilder
|
||||
import java.io.File
|
||||
import java.nio.charset.Charset
|
||||
|
||||
@@ -133,23 +133,6 @@ object SavegameWriter {
|
||||
TODO()
|
||||
}
|
||||
|
||||
fun getJsonBuilder() = if (AppLoader.IS_DEVELOPMENT_BUILD) {
|
||||
GsonBuilder()
|
||||
.setPrettyPrinting()
|
||||
|
||||
.serializeNulls()
|
||||
.disableHtmlEscaping()
|
||||
.enableComplexMapKeySerialization()
|
||||
.create()
|
||||
}
|
||||
else {
|
||||
GsonBuilder()
|
||||
.serializeNulls()
|
||||
.disableHtmlEscaping()
|
||||
.enableComplexMapKeySerialization()
|
||||
.create()
|
||||
}
|
||||
|
||||
private fun serialiseActor(a: Actor): ByteArray64 {
|
||||
val gson = getJsonBuilder().toJson(a).toByteArray(charset)
|
||||
return ByteArray64.fromByteArray(gson)
|
||||
|
||||
@@ -107,83 +107,83 @@ internal object WriteLayerDataZip {
|
||||
|
||||
wb(PAYLOAD_HEADER); wb("TERR".toByteArray())
|
||||
wi48(world.width * world.height * 3L / 2)
|
||||
deflater = DeflaterOutputStream(outputStream, Deflater(Deflater.BEST_COMPRESSION), true)
|
||||
deflater = DeflaterOutputStream(outputStream, Deflater(Deflater.BEST_COMPRESSION, true), false)
|
||||
deflater.write(world.terrainArray)
|
||||
deflater.write(world.layerTerrainLowBits.data)
|
||||
deflater.finish()
|
||||
deflater.flush(); deflater.finish()
|
||||
wb(PAYLOAD_FOOTER)
|
||||
|
||||
// WALL payload
|
||||
wb(PAYLOAD_HEADER); wb("WALL".toByteArray())
|
||||
wi48(world.width * world.height * 3L / 2)
|
||||
deflater = DeflaterOutputStream(outputStream, Deflater(Deflater.BEST_COMPRESSION), true)
|
||||
deflater = DeflaterOutputStream(outputStream, Deflater(Deflater.BEST_COMPRESSION, true), false)
|
||||
deflater.write(world.wallArray)
|
||||
deflater.write(world.layerWallLowBits.data)
|
||||
deflater.finish()
|
||||
deflater.flush(); deflater.finish()
|
||||
wb(PAYLOAD_FOOTER)
|
||||
|
||||
// WIRE payload
|
||||
wb(PAYLOAD_HEADER); wb("WIRE".toByteArray())
|
||||
wi48(world.width * world.height.toLong())
|
||||
deflater = DeflaterOutputStream(outputStream, Deflater(Deflater.BEST_COMPRESSION), true)
|
||||
deflater = DeflaterOutputStream(outputStream, Deflater(Deflater.BEST_COMPRESSION, true), false)
|
||||
deflater.write(world.wireArray)
|
||||
deflater.finish()
|
||||
deflater.flush(); deflater.finish()
|
||||
wb(PAYLOAD_FOOTER)
|
||||
|
||||
// TdMG payload
|
||||
wb(PAYLOAD_HEADER); wb("TdMG".toByteArray())
|
||||
wi48(world.terrainDamages.size * 10L)
|
||||
|
||||
deflater = DeflaterOutputStream(outputStream, Deflater(Deflater.BEST_COMPRESSION), true)
|
||||
deflater = DeflaterOutputStream(outputStream, Deflater(Deflater.BEST_COMPRESSION, true), false)
|
||||
|
||||
world.terrainDamages.forEach { t, u ->
|
||||
deflater.write(t.toULittle48())
|
||||
deflater.write(u.toRawBits().toLittle())
|
||||
}
|
||||
|
||||
deflater.finish()
|
||||
deflater.flush(); deflater.finish()
|
||||
wb(PAYLOAD_FOOTER)
|
||||
|
||||
// WdMG payload
|
||||
wb(PAYLOAD_HEADER); wb("WdMG".toByteArray())
|
||||
wi48(world.wallDamages.size * 10L)
|
||||
|
||||
deflater = DeflaterOutputStream(outputStream, Deflater(Deflater.BEST_COMPRESSION), true)
|
||||
deflater = DeflaterOutputStream(outputStream, Deflater(Deflater.BEST_COMPRESSION, true), false)
|
||||
|
||||
world.wallDamages.forEach { t, u ->
|
||||
deflater.write(t.toULittle48())
|
||||
deflater.write(u.toRawBits().toLittle())
|
||||
}
|
||||
|
||||
deflater.finish()
|
||||
deflater.flush(); deflater.finish()
|
||||
wb(PAYLOAD_FOOTER)
|
||||
|
||||
// FlTP payload
|
||||
wb(PAYLOAD_HEADER); wb("FlTP".toByteArray())
|
||||
wi48(world.fluidTypes.size * 8L)
|
||||
|
||||
deflater = DeflaterOutputStream(outputStream, Deflater(Deflater.BEST_COMPRESSION), true)
|
||||
deflater = DeflaterOutputStream(outputStream, Deflater(Deflater.BEST_COMPRESSION, true), false)
|
||||
|
||||
world.fluidTypes.forEach { t, u ->
|
||||
deflater.write(t.toULittle48())
|
||||
deflater.write(u.value.toLittleShort())
|
||||
}
|
||||
|
||||
deflater.finish()
|
||||
deflater.flush(); deflater.finish()
|
||||
wb(PAYLOAD_FOOTER)
|
||||
|
||||
// FlFL payload
|
||||
wb(PAYLOAD_HEADER); wb("FlFL".toByteArray())
|
||||
wi48(world.fluidFills.size * 10L)
|
||||
|
||||
deflater = DeflaterOutputStream(outputStream, Deflater(Deflater.BEST_COMPRESSION), true)
|
||||
deflater = DeflaterOutputStream(outputStream, Deflater(Deflater.BEST_COMPRESSION, true), false)
|
||||
|
||||
world.fluidFills.forEach { t, u ->
|
||||
deflater.write(t.toULittle48())
|
||||
deflater.write(u.toRawBits().toLittle())
|
||||
}
|
||||
|
||||
deflater.finish()
|
||||
deflater.flush(); deflater.finish()
|
||||
wb(PAYLOAD_FOOTER)
|
||||
|
||||
|
||||
|
||||
72
src/net/torvald/terrarum/tests/Addnewcolumn.kt
Normal file
72
src/net/torvald/terrarum/tests/Addnewcolumn.kt
Normal file
@@ -0,0 +1,72 @@
|
||||
|
||||
import net.torvald.terrarum.utils.JsonFetcher
|
||||
import net.torvald.terrarum.utils.JsonWriter
|
||||
import java.io.File
|
||||
|
||||
/**
|
||||
* Created by minjaesong on 2019-02-23.
|
||||
*/
|
||||
|
||||
val locales = arrayOf(
|
||||
"en",
|
||||
"frFR",
|
||||
"es",
|
||||
"de",
|
||||
"it",
|
||||
"ptBR",
|
||||
"ptPT",
|
||||
"ruRU",
|
||||
"elGR",
|
||||
"trTR",
|
||||
"daDK",
|
||||
"noNB",
|
||||
"svSE",
|
||||
"nlNL",
|
||||
"plPL",
|
||||
"fiFI",
|
||||
"jaJP",
|
||||
"zhCN",
|
||||
"zhTW",
|
||||
"koKR",
|
||||
"csCZ",
|
||||
"huHU",
|
||||
"roRO",
|
||||
"thTH",
|
||||
"bgBG",
|
||||
"heIL",
|
||||
"ar",
|
||||
"bsBS",
|
||||
"msMS",
|
||||
"idID"
|
||||
)
|
||||
val delimiter = '\t'
|
||||
val input = arrayOf(
|
||||
"CONTEXT_ITEM_MAP [Noun] Map Carte Mapa Karte Mappa Mapa Mapa Карта Χαρτης Harita Kort Kart Karta Kaart Mapa Kartta 地図 地图 地圖 지도 Mapa Térkép Hartă แผนที่ Карта מפה خريطة Mapa Peta Peta",
|
||||
"MENU_LABEL_MENU We have \"Main Menu\" but don't have generic \"Menu\" Menu Menu Menú Menü Menu Menu Menu Меню Μενού Menü Menu Meny Meny Menu Menu Valikko メニュー 菜单 功能表 메뉴 Nabídka Menü Meniu เมนู Меню תפריט القائمة Meni Menu Menu",
|
||||
"GAME_INVENTORY_REGISTER [Infinitive/tutorial verb] to register an item onto a keyboard shortcut, as favourites, etc. Register Inscrire Registrar Registrieren Registrare Registrar Registar Зарегистрировать Εγγραφή Registrer Registrer Registrera Registreren Zarejestruj Rekisteröidä 登録する 注册 註冊 등록하기 Zaregistrovat "
|
||||
)
|
||||
|
||||
|
||||
val inTable = input.map { it.split(delimiter) }
|
||||
|
||||
fun main() {
|
||||
locales.forEachIndexed { index, it ->
|
||||
val file = File("./assets/mods/basegame/locales/$it/game.json")
|
||||
|
||||
println("Locale: $it")
|
||||
|
||||
if (file.exists()) {
|
||||
val jsonObject = JsonFetcher(file)
|
||||
|
||||
inTable.forEach { record ->
|
||||
val key = record[0]
|
||||
val value = record[index + 2]
|
||||
if (value.isNotBlank()) {
|
||||
jsonObject.addProperty(key, value)
|
||||
}
|
||||
}
|
||||
|
||||
JsonWriter.writeToFile(jsonObject, file.absolutePath)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
|
||||
import net.torvald.terrarum.serialise.SavegameWriter
|
||||
import net.torvald.terrarum.utils.JsonWriter
|
||||
import org.dyn4j.geometry.Vector2
|
||||
|
||||
/**
|
||||
@@ -21,7 +21,7 @@ object GsonTest {
|
||||
|
||||
operator fun invoke() {
|
||||
|
||||
val gson = SavegameWriter.getJsonBuilder()
|
||||
val gson = JsonWriter.getJsonBuilder()
|
||||
val jsonString = gson.toJson(testClass)
|
||||
|
||||
println(jsonString)
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
package net.torvald.terrarum.utils
|
||||
|
||||
import com.google.gson.GsonBuilder
|
||||
import net.torvald.terrarum.AppLoader
|
||||
|
||||
/**
|
||||
* Created by minjaesong on 2016-03-04.
|
||||
*/
|
||||
@@ -7,6 +10,25 @@ object JsonWriter {
|
||||
|
||||
private val formattingRegex = Regex("""(?<=[\{,\[])|(?=[\]}])""")
|
||||
|
||||
fun getJsonBuilder() = if (AppLoader.IS_DEVELOPMENT_BUILD) {
|
||||
getPrettyBuilder()
|
||||
}
|
||||
else {
|
||||
GsonBuilder()
|
||||
.serializeNulls()
|
||||
.disableHtmlEscaping()
|
||||
.enableComplexMapKeySerialization()
|
||||
.create()
|
||||
}
|
||||
|
||||
fun getPrettyBuilder() = GsonBuilder()
|
||||
.setPrettyPrinting()
|
||||
|
||||
.serializeNulls()
|
||||
.disableHtmlEscaping()
|
||||
.enableComplexMapKeySerialization()
|
||||
.create()
|
||||
|
||||
/**
|
||||
* serialise a class to the file as JSON, using Google GSON.
|
||||
*
|
||||
@@ -15,9 +37,9 @@ object JsonWriter {
|
||||
*/
|
||||
@Throws(java.io.IOException::class)
|
||||
fun writeToFile(c: Any, path: String) {
|
||||
val classElem = com.google.gson.Gson().toJsonTree(c)
|
||||
val jsonString = classElem.toString()
|
||||
val writer = java.io.FileWriter(path)
|
||||
val jsonString = getJsonBuilder().toJson(c)
|
||||
|
||||
val writer = java.io.FileWriter(path, false)
|
||||
writer.write(jsonString.replace(formattingRegex, "\n"))
|
||||
writer.close()
|
||||
}
|
||||
@@ -30,8 +52,10 @@ object JsonWriter {
|
||||
*/
|
||||
@Throws(java.io.IOException::class)
|
||||
fun writeToFile(jsonObject: com.google.gson.JsonObject, path: String) {
|
||||
val writer = java.io.FileWriter(path)
|
||||
writer.write(jsonObject.toString().replace(formattingRegex, "\n"))
|
||||
val writer = java.io.FileWriter(path, false)
|
||||
|
||||
writer.write(getPrettyBuilder().toJson(jsonObject))
|
||||
//writer.write(jsonObject.toString().replace(formattingRegex, "\n"))
|
||||
writer.close()
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user