public void SetPropertyByName(string name, IParticleProperty <float> property) { switch (name) { case "Angle": Angle = property; break; case "AngularVelocity": Angle = property; break; case "Size": Size = property; break; case "Life": Life = property; break; case "SpawnFrequency": SpawnFrequency = property; break; } }
public void SetPropertyByName(string name, IParticleProperty <int> property) { switch (name) { case "Alpha": Alpha = property; break; } }
public void SetPropertyByName(string name, IParticleProperty <Color> property) { switch (name) { case "StartColor": StartColor = property; break; case "EndColor": EndColor = property; break; } }
public void SetPropertyByName(string name, IParticleProperty <Vector2> property) { switch (name) { case "StartVelocity": StartVelocity = property; break; case "EndVelocity": EndVelocity = property; break; } }
public IParticleProperty <TValue> LoadProperty(XElement node) { string propType = node.Attribute("PropertyType").Value; string constType = typeof(Constant <TValue>).GetGenericTypeDefinition().FullName; string rangeType = typeof(Range <TValue>).GetGenericTypeDefinition().FullName; string randType = typeof(RandomNumber <TValue>).GetGenericTypeDefinition().FullName; IParticleProperty <TValue> property = null; if (propType.Equals(constType)) { property = new Constant <TValue>(); if (typeof(TValue) == typeof(float)) { (property as Constant <TValue>).ConstantValue = (TValue)Convert.ChangeType( XmlConvert.ToSingle(node.Element("ConstantValue").Value), typeof(TValue) ); } else if (typeof(TValue) == typeof(double)) { (property as Constant <TValue>).ConstantValue = (TValue)Convert.ChangeType( XmlConvert.ToDouble(node.Element("ConstantValue").Value), typeof(TValue) ); } else if (typeof(TValue) == typeof(int)) { (property as Constant <TValue>).ConstantValue = (TValue)Convert.ChangeType( XmlConvert.ToInt32(node.Element("ConstantValue").Value), typeof(TValue) ); } else if (typeof(TValue) == typeof(Vector2)) { (property as Constant <TValue>).ConstantValue = (TValue)Convert.ChangeType( ParseVectorNode(node.Element("ConstantValue").Element("Vector")), typeof(TValue) ); } else if (typeof(TValue) == typeof(Color)) { (property as Constant <TValue>).ConstantValue = (TValue)Convert.ChangeType( ParseColorNode(node.Element("ConstantValue").Element("Color")), typeof(TValue) ); } } else if (propType.Equals(rangeType)) { property = new Range <TValue>(_randomizer); if (typeof(TValue) == typeof(float)) { (property as Range <TValue>).LowerBound = (TValue)Convert.ChangeType( XmlConvert.ToSingle(node.Element("LowerBound").Value), typeof(TValue) ); (property as Range <TValue>).UpperBound = (TValue)Convert.ChangeType( XmlConvert.ToSingle(node.Element("UpperBound").Value), typeof(TValue) ); } else if (typeof(TValue) == typeof(double)) { (property as Range <TValue>).LowerBound = (TValue)Convert.ChangeType( XmlConvert.ToDouble(node.Element("LowerBound").Value), typeof(TValue) ); (property as Range <TValue>).UpperBound = (TValue)Convert.ChangeType( XmlConvert.ToDouble(node.Element("UpperBound").Value), typeof(TValue) ); } else if (typeof(TValue) == typeof(int)) { (property as Range <TValue>).LowerBound = (TValue)Convert.ChangeType( XmlConvert.ToInt32(node.Element("LowerBound").Value), typeof(TValue) ); (property as Range <TValue>).UpperBound = (TValue)Convert.ChangeType( XmlConvert.ToInt32(node.Element("UpperBound").Value), typeof(TValue) ); } else if (typeof(TValue) == typeof(Vector2)) { (property as Range <TValue>).LowerBound = (TValue)Convert.ChangeType( ParseVectorNode(node.Element("LowerBound").Element("Vector")), typeof(TValue) ); (property as Range <TValue>).UpperBound = (TValue)Convert.ChangeType( ParseVectorNode(node.Element("UpperBound").Element("Vector")), typeof(TValue) ); } else if (typeof(TValue) == typeof(Color)) { (property as Range <TValue>).LowerBound = (TValue)Convert.ChangeType( ParseColorNode(node.Element("LowerBound").Element("Color")), typeof(TValue) ); (property as Range <TValue>).UpperBound = (TValue)Convert.ChangeType( ParseColorNode(node.Element("UpperBound").Element("Color")), typeof(TValue) ); } } else if (propType.Equals(rangeType)) { property = new RandomNumber <TValue>(_randomizer); (property as RandomNumber <TValue>).Scalar = XmlConvert.ToSingle(node.Element("Scalar").Value); } return(property); }
public void SetPropertyByName(string name, IParticleProperty <double> property) { }