예제 #1
0
    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());
    }
예제 #2
0
    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);
        });
    }