public string TrfmTest() { Serializer.SetDatatype(Serializer.SerialType.Binary); var target = Trfm.Convert(transform, Trfm.Type.World); var encoded = Serializer.Serialize(target); var decoded = Serializer.Deserialize <Trfm>(encoded); if (decoded.Key == false) { return(Fail("Parse fail")); } var msg2 = decoded.Value; if (msg2.POS.X != 0) { return(Fail("Parsed value is " + decoded.Value)); } if (msg2.POS.Y != 1) { return(Fail("Parsed value is " + decoded.Value)); } if (msg2.POS.Z != -10) { return(Fail("Parsed value is " + decoded.Value)); } return(Pass()); }
private JsonStringify() { AddMethod((pair) => { var obj = pair.Key; if (obj.IsNotNull()) { return(false); } pair.Value.Append("{}"); return(true); }); AddMethod((pair) => { var obj = pair.Key as string; if (obj == null) { return(false); } pair.Value.Append("\"").Append(obj).Append("\""); return(true); }); AddMethod((pair) => { var obj = pair.Key as Array; if (obj == null) { return(false); } pair.Value.Append(obj.Stringify("[", ",", "]")); return(true); }); AddMethod((pair) => { var type = pair.Key.GetType(); if (type.IsPrimitive == false) { return(false); } pair.Value.Append("'").Append(pair.Key).Append("'"); return(true); }); AddMethod((pair) => { var obj = pair.Key as Dictionary <string, string>; if (obj.IsNull()) { return(false); } pair.Value.Append(obj.ToJson <string, string>()); return(true); }); AddMethod((pair) => { var jsonable = pair.Key as IJsonable; if (jsonable.IsNull()) { return(false); } pair.Value.Append(jsonable.ToJson()); return(true); }); AddMethod((pair) => { var jsonable = pair.Key as Transform; if (jsonable.IsNull()) { return(false); } pair.Value.Append(Trfm.Convert(jsonable, Trfm.Type.Local).ToJson()); return(true); }); AddMethod((pair) => { var obj = pair.Key as ObjDict; if (obj.IsNull()) { return(false); } var dic = new Dictionary <string, string>(); foreach (var e in obj) { dic.Add(e.Key, JsonStringify.Stringify(e.Value)); } pair.Value.Append(dic.ToJson("\"", "")); return(true); }); AddMethod((pair) => { var type = pair.Key.GetType(); if (type != typeof(Vector3)) { return(false); } var vec = (Vector3)pair.Key; pair.Value.Append(new Dictionary <string, string> { { "x", "" + vec.x }, { "y", "" + vec.y }, { "z", "" + vec.z } }.ToJson()); return(true); }); }