Elin Decompiled Documentation EA 23.344.1 Nightly
Loading...
Searching...
No Matches
CardActor Class Reference
Inheritance diagram for CardActor:
Actor SceneObject EMono CharaActor CharaActorPCC

Public Types

enum  Type { Default , Boat , Canvas , MultiSprite }
 

Public Member Functions

void SetOwner (Card t)
 
virtual void OnSetOwner ()
 
virtual void IdleFrame ()
 
virtual void NextFrame ()
 
virtual void NextDir ()
 
virtual int GetFrame ()
 
virtual void OnRender (RenderParam p)
 
virtual void ReloadSprite ()
 
virtual void RefreshSprite ()
 
virtual void Kill ()
 
void SetVisible (bool enable)
 

Public Attributes

Card owner
 
SpriteRenderer sr
 
SpriteRenderer sr2
 
SpriteReplacerAnimation srAnime
 
MaterialPropertyBlock mpb
 
MaterialPropertyBlock mpb2
 
Type type
 

Static Protected Attributes

static Vector3 tempV
 
static Vector3 tempV2
 

Properties

virtual bool isPCC [get]
 
virtual int currentDir [get]
 
- Properties inherited from EMono
static Game game [get]
 
static bool AdvMode [get]
 
static Player player [get]
 
static Chara pc [get]
 
static UI ui [get]
 
static Map _map [get]
 
static Zone _zone [get]
 
static FactionBranch Branch [get]
 
static FactionBranch BranchOrHomeBranch [get]
 
static Faction Home [get]
 
static Scene scene [get]
 
static BaseGameScreen screen [get]
 
static GameSetting setting [get]
 
static GameData gamedata [get]
 
static ColorProfile Colors [get]
 
static World world [get]
 
static SoundManager Sound [get]
 
static SourceManager sources [get]
 
static SourceManager editorSources [get]
 
static CoreDebug debug [get]
 

Private Member Functions

void Awake ()
 

Private Attributes

float destLiquid
 
float spriteTimer
 
int spriteIndex
 
bool visible = true
 
Vector3 originalScale
 

Additional Inherited Members

- Static Public Member Functions inherited from EMono
static int rnd (int a)
 
- Static Public Attributes inherited from EMono
static Core core
 

Detailed Description

Definition at line 3 of file CardActor.cs.

Member Enumeration Documentation

◆ Type

Enumerator
Default 
Boat 
Canvas 
MultiSprite 

Definition at line 5 of file CardActor.cs.

Member Function Documentation

◆ Awake()

void CardActor.Awake ( )
inlineprivate

Definition at line 45 of file CardActor.cs.

46 {
47 originalScale = base.transform.localScale;
48 }
Vector3 originalScale
Definition: CardActor.cs:35

References originalScale.

◆ GetFrame()

virtual int CardActor.GetFrame ( )
inlinevirtual

Reimplemented in CharaActorPCC.

Definition at line 100 of file CardActor.cs.

101 {
102 return 0;
103 }

Referenced by CardRenderer.Draw(), CharaRenderer.DrawHat(), and CharaRenderer.DrawHeld().

◆ IdleFrame()

virtual void CardActor.IdleFrame ( )
inlinevirtual

Reimplemented in CharaActorPCC.

Definition at line 88 of file CardActor.cs.

89 {
90 }

Referenced by CardRenderer.IdleFrame(), CharaActor.OnSetOwner(), and CharaRenderer.UpdatePosition().

◆ Kill()

virtual void CardActor.Kill ( )
inlinevirtual

Reimplemented in CharaActorPCC.

Definition at line 310 of file CardActor.cs.

311 {
312 sr.sprite = null;
313 PoolManager.Despawn(base.transform);
314 }
static void Despawn(Component c)
Definition: PoolManager.cs:128

References PoolManager.Despawn().

Referenced by CardRenderer.KillActor().

◆ NextDir()

virtual void CardActor.NextDir ( )
inlinevirtual

Reimplemented in CharaActorPCC.

Definition at line 96 of file CardActor.cs.

97 {
98 }

Referenced by CardRenderer.NextDir().

◆ NextFrame()

virtual void CardActor.NextFrame ( )
inlinevirtual

Reimplemented in CharaActor, and CharaActorPCC.

