Exemplo n.º 1
0
        public override void PostDeserialize(DeserializationContext deserializationContext)
        {
            Material           = new Material(MaterialType, RenderQueue);
            Material.BlendMode = this.BlendMode;

            Material.Values.ForEach(_ => _.SetValue(deserializationContext.ConvertValue(UniformValues[_.Name], _.UniformType)));
            Material.Textures.ForEach(_ => _.Texture = (Texture)deserializationContext.ConvertValue(Textures[_.Name], typeof(Texture2)));
        }
Exemplo n.º 2
0
        public Component Create(DeserializationContext context, Node owner)
        {
            var type   = Type.GetType(TypeName);
            var result = (Component)Activator.CreateInstance(type, owner);

            foreach (var keyValue in FieldValues)
            {
                var propName = keyValue.Key;
                var prop     = type.GetProperty(propName, Flags);
                if (prop == null)
                {
                    Log.Warning("Unknown field: " + propName);
                    continue;
                }
                if (prop.CanWrite == false)
                {
                    Log.Warning("Property is not writable: " + propName);
                    continue;
                }

                var value = context.ConvertValue(keyValue.Value, prop.PropertyType);
                prop.SetValue(result, value);
            }

            result.IsEnabled = IsEnabled;
            result.Id        = Id;

            return(result);
        }