Elin Decompiled Documentation EA 23.305 Nightly
Loading...
Searching...
No Matches
RenderData.cs
Go to the documentation of this file.
1using System;
2using UnityEngine;
3
5{
6 public const int HeldLightMod = 1572864;
7
8 public static Quaternion deadRotation = Quaternion.Euler(0f, 0f, 90f);
9
10 [NonSerialized]
11 public Vector3 _offset;
12
14
15 public int idShadow;
16
17 public MeshPass pass;
18
19 public Vector3 offset;
20
21 public Vector3 offsetBack;
22
23 public Vector3 offsetShadow;
24
25 public Vector3 heldPos;
26
27 public Vector2 imagePivot = new Vector2(0.5f, 0.25f);
28
29 public Vector2 imageScale = new Vector2(1f, 1f);
30
31 public Vector2 size;
32
33 public bool multiSize;
34
35 public bool animate;
36
37 public bool useOffsetBack;
38
39 public bool persistActor;
40
41 public bool symmetry = true;
42
43 public float hangedFixZ;
44
45 public float stackZ;
46
48
50
52
53 [NonSerialized]
54 public bool initialized;
55
56 [NonSerialized]
57 private Sprite _sprite;
58
59 [NonSerialized]
60 public bool hasSubPass;
61
62 [NonSerialized]
63 public bool hasSnowPass;
64
65 private float orgX;
66
67 private float orgY;
68
69 private float orgZ;
70
71 public static Quaternion shadowRotation => Quaternion.Euler(0f, 0f, renderSetting.shadowAngle);
72
73 public static Vector3 shadowScale => renderSetting.shadowScale;
74
75 public static Vector3 shadowOffset => renderSetting.shadowOffset;
76
77 public virtual bool SkipOnMap => false;
78
79 public virtual string pathSprite => "Scene/Render/Data/";
80
81 public virtual string prefabName => "ThingActor";
82
83 public virtual bool ForceAltHeldPosition => false;
84
85 public virtual CardActor CreateActor()
86 {
87 return null;
88 }
89
90 private void Awake()
91 {
92 Init();
93 }
94
95 public void Init()
96 {
97 if (!initialized)
98 {
99 initialized = true;
100 _offset = offset;
103 OnInit();
104 }
105 }
106
107 public virtual void OnInit()
108 {
109 }
110
111 public int ConvertTile(int tile)
112 {
113 return tile / 100 * (int)pass.pmesh.tiling.x + tile % 100;
114 }
115
117 {
118 Vector3 renderPos = EClass.scene.camSupport.renderPos;
119 if (multiSize)
120 {
121 renderPos.y -= 0.8f;
122 }
123 p.x = renderPos.x;
124 p.y = renderPos.y;
125 p.z = renderPos.z;
126 Draw(p);
127 }
128
129 public void Draw(RenderParam p, int tile)
130 {
131 p.tile = tile;
132 Draw(p);
133 }
134
135 public virtual void Draw(RenderParam p)
136 {
138 MeshBatch meshBatch = meshPass.batches[meshPass.batchIdx];
139 int num = ((p.tile > 0f) ? 1 : (-1));
140 if (useOffsetBack)
141 {
142 _offset = ((p.dir == 2 || p.dir == 3) ? offsetBack : offset);
143 }
144 if (meshPass == pass.subPass)
145 {
146 meshBatch.colors[meshPass.idx] = p.color - 1572864f;
148 }
149 else
150 {
151 meshBatch.colors[meshPass.idx] = p.color;
152 meshBatch.matrices[meshPass.idx].m03 = p.x + _offset.x * (float)num;
153 meshBatch.matrices[meshPass.idx].m13 = p.y + _offset.y;
154 meshBatch.matrices[meshPass.idx].m23 = p.z + _offset.z;
155 }
156 meshBatch.tiles[meshPass.idx] = p.tile + (float)(p.liquidLv * 10000 * num);
157 meshPass.idx++;
158 if (meshPass.idx == meshPass.batchSize)
159 {
160 meshPass.NextBatch();
161 }
162 }
163
164 private void OnValidate()
165 {
166 _offset = offset;
167 }
168
169 public void DrawRepeatTo(RenderParam p, float maxY, float height, ref Vector3 peakFix, bool skipFirst = false, int fire = 0, bool isBlock = false)
170 {
171 int num = (int)((maxY + height + peakFix.x - p.y) / peakFix.y);
172 bool snow = p.snow;
173 if (num == 0)
174 {
175 if (!skipFirst)
176 {
177 Draw(p);
178 }
179 return;
180 }
181 orgY = p.y;
182 orgZ = p.z;
183 p.snow = !isBlock && snow;
184 for (int i = 0; i < num + 1; i++)
185 {
186 if (i == num)
187 {
188 p.y = maxY + height - peakFix.y;
189 p.z -= peakFix.z + peakFix.x;
190 p.snow = snow;
191 }
192 if (skipFirst)
193 {
194 if (i != 0 && num > 1)
195 {
196 Draw(p);
197 }
198 }
199 else
200 {
201 Draw(p);
202 }
203 if (fire > 0 && i != num)
204 {
206 fire--;
207 }
208 p.y += peakFix.y;
209 p.z += peakFix.z;
210 }
211 p.y = orgY;
212 p.z = orgZ;
213 }
214
215 public void DrawRepeat(RenderParam p, int count, float size, bool skipFirst = false)
216 {
217 if (count == 1)
218 {
219 if (!skipFirst)
220 {
221 Draw(p);
222 }
223 return;
224 }
225 bool snow = p.snow;
226 orgY = p.y;
227 orgZ = p.z;
228 p.snow = false;
229 for (int i = 0; i < count; i++)
230 {
231 if (i == count - 1)
232 {
233 p.snow = snow;
234 }
235 if (i != 0 || !skipFirst)
236 {
237 Draw(p);
238 }
239 p.y += renderSetting.peakFix.y * size;
240 p.z += renderSetting.peakFix.z * size;
241 }
242 p.y = orgY;
243 p.z = orgZ;
244 }
245
246 public virtual void DrawWithRotation(RenderParam p, float angle)
247 {
248 }
249
250 public virtual void DrawShadow(RenderParam p)
251 {
252 int num = ((p.tile > 0f) ? 1 : (-1));
253 MeshPass shadowPass = pass.shadowPass;
254 MeshBatch meshBatch = shadowPass.batches[shadowPass.batchIdx];
255 meshBatch.matrices[shadowPass.idx].SetTRS(p.NewVector3 + offset + shadowOffset, shadowRotation, shadowScale);
256 meshBatch.tiles[shadowPass.idx] = p.tile;
257 shadowPass.idx++;
258 if (shadowPass.idx == shadowPass.batchSize)
259 {
260 shadowPass.NextBatch();
261 }
262 if (multiSize)
263 {
264 shadowPass = pass.shadowPass;
265 MeshBatch meshBatch2 = shadowPass.batches[shadowPass.batchIdx];
266 meshBatch2.matrices[shadowPass.idx].SetTRS(p.v + offsetShadow, shadowRotation, shadowScale);
267 meshBatch2.tiles[shadowPass.idx] = p.tile - pass.pmesh.tiling.x * (float)num;
268 shadowPass.idx++;
269 if (shadowPass.idx == shadowPass.batchSize)
270 {
271 shadowPass.NextBatch();
272 }
273 }
274 }
275}
BaseTileMap tileMap
RenderDataEffect rendererEffect
Definition: BaseTileMap.cs:229
Vector3 renderPos
Definition: EClass.cs:6
static Scene scene
Definition: EClass.cs:31
static BaseGameScreen screen
Definition: EClass.cs:33
Matrix4x4[] matrices
Definition: MeshBatch.cs:5
float[] tiles
Definition: MeshBatch.cs:7
float[] colors
Definition: MeshBatch.cs:9
MeshPass subPass
Definition: MeshPass.cs:15
int batchIdx
Definition: MeshPass.cs:60
ProceduralMesh pmesh
Definition: MeshPass.cs:25
MeshPass snowPass
Definition: MeshPass.cs:17
void NextBatch()
Definition: MeshPass.cs:417
int batchSize
Definition: MeshPass.cs:63
MeshPass shadowPass
Definition: MeshPass.cs:19
List< MeshBatch > batches
Definition: MeshPass.cs:66
int idx
Definition: MeshPass.cs:57
new void Draw(RenderParam p, int tile=0)
static Quaternion shadowRotation
Definition: RenderData.cs:71
bool animate
Definition: RenderData.cs:35
const int HeldLightMod
Definition: RenderData.cs:6
void DrawRepeatTo(RenderParam p, float maxY, float height, ref Vector3 peakFix, bool skipFirst=false, int fire=0, bool isBlock=false)
Definition: RenderData.cs:169
float orgZ
Definition: RenderData.cs:69
static GameSetting.RenderSetting renderSetting
Definition: RenderData.cs:13
virtual void DrawWithRotation(RenderParam p, float angle)
Definition: RenderData.cs:246
virtual bool ForceAltHeldPosition
Definition: RenderData.cs:83
virtual bool SkipOnMap
Definition: RenderData.cs:77
static Vector3 shadowOffset
Definition: RenderData.cs:75
void Draw(RenderParam p, int tile)
Definition: RenderData.cs:129
bool hasSubPass
Definition: RenderData.cs:60
Vector3 offsetBack
Definition: RenderData.cs:21
void OnValidate()
Definition: RenderData.cs:164
virtual void OnInit()
Definition: RenderData.cs:107
Vector3 offsetShadow
Definition: RenderData.cs:23
float orgY
Definition: RenderData.cs:67
virtual string prefabName
Definition: RenderData.cs:81
bool symmetry
Definition: RenderData.cs:41
void RenderToRenderCam(RenderParam p)
Definition: RenderData.cs:116
SubPassData subCrate
Definition: RenderData.cs:47
bool useOffsetBack
Definition: RenderData.cs:37
static Vector3 shadowScale
Definition: RenderData.cs:73
static Quaternion deadRotation
Definition: RenderData.cs:8
bool initialized
Definition: RenderData.cs:54
RenderData subData
Definition: RenderData.cs:51
Vector3 _offset
Definition: RenderData.cs:11
void DrawRepeat(RenderParam p, int count, float size, bool skipFirst=false)
Definition: RenderData.cs:215
Vector2 imagePivot
Definition: RenderData.cs:27
Vector2 imageScale
Definition: RenderData.cs:29
Vector3 offset
Definition: RenderData.cs:19
void Init()
Definition: RenderData.cs:95
float stackZ
Definition: RenderData.cs:45
int ConvertTile(int tile)
Definition: RenderData.cs:111
virtual void Draw(RenderParam p)
Definition: RenderData.cs:135
bool multiSize
Definition: RenderData.cs:33
Sprite _sprite
Definition: RenderData.cs:57
bool hasSnowPass
Definition: RenderData.cs:63
virtual CardActor CreateActor()
Definition: RenderData.cs:85
SourcePref shadowPref
Definition: RenderData.cs:49
virtual void DrawShadow(RenderParam p)
Definition: RenderData.cs:250
float orgX
Definition: RenderData.cs:65
int idShadow
Definition: RenderData.cs:15
void Awake()
Definition: RenderData.cs:90
float hangedFixZ
Definition: RenderData.cs:43
Vector3 heldPos
Definition: RenderData.cs:25
bool persistActor
Definition: RenderData.cs:39
MeshPass pass
Definition: RenderData.cs:17
virtual string pathSprite
Definition: RenderData.cs:79
Vector2 size
Definition: RenderData.cs:31
int liquidLv
Definition: RenderParam.cs:7
Vector3 NewVector3
Definition: RenderParam.cs:23
Vector3 v
Definition: RenderParam.cs:19
CameraSupport camSupport
Definition: Scene.cs:41
Quaternion rotation
Definition: SubPassData.cs:15
Vector3 scale
Definition: SubPassData.cs:13
static SubPassData Current
Definition: SubPassData.cs:9
Vector3 offset
Definition: SubPassData.cs:11