save/load with fixed entry id

This commit is contained in:
minjaesong
2021-08-31 17:24:44 +09:00
parent 32144fc241
commit 3b37e91e4a
3 changed files with 28 additions and 13 deletions

View File

@@ -2,6 +2,7 @@ package net.torvald.terrarum.modulebasegame.console
import com.badlogic.gdx.utils.JsonValue
import net.torvald.terrarum.AppLoader
import net.torvald.terrarum.AppLoader.printdbg
import net.torvald.terrarum.Terrarum
import net.torvald.terrarum.console.ConsoleCommand
import net.torvald.terrarum.console.Echo
@@ -10,8 +11,10 @@ import net.torvald.terrarum.modulecomputers.virtualcomputer.tvd.DiskEntry
import net.torvald.terrarum.modulecomputers.virtualcomputer.tvd.EntryFile
import net.torvald.terrarum.modulecomputers.virtualcomputer.tvd.VDUtil
import net.torvald.terrarum.serialise.*
import net.torvald.terrarum.utils.JsonFetcher
import java.io.File
import java.io.IOException
import java.nio.ByteBuffer
/**
* Created by minjaesong on 2021-08-30.
@@ -22,13 +25,16 @@ object Load : ConsoleCommand {
if (args.size == 2) {
try {
val charset = Common.CHARSET
val file = File(AppLoader.defaultDir + "Exports/${args[1]}")
val file = File(AppLoader.defaultDir + "/Exports/${args[1]}")
val disk = VDUtil.readDiskArchive(file, charset = charset)
val metaFile = VDUtil.getFile(disk, VDUtil.VDPath("savegame", charset))!!
val metaFile = disk.entries[-1]!!
val metaReader = ByteArray64Reader(metaFile.contents.serialize().array, charset)
val meta = Common.jsoner.fromJson(JsonValue::class.java, metaReader)
JsonFetcher.forEach(meta) { key, value ->
println("$key\t$value")
}
}
catch (e: IOException) {
Echo("Load: IOException raised.")