namespace Oni.Particles { internal class Attractor { #region Private data private AttractorTarget target; private AttractorSelector selector; private string className; private Value maxDistance; private Value maxAngle; private Value angleSelectMin; private Value angleSelectMax; private Value angleSelectWeight; #endregion public Attractor() { target = AttractorTarget.None; selector = AttractorSelector.Distance; maxDistance = new Value(150.0f); maxAngle = new Value(30.0f); angleSelectMin = new Value(3.0f); angleSelectMax = new Value(3.0f); angleSelectWeight = new Value(3.0f); } public Attractor(BinaryReader reader) { target = (AttractorTarget)reader.ReadInt32(); selector = (AttractorSelector)reader.ReadInt32(); reader.Skip(4); className = reader.ReadString(64); maxDistance = Value.Read(reader); maxAngle = Value.Read(reader); angleSelectMin = Value.Read(reader); angleSelectMax = Value.Read(reader); angleSelectWeight = Value.Read(reader); } public void Write(BinaryWriter writer) { writer.Write((int)target); writer.Write((int)selector); writer.Skip(4); writer.Write(className, 64); maxDistance.Write(writer); maxAngle.Write(writer); angleSelectMin.Write(writer); angleSelectMax.Write(writer); angleSelectWeight.Write(writer); } public AttractorTarget Target { get { return target; } set { target = value; } } public AttractorSelector Selector { get { return selector; } set { selector = value; } } public string ClassName { get { return className; } set { className = value; } } public Value MaxDistance { get { return maxDistance; } set { maxDistance = value; } } public Value MaxAngle { get { return maxAngle; } set { maxAngle = value; } } public Value AngleSelectMin { get { return angleSelectMin; } set { angleSelectMin = value; } } public Value AngleSelectMax { get { return angleSelectMax; } set { angleSelectMax = value; } } public Value AngleSelectWeight { get { return angleSelectWeight; } set { angleSelectWeight = value; } } } }