示例#1
0
        public override Vector2 LoadContent(ITrwSerializationReadContext context)
        {
            context.Reader.CheckAndMoveNext(TrwTokenType.StartArray);
            var x = context.Read <float>();
            var y = context.Read <float>();

            context.Reader.CheckAndMoveNext(TrwTokenType.EndArray);
            return(new Vector2(x, y));
        }
示例#2
0
        public override Pair <T> LoadContent(ITrwSerializationReadContext context)
        {
            context.Reader.Check(TrwTokenType.StartArray);
            context.Reader.MoveNext();
            var first  = context.Read <T>();
            var second = context.Read <T>();

            context.Reader.Check(TrwTokenType.EndArray);
            context.Reader.MoveNext();
            return(new Pair <T>(first, second));
        }
示例#3
0
        public override Transform LoadContent(ITrwSerializationReadContext context)
        {
            Transform result;

            context.Reader.MoveNext();
            result.Scale = context.Read <float>();
            context.Reader.MoveNext();
            result.Rotation = context.Read <Quaternion>();
            context.Reader.MoveNext();
            result.Offset = context.Read <Vector3>();
            return(result);
        }
        public override T LoadContent(ITrwSerializationReadContext context)
        {
            context.Reader.CheckPropertyAndMoveNext("Source");
            var source = context.Read <IResourceSource>();

            return((T)source.GetResource());
        }
示例#5
0
        public override TArray LoadContent(ITrwSerializationReadContext context)
        {
            var array = CreateBuilder();

            context.Reader.CheckAndMoveNext(TrwTokenType.StartArray);
            while (context.Reader.TokenType != TrwTokenType.EndArray)
            {
                AddItem(array, context.Read <TItem>());
            }
            context.Reader.CheckAndMoveNext(TrwTokenType.EndArray);
            return(Finalize(array));
        }
示例#6
0
        public override TObj LoadContent(ITrwSerializationReadContext context)
        {
            var obj   = CreateBuilder();
            var boxed = (object)obj;

            while (context.Reader.TokenType != TrwTokenType.EndObject)
            {
                var name = context.Reader.ValueAsString;
                if (TryGetProp(obj, name, out var prop))
                {
                    context.Reader.MoveNext();
                    var type = GetPropType(prop);
                    var val  = (TValue)context.Read(type);
                    SetPropValue(obj, boxed, prop, val);
                }
                else
                {
                    context.Reader.Skip();
                }
            }
            return(Finalize((TBuilder)boxed));
        }
示例#7
0
 public override T?LoadContent(ITrwSerializationReadContext context)
 {
     return(context.Read <T>());
 }
示例#8
0
 public static T ReadProperty <T>(this ITrwSerializationReadContext context, string propertyName)
 {
     context.Reader.CheckPropertyAndMoveNext(propertyName);
     return(context.Read <T>());
 }
示例#9
0
 public override Guid LoadContent(ITrwSerializationReadContext context)
 {
     return(Guid.Parse(context.Read <string>()));
 }
示例#10
0
 public override TNew LoadContent(ITrwSerializationReadContext context) => exising2new(context.Read <TExising>());