1 |
using System; |
2 |
using Oni.Imaging; |
3 |
|
4 |
namespace Oni.Particles |
5 |
{ |
6 |
internal class Appearance |
7 |
{ |
8 |
#region Private data |
9 |
private Value scale; |
10 |
private Value yScale; |
11 |
private Value rotation; |
12 |
private Value alpha; |
13 |
private Value xOffset; |
14 |
private Value xShorten; |
15 |
private Value tint; |
16 |
private Value edgeFadeMin; |
17 |
private Value edgeFadeMax; |
18 |
private Value maxContrail; |
19 |
private Value lensFlareDistance; |
20 |
private int fadeInFrames; |
21 |
private int fadeOutFrames; |
22 |
private int maxDecals; |
23 |
private int decalFadeFrames; |
24 |
private Value decalWrapAngle; |
25 |
private string textureName; |
26 |
#endregion |
27 |
|
28 |
public Appearance() |
29 |
{ |
30 |
scale = Value.FloatOne; |
31 |
yScale = Value.FloatOne; |
32 |
rotation = Value.FloatZero; |
33 |
alpha = Value.FloatOne; |
34 |
textureName = "notfoundtex"; |
35 |
xOffset = Value.FloatZero; |
36 |
xShorten = Value.FloatZero; |
37 |
tint = new Value(new Color(255, 255, 255)); |
38 |
edgeFadeMin = Value.FloatZero; |
39 |
edgeFadeMax = Value.FloatZero; |
40 |
maxContrail = Value.FloatZero; |
41 |
lensFlareDistance = Value.FloatZero; |
42 |
maxDecals = 100; |
43 |
decalFadeFrames = 60; |
44 |
decalWrapAngle = new Value(60.0f); |
45 |
} |
46 |
|
47 |
public Appearance(BinaryReader reader) |
48 |
{ |
49 |
scale = Value.Read(reader); |
50 |
yScale = Value.Read(reader); |
51 |
rotation = Value.Read(reader); |
52 |
alpha = Value.Read(reader); |
53 |
textureName = reader.ReadString(32); |
54 |
xOffset = Value.Read(reader); |
55 |
xShorten = Value.Read(reader); |
56 |
tint = Value.Read(reader); |
57 |
edgeFadeMin = Value.Read(reader); |
58 |
edgeFadeMax = Value.Read(reader); |
59 |
maxContrail = Value.Read(reader); |
60 |
lensFlareDistance = Value.Read(reader); |
61 |
fadeInFrames = reader.ReadInt16(); |
62 |
fadeOutFrames = reader.ReadInt16(); |
63 |
maxDecals = reader.ReadInt16(); |
64 |
decalFadeFrames = reader.ReadInt16(); |
65 |
decalWrapAngle = Value.Read(reader); |
66 |
} |
67 |
|
68 |
public void Write(BinaryWriter writer) |
69 |
{ |
70 |
scale.Write(writer); |
71 |
yScale.Write(writer); |
72 |
rotation.Write(writer); |
73 |
alpha.Write(writer); |
74 |
writer.Write(textureName, 32); |
75 |
xOffset.Write(writer); |
76 |
xShorten.Write(writer); |
77 |
tint.Write(writer); |
78 |
edgeFadeMin.Write(writer); |
79 |
edgeFadeMax.Write(writer); |
80 |
maxContrail.Write(writer); |
81 |
lensFlareDistance.Write(writer); |
82 |
writer.WriteInt16(fadeInFrames); |
83 |
writer.WriteInt16(fadeOutFrames); |
84 |
writer.WriteInt16(maxDecals); |
85 |
writer.WriteInt16(decalFadeFrames); |
86 |
decalWrapAngle.Write(writer); |
87 |
} |
88 |
|
89 |
public string TextureName |
90 |
{ |
91 |
get { return textureName; } |
92 |
set { textureName = value; } |
93 |
} |
94 |
|
95 |
public Value Scale |
96 |
{ |
97 |
get { return scale; } |
98 |
set { scale = value; } |
99 |
} |
100 |
|
101 |
public Value YScale |
102 |
{ |
103 |
get { return yScale; } |
104 |
set { yScale = value; } |
105 |
} |
106 |
|
107 |
public Value Rotation |
108 |
{ |
109 |
get { return rotation; } |
110 |
set { rotation = value; } |
111 |
} |
112 |
|
113 |
public Value Alpha |
114 |
{ |
115 |
get { return alpha; } |
116 |
set { alpha = value; } |
117 |
} |
118 |
|
119 |
public Value XOffset |
120 |
{ |
121 |
get { return xOffset; } |
122 |
set { xOffset = value; } |
123 |
} |
124 |
|
125 |
public Value XShorten |
126 |
{ |
127 |
get { return xShorten; } |
128 |
set { xShorten = value; } |
129 |
} |
130 |
|
131 |
public Value Tint |
132 |
{ |
133 |
get { return tint; } |
134 |
set { tint = value; } |
135 |
} |
136 |
|
137 |
public Value EdgeFadeMin |
138 |
{ |
139 |
get { return edgeFadeMin; } |
140 |
set { edgeFadeMin = value; } |
141 |
} |
142 |
|
143 |
public Value EdgeFadeMax |
144 |
{ |
145 |
get { return edgeFadeMax; } |
146 |
set { edgeFadeMax = value; } |
147 |
} |
148 |
|
149 |
public Value MaxContrail |
150 |
{ |
151 |
get { return maxContrail; } |
152 |
set { maxContrail = value; } |
153 |
} |
154 |
|
155 |
public Value LensFlareDistance |
156 |
{ |
157 |
get { return lensFlareDistance; } |
158 |
set { lensFlareDistance = value; } |
159 |
} |
160 |
|
161 |
public int LensFlareFadeInFrames |
162 |
{ |
163 |
get { return fadeInFrames; } |
164 |
set { fadeInFrames = value; } |
165 |
} |
166 |
|
167 |
public int LensFlareFadeOutFrames |
168 |
{ |
169 |
get { return fadeOutFrames; } |
170 |
set { fadeOutFrames = value; } |
171 |
} |
172 |
|
173 |
public int MaxDecals |
174 |
{ |
175 |
get { return maxDecals; } |
176 |
set { maxDecals = value; } |
177 |
} |
178 |
|
179 |
public int DecalFadeFrames |
180 |
{ |
181 |
get { return decalFadeFrames; } |
182 |
set { decalFadeFrames = value; } |
183 |
} |
184 |
|
185 |
public Value DecalWrapAngle |
186 |
{ |
187 |
get { return decalWrapAngle; } |
188 |
set { decalWrapAngle = value; } |
189 |
} |
190 |
} |
191 |
} |