From 55624e93e6da85dce74c96c26a11f5fc1ef7bd67 Mon Sep 17 00:00:00 2001 From: minjaesong Date: Sun, 26 Sep 2021 15:50:09 +0900 Subject: [PATCH] fixed a bug where the app would not generate correct config if there is no existing config --- src/net/torvald/terrarum/App.java | 4 +- .../modulebasegame/console/ExportAV.kt | 44 ------------------- .../torvald/terrarum/serialise/WriteConfig.kt | 29 ++++++++---- .../torvald/terrarum/tests/Addnewcolumn.kt | 6 ++- src/net/torvald/terrarum/tests/GsonTest.kt | 1 - src/net/torvald/terrarum/utils/JsonWriter.kt | 41 ----------------- 6 files changed, 27 insertions(+), 98 deletions(-) delete mode 100644 src/net/torvald/terrarum/modulebasegame/console/ExportAV.kt delete mode 100644 src/net/torvald/terrarum/utils/JsonWriter.kt diff --git a/src/net/torvald/terrarum/App.java b/src/net/torvald/terrarum/App.java index ccbee962f..104a7a03a 100644 --- a/src/net/torvald/terrarum/App.java +++ b/src/net/torvald/terrarum/App.java @@ -30,9 +30,9 @@ import net.torvald.terrarum.langpack.Lang; import net.torvald.terrarum.modulebasegame.IngameRenderer; import net.torvald.terrarum.modulebasegame.TerrarumIngame; import net.torvald.terrarum.modulebasegame.ui.ItemSlotImageFactory; +import net.torvald.terrarum.serialise.WriteConfig; import net.torvald.terrarum.tvda.VirtualDisk; import net.torvald.terrarum.utils.JsonFetcher; -import net.torvald.terrarum.utils.JsonWriter; import net.torvald.terrarum.worlddrawer.CreateTileAtlas; import net.torvald.terrarumsansbitmap.gdx.GameFontBase; import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack; @@ -995,7 +995,7 @@ public class App implements ApplicationListener { File configFile = new File(configDir); if (!configFile.exists() || configFile.length() == 0L) { - JsonWriter.INSTANCE.writeToFile(DefaultConfig.INSTANCE.getHashMap(), configDir); + WriteConfig.INSTANCE.invoke(); } } diff --git a/src/net/torvald/terrarum/modulebasegame/console/ExportAV.kt b/src/net/torvald/terrarum/modulebasegame/console/ExportAV.kt deleted file mode 100644 index e324d2dfa..000000000 --- a/src/net/torvald/terrarum/modulebasegame/console/ExportAV.kt +++ /dev/null @@ -1,44 +0,0 @@ -package net.torvald.terrarum.modulebasegame.console - -import net.torvald.terrarum.App -import net.torvald.terrarum.utils.JsonWriter -import net.torvald.terrarum.Terrarum -import net.torvald.terrarum.console.ConsoleCommand -import net.torvald.terrarum.console.Echo -import net.torvald.terrarum.modulebasegame.TerrarumIngame - -import java.io.IOException - -/** - * Created by minjaesong on 2016-02-10. - */ -internal object ExportAV : ConsoleCommand { - override fun execute(args: Array) { - if (args.size == 2) { - try { - val player = (Terrarum.ingame!! as TerrarumIngame).actorNowPlaying - if (player == null) return - - JsonWriter.writeToFile( - player, - App.defaultDir + "/Exports/" + args[1] + ".json") - - Echo("ExportAV: exported to " + args[1] + ".json") - } - catch (e: IOException) { - Echo("ExportAV: IOException raised.") - e.printStackTrace() - } - - } - else { - printUsage() - } - } - - override fun printUsage() { - Echo("Export ActorValue as JSON format.") - Echo("Usage: exportav (id) filename-without-extension") - Echo("blank ID for player") - } -} diff --git a/src/net/torvald/terrarum/serialise/WriteConfig.kt b/src/net/torvald/terrarum/serialise/WriteConfig.kt index 6cf9ed5b6..20c5aa8d1 100644 --- a/src/net/torvald/terrarum/serialise/WriteConfig.kt +++ b/src/net/torvald/terrarum/serialise/WriteConfig.kt @@ -20,14 +20,7 @@ object WriteConfig { override fun write(json: Json, obj: KVHashMap, knownType: Class<*>?) { json.writeObjectStart() obj.hashMap.toSortedMap().forEach { (k, v) -> - json.writeValue(k, - if (v is Int) v as Int - else if (v is Double) v as Double - else if (v is IntArray) v as IntArray - else if (v is DoubleArray) v as DoubleArray - else if (v is Boolean) v as Boolean - else v.toString() - ) + json.writeValue(k, v) } json.writeObjectEnd() } @@ -43,8 +36,28 @@ object WriteConfig { } + /*fun getJson(): String { + val sb = StringBuilder() + + App.gameConfig.hashMap.toSortedMap().forEach { (k, v) -> + sb.append("$k:") + + when (v) { + is DoubleArray -> { sb.append("[${v.joinToString(",")}]") } + is IntArray -> { sb.append("[${v.joinToString(",")}]") } + is Array<*> -> { sb.append("[${v.joinToString(",")}]") } + else -> { sb.append("$v") } + } + + sb.append("\n") + } + + return "{\n$sb}" + }*/ + operator fun invoke() { val writer = java.io.FileWriter(App.configDir, false) + //writer.write(getJson()) writer.write(jsoner.prettyPrint(App.gameConfig)) writer.close() } diff --git a/src/net/torvald/terrarum/tests/Addnewcolumn.kt b/src/net/torvald/terrarum/tests/Addnewcolumn.kt index fc5ba00da..e80d9910d 100644 --- a/src/net/torvald/terrarum/tests/Addnewcolumn.kt +++ b/src/net/torvald/terrarum/tests/Addnewcolumn.kt @@ -1,8 +1,8 @@ package net.torvald.terrarum.tests +import com.badlogic.gdx.utils.Json import com.badlogic.gdx.utils.JsonValue import net.torvald.terrarum.utils.JsonFetcher -import net.torvald.terrarum.utils.JsonWriter import java.io.File /** @@ -68,7 +68,9 @@ fun main() { } } - JsonWriter.writeToFile(jsonObject, file.absolutePath) + val writer = java.io.FileWriter(file, false) + writer.write(Json().toJson(jsonObject)) + writer.close() } } } \ No newline at end of file diff --git a/src/net/torvald/terrarum/tests/GsonTest.kt b/src/net/torvald/terrarum/tests/GsonTest.kt index 075e5303a..7e163ebb8 100644 --- a/src/net/torvald/terrarum/tests/GsonTest.kt +++ b/src/net/torvald/terrarum/tests/GsonTest.kt @@ -1,7 +1,6 @@ package net.torvald.terrarum.tests import com.badlogic.gdx.utils.Json -import net.torvald.terrarum.utils.JsonWriter import org.dyn4j.geometry.Vector2 /** diff --git a/src/net/torvald/terrarum/utils/JsonWriter.kt b/src/net/torvald/terrarum/utils/JsonWriter.kt deleted file mode 100644 index 48f78a7f4..000000000 --- a/src/net/torvald/terrarum/utils/JsonWriter.kt +++ /dev/null @@ -1,41 +0,0 @@ -package net.torvald.terrarum.utils - -import com.badlogic.gdx.utils.Json -import com.badlogic.gdx.utils.JsonWriter - -/** - * Created by minjaesong on 2016-03-04. - */ -object JsonWriter { - - private val formattingRegex = Regex("""(?<=[\{,\[])|(?=[\]}])""") - - /** - * serialise a class to the file as JSON, using Google GSON. - * - * @param c: a class - * @param path: path to write a file - */ - @Throws(java.io.IOException::class) - fun writeToFile(c: Any, path: String) { - val writer = java.io.FileWriter(path, false) - writer.write(Json(JsonWriter.OutputType.json).toJson(c).replace(formattingRegex, "\n")) - writer.close() - } - - /** - * serialise JsonObject to the file as JSON, using Google GSON. - * - * @param jsonObject - * @param path: path to write a file - */ - /*@Throws(java.io.IOException::class) - fun writeToFile(jsonObject: Json, path: String) { - val writer = java.io.FileWriter(path, false) - - writer.write(jsonObject.) - //writer.write(jsonObject.toString().replace(formattingRegex, "\n")) - writer.close() - }*/ - -}