Elin Decompiled Documentation EA 23.102 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 RefreshSprite ()
 
virtual void Kill ()
 

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
 
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 43 of file CardActor.cs.

44 {
45 originalScale = base.transform.localScale;
46 }
Vector3 originalScale
Definition: CardActor.cs:33

References originalScale.

◆ GetFrame()

virtual int CardActor.GetFrame ( )
inlinevirtual

Reimplemented in CharaActorPCC.

Definition at line 98 of file CardActor.cs.

99 {
100 return 0;
101 }

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

◆ IdleFrame()

virtual void CardActor.IdleFrame ( )
inlinevirtual

Reimplemented in CharaActorPCC.

Definition at line 86 of file CardActor.cs.

87 {
88 }

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

◆ Kill()

virtual void CardActor.Kill ( )
inlinevirtual

Reimplemented in CharaActorPCC.

Definition at line 286 of file CardActor.cs.

287 {
288 PoolManager.Despawn(base.transform);
289 }
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 94 of file CardActor.cs.

95 {
96 }

Referenced by CardRenderer.NextDir().

◆ NextFrame()

virtual void CardActor.NextFrame ( )
inlinevirtual

Reimplemented in CharaActor, and CharaActorPCC.

Definition at line 90 of file CardActor.cs.

91 {
92 }

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

◆ OnRender()

virtual void CardActor.OnRender ( RenderParam  p)
inlinevirtual

Reimplemented in CharaActorPCC.

Definition at line 103 of file CardActor.cs.

