Elin Decompiled Documentation EA 23.299 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 297 of file CardActor.cs.

298 {
299 sr.sprite = null;
300 PoolManager.Despawn(base.transform);
301 }
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, returnNull: true);
182 }
183 base.transform.position = tempV;
184 base.transform.localScale = tempV2;
185 destLiquid = Mathf.Lerp(destLiquid, p.liquidLv, Core.gameDeltaNoPause * (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 }
203 if (!replacer.HasSprite(owner.sourceCard.idSprite, data))
204 {
205 return;
206 }
207 SpriteData spriteData = replacer.data;
208 if (p.snow && replacer.suffixes.TryGetValue("_snow", out var value))
209 {
210 spriteData = value;
211 }
212 if (spriteData.frame <= 1)
213 {
214 return;
215 }
217 if (spriteTimer >= spriteData.time)
218 {
219 spriteTimer -= spriteData.time;
220 spriteIndex++;
221 if (spriteIndex >= spriteData.frame)
222 {
223 spriteIndex = 0;
224 }
225 sr.sprite = spriteData.GetSprites().TryGet(spriteIndex, returnNull: true);
226 if ((bool)sr.sprite)
227 {
228 mpb.SetTexture("_MainTex", sr.sprite.texture);
229 }
230 }
231 }
BaseTileMap tileMap
float floatY
Definition: BaseTileMap.cs:329
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
override string idSprite
Definition: CardRow.cs:64
virtual CardRow sourceCard
Definition: Card.cs:2171
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:28
Sprite[] GetSprites()
Definition: SpriteData.cs:109
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, MeshPassParam.snow, Card.sourceCard, spriteIndex, spriteTimer, sr, sr2, srAnime, SpriteReplacer.suffixes, 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 233 of file CardActor.cs.

234 {
235 switch (type)
236 {
237 case Type.Canvas:
238 if (owner == null || !sr2)
239 {
240 break;
241 }
242 if (owner.c_textureData != null)
243 {
244 sr2.sprite = owner.GetPaintSprite();
245 if (owner.trait is TraitCanvas traitCanvas)
246 {
247 sr2.transform.SetLocalScale(traitCanvas.Scale, traitCanvas.Scale, 1f);
248 mpb2.SetFloat("_PortraitFilterStrength", traitCanvas.UsePortraitFilter ? 1 : 0);
249 }
250 }
251 else
252 {
253 sr2.sprite = null;
254 }
255 break;
256 case Type.Boat:
257 sr2.SetActive(owner.Cell.IsFloorWater);
258 break;
259 case Type.MultiSprite:
260 sr2.sprite = owner.GetSprite();
261 break;
262 }
263 int dir = owner.dir;
264 Sprite sprite = owner.GetSprite(dir);
265 if (!sr.sprite)
266 {
267 sr.sprite = sprite;
268 }
269 sr.flipX = dir == 1 || dir == 3;
270 mpb.SetTexture("_MainTex", sprite.texture);
271 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);
272 mpb.SetVector("_Rect", value);
273 mpb.SetFloat("_PixelHeight", sprite.rect.height);
274 if (!sr2)
275 {
276 return;
277 }
278 if ((bool)sr2.sprite && (bool)sr2.sprite.texture)
279 {
280 sr2.flipX = dir == 1 || dir == 3;
281 sprite = sr2.sprite;
282 if ((bool)sprite)
283 {
284 _ = sprite.textureRect;
285 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);
286 mpb2.SetTexture("_MainTex", sprite.texture);
287 mpb2.SetVector("_Rect", value);
288 mpb2.SetFloat("_PixelHeight", sprite.rect.height);
289 }
290 }
291 else
292 {
293 sr2.sprite = null;
294 }
295 }
Sprite GetPaintSprite()
Definition: Card.cs:7385
virtual Sprite GetSprite(int dir=0)
Definition: Card.cs:6362
Trait trait
Definition: Card.cs:54
byte[] c_textureData
Definition: Card.cs:1969
Cell Cell
Definition: Card.cs:2095
int dir
Definition: Card.cs:149
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:233
virtual void OnSetOwner()
Definition: CardActor.cs:82
string id
Definition: Card.cs:36
SourceMaterial.Row material
Definition: Card.cs:2091
string Name
Definition: Card.cs:2179
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: