Fix automatedRoadConnectionPath serialization errors (#12097)

This commit is contained in:
Yair Morgenstern 2024-08-09 10:28:00 +03:00 committed by GitHub
parent 49fa691d7e
commit cf202c28a4
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 2 additions and 37 deletions

View File

@ -2,7 +2,6 @@ package com.unciv.json
import com.badlogic.gdx.Gdx
import com.badlogic.gdx.files.FileHandle
import com.badlogic.gdx.math.Vector2
import com.badlogic.gdx.utils.Json
import com.badlogic.gdx.utils.JsonWriter
import com.badlogic.gdx.utils.SerializationException
@ -23,7 +22,6 @@ fun json() = Json(JsonWriter.OutputType.json).apply {
setSerializer(Duration::class.java, DurationSerializer())
setSerializer(KeyCharAndCode::class.java, KeyCharAndCode.Serializer())
setSerializer(Vector2::class.java, Vector2Serializer())
}
/**

View File

@ -1,35 +0,0 @@
package com.unciv.json
import com.badlogic.gdx.math.Vector2
import com.badlogic.gdx.utils.Json
import com.badlogic.gdx.utils.Json.Serializer
import com.badlogic.gdx.utils.JsonValue
class Vector2Serializer : Serializer<Vector2> {
override fun write(json: Json, vector2: Vector2?, knownType: Class<*>?) {
if (vector2 == null) json.writeValue(null)
else {
// NEW vector serialization - currently disabled
// json.writeValue("${vector2.x.toInt()}/${vector2.y.toInt()}")
// OLD vector serialization - deprecated 4.12.18
json.writeObjectStart()
json.writeFields(vector2)
json.writeObjectEnd()
}
}
override fun read(json: Json, jsonData: JsonValue, knownType: Class<*>?): Vector2? {
if (jsonData.isNull) return null // Not entirely sure it's necessary
if (jsonData.isString) {
val split = jsonData.asString().split("/")
return Vector2(split[0].toFloat(), split[1].toFloat())
}
// OLD vector serialization
val vector = Vector2()
json.readFields(vector, jsonData)
return vector
}
}

View File

@ -68,6 +68,8 @@ class MapUnit : IsPartOfGameInfoSerialization {
var escorting: Boolean = false
var automatedRoadConnectionDestination: Vector2? = null
// Temp disable, since this data broke saves
@Transient
var automatedRoadConnectionPath: List<Vector2>? = null
var attacksThisTurn = 0