Fix wrong json conversion from numbers again
This commit is contained in:
parent
3bb7e50315
commit
7270b1b47b
@ -15,12 +15,14 @@ import org.classdump.luna.impl.NonsuspendableFunctionException
|
|||||||
import org.classdump.luna.runtime.AbstractFunction3
|
import org.classdump.luna.runtime.AbstractFunction3
|
||||||
import org.classdump.luna.runtime.ExecutionContext
|
import org.classdump.luna.runtime.ExecutionContext
|
||||||
import ru.dbotthepony.kommons.gson.set
|
import ru.dbotthepony.kommons.gson.set
|
||||||
|
import ru.dbotthepony.kommons.io.writeSignedVarLong
|
||||||
import ru.dbotthepony.kommons.math.RGBAColor
|
import ru.dbotthepony.kommons.math.RGBAColor
|
||||||
import ru.dbotthepony.kstarbound.math.AABB
|
import ru.dbotthepony.kstarbound.math.AABB
|
||||||
import ru.dbotthepony.kommons.util.IStruct2d
|
import ru.dbotthepony.kommons.util.IStruct2d
|
||||||
import ru.dbotthepony.kommons.util.IStruct2i
|
import ru.dbotthepony.kommons.util.IStruct2i
|
||||||
import ru.dbotthepony.kommons.util.IStruct3i
|
import ru.dbotthepony.kommons.util.IStruct3i
|
||||||
import ru.dbotthepony.kommons.util.IStruct4i
|
import ru.dbotthepony.kommons.util.IStruct4i
|
||||||
|
import ru.dbotthepony.kstarbound.json.BinaryJsonReader
|
||||||
import ru.dbotthepony.kstarbound.math.vector.Vector2d
|
import ru.dbotthepony.kstarbound.math.vector.Vector2d
|
||||||
import ru.dbotthepony.kstarbound.math.vector.Vector2f
|
import ru.dbotthepony.kstarbound.math.vector.Vector2f
|
||||||
import ru.dbotthepony.kstarbound.math.vector.Vector2i
|
import ru.dbotthepony.kstarbound.math.vector.Vector2i
|
||||||
@ -187,7 +189,21 @@ fun TableFactory.from(value: JsonElement?): Any? {
|
|||||||
when (value) {
|
when (value) {
|
||||||
is JsonPrimitive -> {
|
is JsonPrimitive -> {
|
||||||
if (value.isNumber) {
|
if (value.isNumber) {
|
||||||
return value.asNumber
|
return when (val v = value.asNumber) {
|
||||||
|
is Float, is Double -> value.asDouble
|
||||||
|
is Int, is Long -> value.asLong
|
||||||
|
|
||||||
|
else -> {
|
||||||
|
// hi com.google.gson.internal.LazilyParsedNumber
|
||||||
|
val doubleBits by lazy { v.toDouble() }
|
||||||
|
|
||||||
|
if (v.toString().contains('.') || doubleBits % 1.0 != 0.0) {
|
||||||
|
v.toDouble()
|
||||||
|
} else {
|
||||||
|
v.toLong()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
} else if (value.isString) {
|
} else if (value.isString) {
|
||||||
return ByteString.of(value.asString)
|
return ByteString.of(value.asString)
|
||||||
} else if (value.isBoolean) {
|
} else if (value.isBoolean) {
|
||||||
|
Loading…
Reference in New Issue
Block a user