104 {
105 this.SetActive(enable: true);
108 if (data.useOffsetBack && owner != EMono.pc.held)
109 {
110 bool num;
111 if (!data.symmetry)
112 {
113 if (p.dir == 1)
114 {
115 goto IL_006a;
116 }
117 num = p.dir == 2;
118 }
119 else
120 {
121 num = p.dir % 2 == 1;
122 }
123 if (num)
124 {
125 goto IL_006a;
126 }
127 }
128 tempV.x = p.x + data.offset.x + current.offset.x;
129 tempV.y = p.y + data.offset.y + current.offset.y;
130 tempV.z = p.z + data.offset.z + current.offset.z;
131 goto IL_015c;
132 IL_006a:
133 tempV.x = p.x + data.offsetBack.x + current.offset.x;
134 tempV.y = p.y + data.offsetBack.y + current.offset.y;
135 tempV.z = p.z + data.offsetBack.z + current.offset.z;
136 goto IL_015c;
137 IL_015c:
138 if (isPCC)
139 {
140 RenderDataPcc renderDataPcc = data as RenderDataPcc;
141 CharaActorPCC charaActorPCC = this as CharaActorPCC;
142 tempV.x = (float)(int)(tempV.x * 100f) * 0.01f;
143 tempV.y = (float)(int)(tempV.y * 100f) * 0.01f;
144 tempV2.x = charaActorPCC.provider.vCurrent.source.size.x * current.scale.x;
145 tempV2.y = charaActorPCC.provider.vCurrent.source.size.y * current.scale.y;
146 tempV2.z = renderDataPcc._scale.z * current.scale.z;
147 base.transform.localRotation = current.rotation;
148 }
149 else
150 {
151 tempV2.x = originalScale.x * current.scale.x;
152 tempV2.y = originalScale.y * current.scale.y;
153 tempV2.z = originalScale.z * current.scale.z;
154 }
155 if (type == Type.Boat)
156 {
157 float floatY = EMono.scene.screenElin.tileMap.floatY;
158 int floatV = EMono.scene.screenElin.tileMap.floatV;
159 sr2.transform.localPosition = new Vector3(0f, -0.005f * floatY, sr2.transform.localPosition.z);
160 int num2 = 0;
161 if (floatV == 1)
162 {
163 if (floatY < 2f)
164 {
165 num2 = 0;
166 }
167 else
168 {
169 num2 = 1;
170 }
171 }
172 else if (floatY < 3f)
173 {
174 num2 = 3;
175 }
176 else
177 {
178 num2 = 2;
179 }
180 num2 = ((floatV == 1) ? ((!(floatY < 0f)) ? ((floatY < 3f) ? 1 : 2) : 0) : ((!(floatY < 2f)) ? ((!(floatY < 5f)) ? 2 : 3) : 0));
181 srAnime.sr.sprite = srAnime.data.GetSprites().TryGet(num2);
182 }
183 base.transform.position = tempV;
184 base.transform.localScale = tempV2;
185 destLiquid = Mathf.Lerp(destLiquid, p.liquidLv, Core.gameDelta * (float)((destLiquid > (float)p.liquidLv) ? 90 : 20));
186 mpb.SetFloat("_MatColor", p.matColor);
187 mpb.SetFloat("_Color", p.color);
188 mpb.SetFloat("_Liquid", destLiquid);
189 sr.SetPropertyBlock(mpb);
190 if ((bool)sr2)
191 {
192 if ((bool)sr2.sprite)
193 {
194 mpb2.SetTexture("_MainTex", sr2.sprite.texture);
195 }
196 mpb2.SetTexture("_MaskTex", sr.sprite.texture);
197 mpb2.SetFloat("_MatColor", p.matColor);
198 mpb2.SetFloat("_Color", p.color);
199 mpb2.SetFloat("_Liquid", destLiquid);
200 sr2.SetPropertyBlock(mpb2);
201 }
202 if (owner.sourceCard.replacer.data == null)
203 {
204 return;
205 }
207 if (data2.frame <= 1)
208 {
209 return;
210 }
212 if (spriteTimer >= data2.time)
213 {
214 spriteTimer -= data2.time;
215 spriteIndex++;
216 if (spriteIndex >= data2.frame)
217 {
218 spriteIndex = 0;
219 }
220 sr.sprite = ((data2.spritesSnow != null && p.snow) ? data2.spritesSnow[spriteIndex] : data2.sprites[spriteIndex]);
221 }
222 }
BaseTileMap tileMap
float floatY
Definition: BaseTileMap.cs:323
static Vector3 tempV2
Definition: CardActor.cs:37
int spriteIndex
Definition: CardActor.cs:31
virtual bool isPCC
Definition: CardActor.cs:39
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:35
float destLiquid
Definition: CardActor.cs:27
MaterialPropertyBlock mpb
Definition: CardActor.cs:21
Card owner
Definition: CardActor.cs:13
virtual CardRow sourceCard
Definition: Card.cs:2007
CardRenderer renderer
Definition: Card.cs:57
Card held
Definition: Chara.cs:67
Definition: Core.cs:14
static float gameDelta
Definition: Core.cs:21
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:40
bool useOffsetBack
Definition: RenderData.cs:36
RenderData data
Definition: RenderObject.cs:34
int liquidLv
Definition: RenderParam.cs:7
SpriteReplacer replacer
Definition: RenderRow.cs:89
GameScreen screenElin
Definition: Scene.cs:89
Sprite[] sprites
Definition: SpriteData.cs:21
Sprite[] spritesSnow
Definition: SpriteData.cs:23
float time
Definition: SpriteData.cs:29
Sprite[] GetSprites()
Definition: SpriteData.cs:52
SpriteData data
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, SpriteReplacer.data, SpriteReplacerAnimation.data, RenderObject.data, Core.delta, destLiquid, RenderParam.dir, BaseTileMap.floatV, BaseTileMap.floatY, SpriteData.frame, Core.gameDelta, SpriteData.GetSprites(), Chara.held, isPCC, RenderParam.liquidLv, MeshPassParam.matColor, mpb, mpb2, SubPassData.offset, owner, EMono.pc, Card.renderer, RenderRow.replacer, SubPassData.rotation, SubPassData.scale, EMono.scene, Scene.screenElin, MeshPassParam.snow, Card.sourceCard, spriteIndex, SpriteData.sprites, SpriteData.spritesSnow, spriteTimer, sr, sr2, srAnime, RenderData.symmetry, tempV, tempV2, BaseGameScreen.tileMap, SpriteData.time, type, and RenderData.useOffsetBack.

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

◆ OnSetOwner()

virtual void CardActor.OnSetOwner ( )
inlinevirtual

Reimplemented in CharaActor, and CharaActorPCC.

Definition at line 82 of file CardActor.cs.

83 {
84 }

Referenced by SetOwner().

◆ RefreshSprite()

virtual void CardActor.RefreshSprite ( )
inlinevirtual

Reimplemented in CharaActor, and CharaActorPCC.

Definition at line 224 of file CardActor.cs.

