diff --git a/arc-core/src/arc/util/serialization/Json.java b/arc-core/src/arc/util/serialization/Json.java index 1773deec..58a91515 100644 --- a/arc-core/src/arc/util/serialization/Json.java +++ b/arc-core/src/arc/util/serialization/Json.java @@ -603,7 +603,6 @@ public void writeValue(Object value, Class knownType, Class elementType){ writeObjectEnd(); return; } - if(value instanceof ObjectIntMap){ if(knownType == null) knownType = ObjectIntMap.class; writeObjectStart(actualType, knownType); @@ -614,6 +613,16 @@ public void writeValue(Object value, Class knownType, Class elementType){ writeObjectEnd(); return; } + if(value instanceof ObjectFloatMap){ + if(knownType == null) knownType = ObjectFloatMap.class; + writeObjectStart(actualType, knownType); + for(ObjectFloatMap.Entry entry : ((ObjectFloatMap)value).entries()){ + writer.name(convertToString(entry.key)); + writer.value(entry.value); + } + writeObjectEnd(); + return; + } if(value instanceof IntMap){ if(knownType == null) knownType = IntMap.class; writeObjectStart(actualType, knownType); @@ -1062,6 +1071,14 @@ public T readValue(Class type, Class elementType, JsonValue jsonData, Cla return (T)result; } + if(object instanceof ObjectFloatMap){ + ObjectFloatMap result = (ObjectFloatMap)object; + for(JsonValue child = jsonData.child; child != null; child = child.next){ + result.put(elementType != null ? readValue(elementType, null, new JsonValue(child.name)) : child.name, child.asFloat()); + } + + return (T)result; + } if(object instanceof IntMap){ IntMap result = (IntMap)object; for(JsonValue child = jsonData.child; child != null; child = child.next){