genver for World now stores the version the world has generated

This commit is contained in:
minjaesong
2024-08-12 00:19:59 +09:00
parent ff4bf42922
commit 9c9806f622
7 changed files with 127 additions and 12 deletions

View File

@@ -98,7 +98,7 @@ class QuickSingleplayerWorldSavingThread(
playersList.forEach {
ingame.world.playersLastStatus[it.uuid] = PlayerLastStatus(it, ingame.isMultiplayer)
}
val worldMeta = EntryFile(WriteWorld.encodeToByteArray64(ingame, time_t, actorsList, playersList))
val worldMeta = EntryFile(WriteWorld.encodeToByteArray64(ingame.worldGenVer, ingame, time_t, actorsList, playersList))
val world = DiskEntry(SAVEGAMEINFO, ROOT, creation_t, time_t, worldMeta)
addFile(disk, world); skimmer.appendEntry(world)

View File

@@ -121,7 +121,7 @@ class WorldSavingThread(
// Write World //
val worldMeta = EntryFile(WriteWorld.encodeToByteArray64(ingame, time_t, actorsList, playersList))
val worldMeta = EntryFile(WriteWorld.encodeToByteArray64(ingame.worldGenVer, ingame, time_t, actorsList, playersList))
val world = DiskEntry(VDFileID.SAVEGAMEINFO, VDFileID.ROOT, creation_t, time_t, worldMeta)
addFile(disk, world)

View File

@@ -51,15 +51,15 @@ object WriteWorld {
}
// genver must be found on fixed location of the JSON string
operator fun invoke(ingame: TerrarumIngame, time_t: Long, actorsList: List<Actor>, playersList: List<IngamePlayer>): String {
operator fun invoke(oldGenVer: Long?, ingame: TerrarumIngame, time_t: Long, actorsList: List<Actor>, playersList: List<IngamePlayer>): String {
val s = Common.jsoner.toJson(preWrite(ingame, time_t, actorsList, playersList))
return """{"genver":${Common.GENVER},${s.substring(1)}"""
return """{"genver":${oldGenVer ?: Common.GENVER},${s.substring(1)}"""
}
fun encodeToByteArray64(ingame: TerrarumIngame, time_t: Long, actorsList: List<Actor>, playersList: List<IngamePlayer>): ByteArray64 {
fun encodeToByteArray64(oldGenVer: Long?, ingame: TerrarumIngame, time_t: Long, actorsList: List<Actor>, playersList: List<IngamePlayer>): ByteArray64 {
val baw = ByteArray64Writer(Common.CHARSET)
val header = """{"genver":${Common.GENVER}"""
val header = """{"genver":${oldGenVer ?: Common.GENVER}"""
baw.write(header)
Common.jsoner.toJson(preWrite(ingame, time_t, actorsList, playersList), baw)
baw.flush(); baw.close()