225 {
226 switch (type)
227 {
228 case Type.Canvas:
229 if (owner == null || !sr2)
230 {
231 break;
232 }
233 if (owner.c_textureData != null)
234 {
235 sr2.sprite = owner.GetPaintSprite();
236 if (owner.trait is TraitCanvas traitCanvas)
237 {
238 sr2.transform.SetLocalScale(traitCanvas.Scale, traitCanvas.Scale, 1f);
239 }
240 }
241 else
242 {
243 sr2.sprite = null;
244 }
245 break;
246 case Type.Boat:
247 sr2.SetActive(owner.Cell.IsFloorWater);
248 break;
249 case Type.MultiSprite:
250 sr2.sprite = owner.GetSprite();
251 break;
252 }
253 int dir = owner.dir;
254 SpriteRenderer spriteRenderer = sr;
255 Sprite sprite2 = (sr.sprite = owner.GetSprite(dir));
256 Sprite sprite4 = (spriteRenderer.sprite = sprite2);
257 Sprite sprite5 = sprite4;
258 sr.flipX = dir == 1 || dir == 3;
259 mpb.SetTexture("_MainTex", sprite5.texture);
260 Vector4 value = new Vector4(sprite5.textureRect.min.x / (float)sprite5.texture.width, sprite5.textureRect.min.y / (float)sprite5.texture.height, sprite5.textureRect.max.x / (float)sprite5.texture.width, sprite5.textureRect.max.y / (float)sprite5.texture.height);
261 mpb.SetVector("_Rect", value);
262 mpb.SetFloat("_PixelHeight", sprite5.rect.height);
263 if (!sr2)
264 {
265 return;
266 }
267 if ((bool)sr2.sprite && (bool)sr2.sprite.texture)
268 {
269 sr2.flipX = dir == 1 || dir == 3;
270 sprite5 = sr2.sprite;
271 if ((bool)sprite5)
272 {
273 _ = sprite5.textureRect;
274 value = new Vector4(sprite5.textureRect.min.x / (float)sprite5.texture.width, sprite5.textureRect.min.y / (float)sprite5.texture.height, sprite5.textureRect.max.x / (float)sprite5.texture.width, sprite5.textureRect.max.y / (float)sprite5.texture.height);
275 mpb2.SetTexture("_MainTex", sprite5.texture);
276 mpb2.SetVector("_Rect", value);
277 mpb2.SetFloat("_PixelHeight", sprite5.rect.height);
278 }
279 }
280 else
281 {
282 sr2.sprite = null;
283 }
284 }
Sprite GetPaintSprite()
Definition: Card.cs:6280
virtual Sprite GetSprite(int dir=0)
Definition: Card.cs:5341
Trait trait
Definition: Card.cs:49
byte[] c_textureData
Definition: Card.cs:1805
Cell Cell
Definition: Card.cs:1931
int dir
Definition: Card.cs:142
bool IsFloorWater
Definition: Cell.cs:727

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(), Card.RenderMarker(), and SetOwner().

◆ SetOwner()

void CardActor.SetOwner ( Card  t)
inline

Definition at line 48 of file CardActor.cs.

49 {
50 base.gameObject.SetActive(value: true);
51 owner = t;
52 if (mpb == null)
53 {
54 mpb = new MaterialPropertyBlock();
55 }
56 mpb.SetColor("_Mat", EMono.Colors.matColors.TryGetValue(t.material.alias).main);
57 if ((bool)sr)
58 {
59 sr.SetPropertyBlock(mpb);
60 }
61 if ((bool)sr2)
62 {
63 if (mpb2 == null)
64 {
65 mpb2 = new MaterialPropertyBlock();
66 }
67 mpb2.SetColor("_Mat", Color.white);
68 sr2.SetPropertyBlock(mpb2);
69 }
70 OnSetOwner();
71 if (Application.isEditor)
72 {
73 base.gameObject.name = owner.Name;
74 }
75 if (type == Type.Boat)
76 {
77 srAnime.SetData(owner.id + "_anime");
78 }
80 }
virtual void RefreshSprite()
Definition: CardActor.cs:224
virtual void OnSetOwner()
Definition: CardActor.cs:82
string id
Definition: Card.cs:31
SourceMaterial.Row material
Definition: Card.cs:1927
string Name
Definition: Card.cs:2013
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().

Member Data Documentation

◆ destLiquid

float CardActor.destLiquid
private

Definition at line 27 of file CardActor.cs.

Referenced by OnRender().

◆ mpb

MaterialPropertyBlock CardActor.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 33 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

SpriteRenderer CardActor.sr

◆ sr2

SpriteRenderer CardActor.sr2

Definition at line 17 of file CardActor.cs.

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

◆ 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 35 of file CardActor.cs.

Referenced by OnRender().

◆ tempV2

Vector3 CardActor.tempV2
staticprotected

Definition at line 37 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().

Property Documentation

◆ currentDir

virtual int CardActor.currentDir
get

◆ isPCC

virtual bool CardActor.isPCC
get

Definition at line 39 of file CardActor.cs.

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


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