1 | namespace Oni.Particles
|
---|
2 | {
|
---|
3 | internal class Attractor
|
---|
4 | {
|
---|
5 | #region Private data
|
---|
6 | private AttractorTarget target;
|
---|
7 | private AttractorSelector selector;
|
---|
8 | private string className;
|
---|
9 | private Value maxDistance;
|
---|
10 | private Value maxAngle;
|
---|
11 | private Value angleSelectMin;
|
---|
12 | private Value angleSelectMax;
|
---|
13 | private Value angleSelectWeight;
|
---|
14 | #endregion
|
---|
15 |
|
---|
16 | public Attractor()
|
---|
17 | {
|
---|
18 | target = AttractorTarget.None;
|
---|
19 | selector = AttractorSelector.Distance;
|
---|
20 | maxDistance = new Value(150.0f);
|
---|
21 | maxAngle = new Value(30.0f);
|
---|
22 | angleSelectMin = new Value(3.0f);
|
---|
23 | angleSelectMax = new Value(3.0f);
|
---|
24 | angleSelectWeight = new Value(3.0f);
|
---|
25 | }
|
---|
26 |
|
---|
27 | public Attractor(BinaryReader reader)
|
---|
28 | {
|
---|
29 | target = (AttractorTarget)reader.ReadInt32();
|
---|
30 | selector = (AttractorSelector)reader.ReadInt32();
|
---|
31 | reader.Skip(4);
|
---|
32 | className = reader.ReadString(64);
|
---|
33 | maxDistance = Value.Read(reader);
|
---|
34 | maxAngle = Value.Read(reader);
|
---|
35 | angleSelectMin = Value.Read(reader);
|
---|
36 | angleSelectMax = Value.Read(reader);
|
---|
37 | angleSelectWeight = Value.Read(reader);
|
---|
38 | }
|
---|
39 |
|
---|
40 | public void Write(BinaryWriter writer)
|
---|
41 | {
|
---|
42 | writer.Write((int)target);
|
---|
43 | writer.Write((int)selector);
|
---|
44 | writer.Skip(4);
|
---|
45 | writer.Write(className, 64);
|
---|
46 | maxDistance.Write(writer);
|
---|
47 | maxAngle.Write(writer);
|
---|
48 | angleSelectMin.Write(writer);
|
---|
49 | angleSelectMax.Write(writer);
|
---|
50 | angleSelectWeight.Write(writer);
|
---|
51 | }
|
---|
52 |
|
---|
53 | public AttractorTarget Target
|
---|
54 | {
|
---|
55 | get { return target; }
|
---|
56 | set { target = value; }
|
---|
57 | }
|
---|
58 |
|
---|
59 | public AttractorSelector Selector
|
---|
60 | {
|
---|
61 | get { return selector; }
|
---|
62 | set { selector = value; }
|
---|
63 | }
|
---|
64 |
|
---|
65 | public string ClassName
|
---|
66 | {
|
---|
67 | get { return className; }
|
---|
68 | set { className = value; }
|
---|
69 | }
|
---|
70 |
|
---|
71 | public Value MaxDistance
|
---|
72 | {
|
---|
73 | get { return maxDistance; }
|
---|
74 | set { maxDistance = value; }
|
---|
75 | }
|
---|
76 |
|
---|
77 | public Value MaxAngle
|
---|
78 | {
|
---|
79 | get { return maxAngle; }
|
---|
80 | set { maxAngle = value; }
|
---|
81 | }
|
---|
82 |
|
---|
83 | public Value AngleSelectMin
|
---|
84 | {
|
---|
85 | get { return angleSelectMin; }
|
---|
86 | set { angleSelectMin = value; }
|
---|
87 | }
|
---|
88 |
|
---|
89 | public Value AngleSelectMax
|
---|
90 | {
|
---|
91 | get { return angleSelectMax; }
|
---|
92 | set { angleSelectMax = value; }
|
---|
93 | }
|
---|
94 |
|
---|
95 | public Value AngleSelectWeight
|
---|
96 | {
|
---|
97 | get { return angleSelectWeight; }
|
---|
98 | set { angleSelectWeight = value; }
|
---|
99 | }
|
---|
100 | }
|
---|
101 | }
|
---|