diff --git a/src/net/torvald/terrarum/console/CommandDict.kt b/src/net/torvald/terrarum/console/CommandDict.kt index 8a606ba27..6a4acbe45 100644 --- a/src/net/torvald/terrarum/console/CommandDict.kt +++ b/src/net/torvald/terrarum/console/CommandDict.kt @@ -59,7 +59,7 @@ object CommandDict { "spawnlunarlander" to SpawnPhysTestLunarLander, "savetest" to SavegameWriterTest, - /* !! */"exportlayer" to ExportLayerData, + /* !! */"exportmeta" to ExportMeta, /* !! */"importlayer" to ImportLayerData, /* !! */"exportfborgb" to ExportRendererFboRGB ) diff --git a/src/net/torvald/terrarum/gameactors/ActorWithBody.kt b/src/net/torvald/terrarum/gameactors/ActorWithBody.kt index e15c1bef7..41f289f9c 100644 --- a/src/net/torvald/terrarum/gameactors/ActorWithBody.kt +++ b/src/net/torvald/terrarum/gameactors/ActorWithBody.kt @@ -295,7 +295,6 @@ open class ActorWithBody(renderOrder: RenderOrder, val physProp: PhysProperties, @Transient private var assertPrinted = false - // debug only internal var walledLeft = false internal var walledRight = false internal var walledTop = false // UNUSED; only for BasicDebugInfoWindow diff --git a/src/net/torvald/terrarum/modulebasegame/console/ExportLayerData.kt b/src/net/torvald/terrarum/modulebasegame/console/ExportMeta.kt similarity index 82% rename from src/net/torvald/terrarum/modulebasegame/console/ExportLayerData.kt rename to src/net/torvald/terrarum/modulebasegame/console/ExportMeta.kt index 5767dcb50..8f238bc23 100644 --- a/src/net/torvald/terrarum/modulebasegame/console/ExportLayerData.kt +++ b/src/net/torvald/terrarum/modulebasegame/console/ExportMeta.kt @@ -13,22 +13,22 @@ import java.io.IOException /** * Created by minjaesong on 2017-07-18. */ -object ExportLayerData : ConsoleCommand { +object ExportMeta : ConsoleCommand { override fun execute(args: Array) { try { val str = WriteMeta(Terrarum.ingame!! as TerrarumIngame).invoke() val writer = java.io.FileWriter(AppLoader.defaultDir + "/Exports/savegame.json", false) writer.write(str) writer.close() - Echo("Exportlayer: exported to savegame.json") + Echo("Exportmeta: exported to savegame.json") } catch (e: IOException) { - Echo("Exportlayer: IOException raised.") + Echo("Exportmeta: IOException raised.") e.printStackTrace() } } override fun printUsage() { - Echo("Usage: exportlayer") + Echo("Usage: Exportmeta") } } \ No newline at end of file diff --git a/src/net/torvald/terrarum/modulebasegame/gameactors/ActorHumanoid.kt b/src/net/torvald/terrarum/modulebasegame/gameactors/ActorHumanoid.kt index 9876d5f04..9eee9a972 100644 --- a/src/net/torvald/terrarum/modulebasegame/gameactors/ActorHumanoid.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameactors/ActorHumanoid.kt @@ -127,8 +127,8 @@ open class ActorHumanoid( internal var walkCounterY = 0 @Transient private val MAX_JUMP_LENGTH = 25 // manages "heaviness" of the jump control. Higher = heavier - private var readonly_totalX = 0.0 - private var readonly_totalY = 0.0 + @Transient private var readonly_totalX = 0.0 + @Transient private var readonly_totalY = 0.0 internal var jumping = false @@ -531,11 +531,11 @@ open class ActorHumanoid( return pwr * timedJumpCharge * JUMP_ACCELERATION_MOD * Math.sqrt(scale) // positive value } - private var oldMAX_JUMP_LENGTH = -1 // init - private var oldJUMPPOWER = -1.0 // init - private var oldJUMPPOWERBUFF = -1.0 // init - private var oldScale = -1.0 - private var oldDragCoefficient = -1.0 + @Transient private var oldMAX_JUMP_LENGTH = -1 // init + @Transient private var oldJUMPPOWER = -1.0 // init + @Transient private var oldJUMPPOWERBUFF = -1.0 // init + @Transient private var oldScale = -1.0 + @Transient private var oldDragCoefficient = -1.0 // used by some AIs var jumpAirTime: Double = -1.0 get() { diff --git a/src/net/torvald/terrarum/serialise/WriteMeta.kt b/src/net/torvald/terrarum/serialise/WriteMeta.kt index f0614b21c..c9afa9caf 100644 --- a/src/net/torvald/terrarum/serialise/WriteMeta.kt +++ b/src/net/torvald/terrarum/serialise/WriteMeta.kt @@ -1,6 +1,7 @@ package net.torvald.terrarum.serialise import com.badlogic.gdx.utils.Json +import com.badlogic.gdx.utils.JsonValue import com.badlogic.gdx.utils.JsonWriter import net.torvald.terrarum.ModMgr import net.torvald.terrarum.gameworld.BlockLayer @@ -18,58 +19,51 @@ open class WriteMeta(val ingame: TerrarumIngame) { open fun invoke(): String { val world = ingame.world - val props = hashMapOf( - "genver" to 4, - "savename" to world.worldName, - "terrseed" to world.generatorSeed, - "randseed0" to RoguelikeRandomiser.RNG.state0, - "randseed1" to RoguelikeRandomiser.RNG.state1, - "weatseed0" to WeatherMixer.RNG.state0, - "weatseed1" to WeatherMixer.RNG.state1, - "playerid" to ingame.theRealGamer.referenceID, - "creation_t" to world.creationTime, - "lastplay_t" to world.lastPlayTime, - "playtime_t" to world.totalPlayTime, - - // CSVs - "blocks" to StringBuilder().let { - ModMgr.getFilesFromEveryMod("blocks/blocks.csv").forEach { (modname, file) -> - it.append("\n\n## module: $modname ##\n\n") - it.append(file.readText()) - } - bytesToZipdStr(it.toString().toByteArray()) - }, - - "items" to StringBuilder().let { - ModMgr.getFilesFromEveryMod("items/itemid.csv").forEach { (modname, file) -> - it.append("\n\n## module: $modname ##\n\n") - it.append(file.readText()) - } - bytesToZipdStr(it.toString().toByteArray()) - }, - - "wires" to StringBuilder().let { - ModMgr.getFilesFromEveryMod("wires/wires.csv").forEach { (modname, file) -> - it.append("\n\n## module: $modname ##\n\n") - it.append(file.readText()) - } - bytesToZipdStr(it.toString().toByteArray()) - }, - - // TODO fluids - "materials" to StringBuilder().let { - ModMgr.getFilesFromEveryMod("materials/materials.csv").forEach { (modname, file) -> - it.append("\n\n## module: $modname ##\n\n") - it.append(file.readText()) - } - bytesToZipdStr(it.toString().toByteArray()) - }, - - "loadorder" to ModMgr.loadOrder, - "worlds" to ingame.gameworldIndices - ) + val json = """{ +"genver": 4, +"savename": "${world.worldName}", +"terrseed": ${world.generatorSeed}, +"randseed0": ${RoguelikeRandomiser.RNG.state0}, +"randseed1": ${RoguelikeRandomiser.RNG.state1}, +"weatseed0": ${WeatherMixer.RNG.state0}, +"weatseed1": ${WeatherMixer.RNG.state1}, +"playerid": ${ingame.theRealGamer.referenceID}, +"creation_t": ${world.creationTime}, +"lastplay_t": ${world.lastPlayTime}, +"playtime_t": ${world.totalPlayTime}, +"blocks": "${StringBuilder().let { + ModMgr.getFilesFromEveryMod("blocks/blocks.csv").forEach { (modname, file) -> + it.append("\n\n## module: $modname ##\n\n") + it.append(file.readText()) + } + bytesToZipdStr(it.toString().toByteArray()) +}}", +"items": "${StringBuilder().let { + ModMgr.getFilesFromEveryMod("items/itemid.csv").forEach { (modname, file) -> + it.append("\n\n## module: $modname ##\n\n") + it.append(file.readText()) + } + bytesToZipdStr(it.toString().toByteArray()) +}}", +"wires": "${StringBuilder().let { + ModMgr.getFilesFromEveryMod("wires/wires.csv").forEach { (modname, file) -> + it.append("\n\n## module: $modname ##\n\n") + it.append(file.readText()) + } + bytesToZipdStr(it.toString().toByteArray()) +}}", +"materials": "${StringBuilder().let { + ModMgr.getFilesFromEveryMod("materials/materials.csv").forEach { (modname, file) -> + it.append("\n\n## module: $modname ##\n\n") + it.append(file.readText()) + } + bytesToZipdStr(it.toString().toByteArray()) +}}", +"loadorder": [${ModMgr.loadOrder.map { "\"${it}\"" }.joinToString()}], +"worlds": [${ingame.gameworldIndices.joinToString()}] +}""" - return Json(JsonWriter.OutputType.json).toJson(props) + return json } /**