Definition at line 92 of file CardActor.cs.

93 {
94 }

Referenced by CardRenderer.NextFrame(), and CharaRenderer.UpdatePosition().

◆ OnRender()

virtual void CardActor.OnRender ( RenderParam  p)
inlinevirtual

Reimplemented in CharaActorPCC.

Definition at line 105 of file CardActor.cs.

106 {
107 this.SetActive(enable: true);
108 if (!visible)
109 {
110 SetVisible(enable: true);
111 }
114 if (data.useOffsetBack && owner != EMono.pc.held)
115 {
116 bool num;
117 if (!data.symmetry)
118 {
119 if (p.dir == 1)
120 {
121 goto IL_0079;
122 }
123 num = p.dir == 2;
124 }
125 else
126 {
127 num = p.dir % 2 == 1;
128 }
129 if (num)
130 {
131 goto IL_0079;
132 }
133 }
134 tempV.x = p.x + data.offset.x + current.offset.x;
135 tempV.y = p.y + data.offset.y + current.offset.y;
136 tempV.z = p.z + data.offset.z + current.offset.z;
137 goto IL_016b;
138 IL_016b:
139 if (isPCC)
140 {
141 RenderDataPcc renderDataPcc = data as RenderDataPcc;
142 CharaActorPCC charaActorPCC = this as CharaActorPCC;
143 tempV.x = (float)(int)(tempV.x * 100f) * 0.01f;
144 tempV.y = (float)(int)(tempV.y * 100f) * 0.01f;
145 tempV2.x = charaActorPCC.provider.vCurrent.source.size.x * current.scale.x;
146 tempV2.y = charaActorPCC.provider.vCurrent.source.size.y * current.scale.y;
147 tempV2.z = renderDataPcc._scale.z * current.scale.z;
148 base.transform.localRotation = current.rotation;
149 }
150 else
151 {
152 tempV2.x = originalScale.x * current.scale.x;
153 tempV2.y = originalScale.y * current.scale.y;
154 tempV2.z = originalScale.z * current.scale.z;
155 }
156 if (type == Type.Boat)
157 {
158 float floatY = EMono.scene.screenElin.tileMap.floatY;
159 int floatV = EMono.scene.screenElin.tileMap.floatV;
160 sr2.transform.localPosition = new Vector3(0f, -0.005f * floatY, sr2.transform.localPosition.z);
161 int num2 = 0;
162 if (floatV == 1)
163 {
164 if (floatY < 2f)
165 {
166 num2 = 0;
167 }
168 else
169 {
170 num2 = 1;
171 }
172 }
173 else if (floatY < 3f)
174 {
175 num2 = 3;
176 }
177 else
178 {
179 num2 = 2;
180 }
181 num2 = ((floatV == 1) ? ((!(floatY < 0f)) ? ((floatY < 3f) ? 1 : 2) : 0) : ((!(floatY < 2f)) ? ((!(floatY < 5f)) ? 2 : 3) : 0));
182 srAnime.sr.sprite = srAnime.data.GetSprites().TryGet(num2, returnNull: true);
183 }
184 base.transform.position = tempV;
185 base.transform.localScale = tempV2;
186 destLiquid = Mathf.Lerp(destLiquid, p.liquidLv, Core.gameDeltaNoPause * (float)((destLiquid > (float)p.liquidLv) ? 90 : 20));
187 mpb.SetFloat("_MatColor", p.matColor);
188 mpb.SetFloat("_Color", p.color);
189 mpb.SetFloat("_Liquid", destLiquid);
190 sr.SetPropertyBlock(mpb);
191 if ((bool)sr2)
192 {
193 if ((bool)sr2.sprite)
194 {
195 mpb2.SetTexture("_MainTex", sr2.sprite.texture);
196 }
197 mpb2.SetTexture("_MaskTex", sr.sprite.texture);
198 mpb2.SetFloat("_MatColor", p.matColor);
199 mpb2.SetFloat("_Color", p.color);
200 mpb2.SetFloat("_Liquid", destLiquid);
201 sr2.SetPropertyBlock(mpb2);
202 }
204 if (!replacer.HasSprite(owner.sourceCard.idSprite, data))
205 {
206 return;
207 }
208 SpriteData spriteData = replacer.data;
209 if (p.snow && replacer.suffixes.TryGetValue("_snow", out var value))
210 {
211 spriteData = value;
212 }
213 if (spriteData.frame <= 1)
214 {
215 return;
216 }
218 if (spriteTimer >= spriteData.time)
219 {
220 spriteTimer -= spriteData.time;
221 spriteIndex++;
222 if (spriteIndex >= spriteData.frame)
223 {
224 spriteIndex = 0;
225 }
226 sr.sprite = spriteData.GetSprites().TryGet(spriteIndex, returnNull: true);
227 if ((bool)sr.sprite)
228 {
229 mpb.SetTexture("_MainTex", sr.sprite.texture);
230 }
231 }
232 return;
233 IL_0079:
234 tempV.x = p.x + data.offsetBack.x + current.offset.x;
235 tempV.y = p.y + data.offsetBack.y + current.offset.y;
236 tempV.z = p.z + data.offsetBack.z + current.offset.z;
237 goto IL_016b;
238 }
BaseTileMap tileMap
float floatY
Definition: BaseTileMap.cs:329
static Vector3 tempV2
Definition: CardActor.cs:39
int spriteIndex
Definition: CardActor.cs:31
void SetVisible(bool enable)
Definition: CardActor.cs:316
virtual bool isPCC
Definition: CardActor.cs:41
SpriteReplacerAnimation srAnime
Definition: CardActor.cs:19
SpriteRenderer sr
Definition: CardActor.cs:15
float spriteTimer
Definition: CardActor.cs:29
SpriteRenderer sr2
Definition: CardActor.cs:17
Type type
Definition: CardActor.cs:25
MaterialPropertyBlock mpb2
Definition: CardActor.cs:23
static Vector3 tempV
Definition: CardActor.cs:37
float destLiquid
Definition: CardActor.cs:27
bool visible
Definition: CardActor.cs:33
MaterialPropertyBlock mpb
Definition: CardActor.cs:21
Card owner
Definition: CardActor.cs:13
override string idSprite
Definition: CardRow.cs:64
virtual CardRow sourceCard
Definition: Card.cs:2183
CardRenderer renderer
Definition: Card.cs:64
Card held
Definition: Chara.cs:70
Definition: Core.cs:14
static float gameDeltaNoPause
Definition: Core.cs:23
static float delta
Definition: Core.cs:17
Definition: EMono.cs:4
static Chara pc
Definition: EMono.cs:13
static Scene scene
Definition: EMono.cs:27
bool symmetry
Definition: RenderData.cs:41
bool useOffsetBack
Definition: RenderData.cs:37
RenderData data
Definition: RenderObject.cs:34
int liquidLv
Definition: RenderParam.cs:7
SpriteReplacer replacer
Definition: RenderRow.cs:89
GameScreen screenElin
Definition: Scene.cs:93
float time
Definition: SpriteData.cs:30
Sprite[] GetSprites()
Definition: SpriteData.cs:134
Dictionary< string, SpriteData > suffixes
SpriteData data
bool HasSprite(string id, RenderData renderData=null)
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

