actor serialiser

This commit is contained in:
minjaesong
2021-08-24 17:11:41 +09:00
parent 126a4325d2
commit ee5e10dd8c
5 changed files with 67 additions and 9 deletions

View File

@@ -0,0 +1,33 @@
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.gameactors.Actor
import java.math.BigInteger
/**
* Created by minjaesong on 2021-08-24.
*/
object WriteActor {
private val jsoner = Json(JsonWriter.OutputType.json)
// install custom (de)serialiser
init {
jsoner.setSerializer(BigInteger::class.java, object : Json.Serializer<BigInteger> {
override fun write(json: Json, obj: BigInteger?, knownType: Class<*>?) {
json.writeValue(obj?.toString())
}
override fun read(json: Json, jsonData: JsonValue, type: Class<*>?): BigInteger {
return BigInteger(jsonData.asString())
}
})
}
operator fun invoke(actor: Actor): String {
return jsoner.toJson(actor)
}
}