Пример #1
0
            public override object NodeToType(Type type, YamlNode node, YamlObjectSerializer serializer)
            {
                var args = node.ToString().Split(',');

                var t = float.Parse(args[0], CultureInfo.InvariantCulture);
                var l = float.Parse(args[1], CultureInfo.InvariantCulture);
                var b = float.Parse(args[2], CultureInfo.InvariantCulture);
                var r = float.Parse(args[3], CultureInfo.InvariantCulture);

                return(new UIBox2(l, t, r, b));
            }
Пример #2
0
            public override YamlNode TypeToNode(object obj, YamlObjectSerializer serializer)
            {
                var color = (Color)obj;

                Int32 hexColor = 0;

                hexColor += color.RByte << 24;
                hexColor += color.GByte << 16;
                hexColor += color.BByte << 8;
                hexColor += color.AByte;

                return(new YamlScalarNode("#" + hexColor.ToString("X")));
            }
Пример #3
0
            public override YamlNode TypeToNode(object obj, YamlObjectSerializer serializer)
            {
                switch (obj)
                {
                case SpriteSpecifier.Texture tex:
                    return(tex.TexturePath.ToString());

                case SpriteSpecifier.Rsi rsi:
                    var mapping = new YamlMappingNode();
                    mapping.Add("sprite", rsi.RsiPath.ToString());
                    mapping.Add("state", rsi.RsiState);
                    return(mapping);
                }
                throw new NotImplementedException();
            }
Пример #4
0
            public override YamlNode TypeToNode(object obj, YamlObjectSerializer serializer)
            {
                var node   = new YamlMappingNode();
                var type   = obj.GetType();
                var fields = type.GetFields(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);

                foreach (var field in fields)
                {
                    if (field.IsNotSerialized)
                    {
                        continue;
                    }

                    var fVal = field.GetValue(obj);

                    // Potential recursive infinite loop?
                    var fTypeNode = serializer.TypeToNode(fVal);
                    node.Add(field.Name, fTypeNode);
                }

                return(node);
            }
Пример #5
0
            public override YamlNode TypeToNode(object obj, YamlObjectSerializer serializer)
            {
                var val = ((Angle)obj).Theta;

                return(new YamlScalarNode($"{val.ToString(CultureInfo.InvariantCulture)} rad"));
            }
Пример #6
0
            public override YamlNode TypeToNode(object obj, YamlObjectSerializer serializer)
            {
                var vec = (Vector2)obj;

                return(new YamlScalarNode($"{vec.X},{vec.Y}"));
            }
Пример #7
0
 public override object NodeToType(Type type, YamlNode node, YamlObjectSerializer serializer)
 {
     return(node.AsVector2());
 }
Пример #8
0
            public override YamlNode TypeToNode(object obj, YamlObjectSerializer serializer)
            {
                var val = (int)(GridId)obj;

                return(new YamlScalarNode(val.ToString()));
            }
Пример #9
0
 public override object NodeToType(Type type, YamlNode node, YamlObjectSerializer serializer)
 {
     return(new GridId(node.AsInt()));
 }
            public override YamlNode TypeToNode(object obj, YamlObjectSerializer serializer)
            {
                var box = (Box2)obj;

                return(new YamlScalarNode($"{box.Bottom.ToString(CultureInfo.InvariantCulture)},{box.Left.ToString(CultureInfo.InvariantCulture)},{box.Top.ToString(CultureInfo.InvariantCulture)},{box.Right.ToString(CultureInfo.InvariantCulture)}"));
            }
Пример #11
0
 public override YamlNode TypeToNode(object obj, YamlObjectSerializer serializer)
 {
     return(new YamlScalarNode(obj.ToString()));
 }
Пример #12
0
 public abstract YamlNode TypeToNode(object obj, YamlObjectSerializer serializer);
Пример #13
0
 public abstract object NodeToType(Type type, YamlNode node, YamlObjectSerializer serializer);
            public override object NodeToType(Type type, YamlNode node, YamlObjectSerializer serializer)
            {
                var val = float.Parse(node.ToString());

                return(new Angle(val));
            }
Пример #15
0
            public override YamlNode TypeToNode(object obj, YamlObjectSerializer serializer)
            {
                var box = (Box2)obj;

                return(new YamlScalarNode($"{box.Bottom},{box.Left},{box.Top},{box.Right}"));
            }
Пример #16
0
 public override object NodeToType(Type type, YamlNode node, YamlObjectSerializer serializer)
 {
     return(node.AsResourcePath());
 }
Пример #17
0
            public override object NodeToType(Type type, YamlNode node, YamlObjectSerializer serializer)
            {
                var val = int.Parse(node.ToString(), CultureInfo.InvariantCulture);

                return(new MapId(val));
            }
Пример #18
0
 public override object NodeToType(Type type, YamlNode node, YamlObjectSerializer serializer)
 {
     return(SpriteSpecifier.FromYaml(node));
 }
            public override YamlNode TypeToNode(object obj, YamlObjectSerializer serializer)
            {
                var vec = (Vector2)obj;

                return(new YamlScalarNode($"{vec.X.ToString(CultureInfo.InvariantCulture)},{vec.Y.ToString(CultureInfo.InvariantCulture)}"));
            }