References MeshPassParam.color, SubPassData.Current, RenderObject.data, SpriteReplacer.data, SpriteReplacerAnimation.data, Core.delta, destLiquid, RenderParam.dir, BaseTileMap.floatV, BaseTileMap.floatY, SpriteData.frame, Core.gameDeltaNoPause, SpriteData.GetSprites(), SpriteReplacer.HasSprite(), Chara.held, CardRow.idSprite, isPCC, RenderParam.liquidLv, MeshPassParam.matColor, mpb, mpb2, SubPassData.offset, owner, EMono.pc, Card.renderer, RenderRow.replacer, SubPassData.rotation, SubPassData.scale, EMono.scene, Scene.screenElin, SetVisible(), MeshPassParam.snow, Card.sourceCard, spriteIndex, spriteTimer, sr, sr2, srAnime, SpriteReplacer.suffixes, RenderData.symmetry, tempV, tempV2, BaseGameScreen.tileMap, SpriteData.time, type, RenderData.useOffsetBack, and visible.

Referenced by CardRenderer.Draw(), and EffectIRenderer.OnUpdate().

◆ OnSetOwner()

virtual void CardActor.OnSetOwner ( )
inlinevirtual

Reimplemented in CharaActor, and CharaActorPCC.

Definition at line 84 of file CardActor.cs.

85 {
86 }

Referenced by SetOwner().

◆ RefreshSprite()

virtual void CardActor.RefreshSprite ( )
inlinevirtual

Reimplemented in CharaActor, and CharaActorPCC.

Definition at line 246 of file CardActor.cs.

247 {
248 switch (type)
249 {
250 case Type.Canvas:
251 if (owner == null || !sr2)
252 {
253 break;
254 }
255 if (owner.c_textureData != null)
256 {
257 sr2.sprite = owner.GetPaintSprite();
258 if (owner.trait is TraitCanvas traitCanvas)
259 {
260 sr2.transform.SetLocalScale(traitCanvas.Scale, traitCanvas.Scale, 1f);
261 mpb2.SetFloat("_PortraitFilterStrength", traitCanvas.UsePortraitFilter ? 1 : 0);
262 }
263 }
264 else
265 {
266 sr2.sprite = null;
267 }
268 break;
269 case Type.Boat:
270 sr2.SetActive(owner.Cell.IsFloorWater);
271 break;
272 case Type.MultiSprite:
273 sr2.sprite = owner.GetSprite();
274 break;
275 }
276 int dir = owner.dir;
277 Sprite sprite = owner.GetSprite(dir);
278 if (!sr.sprite)
279 {
280 sr.sprite = sprite;
281 }
282 sr.flipX = dir == 1 || dir == 3;
283 mpb.SetTexture("_MainTex", sprite.texture);
284 Vector4 value = new Vector4(sprite.textureRect.min.x / (float)sprite.texture.width, sprite.textureRect.min.y / (float)sprite.texture.height, sprite.textureRect.max.x / (float)sprite.texture.width, sprite.textureRect.max.y / (float)sprite.texture.height);
285 mpb.SetVector("_Rect", value);
286 mpb.SetFloat("_PixelHeight", sprite.rect.height);
287 if (!sr2)
288 {
289 return;
290 }
291 if ((bool)sr2.sprite && (bool)sr2.sprite.texture)
292 {
293 sr2.flipX = dir == 1 || dir == 3;
294 sprite = sr2.sprite;
295 if ((bool)sprite)
296 {
297 _ = sprite.textureRect;
298 value = new Vector4(sprite.textureRect.min.x / (float)sprite.texture.width, sprite.textureRect.min.y / (float)sprite.texture.height, sprite.textureRect.max.x / (float)sprite.texture.width, sprite.textureRect.max.y / (float)sprite.texture.height);
299 mpb2.SetTexture("_MainTex", sprite.texture);
300 mpb2.SetVector("_Rect", value);
301 mpb2.SetFloat("_PixelHeight", sprite.rect.height);
302 }
303 }
304 else
305 {
306 sr2.sprite = null;
307 }
308 }
Sprite GetPaintSprite()
Definition: Card.cs:7587
virtual Sprite GetSprite(int dir=0)
Definition: Card.cs:6564
Trait trait
Definition: Card.cs:54
byte[] c_textureData
Definition: Card.cs:1981
Cell Cell
Definition: Card.cs:2107
int dir
Definition: Card.cs:149
bool IsFloorWater
Definition: Cell.cs:771

References Card.c_textureData, Card.Cell, Card.dir, Card.GetPaintSprite(), Card.GetSprite(), Cell.IsFloorWater, mpb, mpb2, owner, sr, sr2, Card.trait, and type.

Referenced by CardRenderer.RefreshSprite(), CharaExtension.RefreshSpriteRenderer(), ReloadSprite(), Card.RenderMarker(), and SetOwner().

◆ ReloadSprite()

virtual void CardActor.ReloadSprite ( )
inlinevirtual

Reimplemented in CharaActor.

Definition at line 240 of file CardActor.cs.

241 {
242 sr.sprite = null;
244 }
virtual void RefreshSprite()
Definition: CardActor.cs:246

References RefreshSprite().

◆ SetOwner()

void CardActor.SetOwner ( Card  t)
inline

Definition at line 50 of file CardActor.cs.

51 {
52 base.gameObject.SetActive(value: true);
53 owner = t;
54 if (mpb == null)
55 {
56 mpb = new MaterialPropertyBlock();
57 }
58 mpb.SetColor("_Mat", EMono.Colors.matColors.TryGetValue(t.material.alias).main);
59 if ((bool)sr)
60 {
61 sr.SetPropertyBlock(mpb);
62 }
63 if ((bool)sr2)
64 {
65 if (mpb2 == null)
66 {
67 mpb2 = new MaterialPropertyBlock();
68 }
69 mpb2.SetColor("_Mat", Color.white);
70 sr2.SetPropertyBlock(mpb2);
71 }
72 OnSetOwner();
73 if (Application.isEditor)
74 {
75 base.gameObject.name = owner.Name;
76 }
77 if (type == Type.Boat)
78 {
79 srAnime.SetData(owner.id + "_anime");
80 }
82 }
virtual void OnSetOwner()
Definition: CardActor.cs:84
string id
Definition: Card.cs:36
SourceMaterial.Row material
Definition: Card.cs:2103
string Name
Definition: Card.cs:2191
UD_String_MatData matColors
static ColorProfile Colors
Definition: EMono.cs:35
bool TryGetValue(TKey key, out TValue value)
Definition: UDictionary.cs:178

References Color, EMono.Colors, Card.id, ColorProfile.matColors, Card.material, mpb, mpb2, Card.Name, OnSetOwner(), owner, RefreshSprite(), SpriteReplacerAnimation.SetData(), sr, sr2, srAnime, UDictionary< TKey, TValue >.TryGetValue(), and type.

Referenced by CardRenderer.OnEnterScreen().

◆ SetVisible()

void CardActor.SetVisible ( bool  enable)
inline

Definition at line 316 of file CardActor.cs.

317 {
318 if (visible != enable)
319 {
320 visible = enable;
321 if ((bool)sr)
322 {
323 sr.enabled = visible;
324 }
325 if ((bool)sr2)
326 {
327 sr2.enabled = visible;
328 }
329 }
330 }

References sr, sr2, and visible.

Referenced by CardRenderer.OnLeaveScreen(), and OnRender().

Member Data Documentation

◆ destLiquid

float CardActor.destLiquid
private

Definition at line 27 of file CardActor.cs.

Referenced by OnRender().

◆ mpb

◆ mpb2

MaterialPropertyBlock CardActor.mpb2

Definition at line 23 of file CardActor.cs.

Referenced by OnRender(), RefreshSprite(), and SetOwner().

◆ originalScale

Vector3 CardActor.originalScale
private

Definition at line 35 of file CardActor.cs.

Referenced by Awake().

◆ owner

Card CardActor.owner

Definition at line 13 of file CardActor.cs.

Referenced by OnRender(), RefreshSprite(), and SetOwner().

◆ spriteIndex

int CardActor.spriteIndex
private

Definition at line 31 of file CardActor.cs.

Referenced by OnRender().

◆ spriteTimer

float CardActor.spriteTimer
private

Definition at line 29 of file CardActor.cs.

Referenced by OnRender().

◆ sr

◆ sr2

SpriteRenderer CardActor.sr2

Definition at line 17 of file CardActor.cs.

Referenced by OnRender(), RefreshSprite(), SetOwner(), and SetVisible().

◆ srAnime

SpriteReplacerAnimation CardActor.srAnime

Definition at line 19 of file CardActor.cs.

Referenced by OnRender(), and SetOwner().

◆ tempV

Vector3 CardActor.tempV
staticprotected

Definition at line 37 of file CardActor.cs.

Referenced by OnRender().

◆ tempV2

Vector3 CardActor.tempV2
staticprotected

Definition at line 39 of file CardActor.cs.

Referenced by OnRender().

◆ type

Type CardActor.type

Definition at line 25 of file CardActor.cs.

Referenced by OnRender(), RefreshSprite(), and SetOwner().

◆ visible

bool CardActor.visible = true
private

Definition at line 33 of file CardActor.cs.

Referenced by OnRender(), and SetVisible().

Property Documentation

◆ currentDir

virtual int CardActor.currentDir
get

◆ isPCC

virtual bool CardActor.isPCC
get

Definition at line 41 of file CardActor.cs.

Referenced by Chara._Move(), TCUI.OnDraw(), OnRender(), and CharaActor.RefreshSprite().


The documentation for this class was generated from the following file: