Elin Decompiled Documentation EA 23.315 Nightly
Loading...
Searching...
No Matches
SpriteData Class Reference

Public Member Functions

void Init ()
 
void LoadPref ()
 
void LoadAnimationIni ()
 
void LoadSprites ()
 
Sprite[] GetSprites ()
 
Sprite GetSprite ()
 
void Validate ()
 
void Load ()
 

Public Attributes

string id
 
string path
 
Texture2D tex
 
Sprite[] sprites
 
DateTime dateTex
 
DateTime dateIni
 
DateTime datePref
 
int frame = 1
 
int scale = 50
 
float time = 0.2f
 
SourcePref pref
 
bool tryFixPrefNotLoadedAtStart
 

Detailed Description

Definition at line 8 of file SpriteData.cs.

Member Function Documentation

◆ GetSprite()

Sprite SpriteData.GetSprite ( )
inline

Definition at line 120 of file SpriteData.cs.

121 {
122 if (sprites == null)
123 {
124 Load();
125 }
126 return sprites.TryGet(0, returnNull: true);
127 }
Sprite[] sprites
Definition: SpriteData.cs:16
void Load()
Definition: SpriteData.cs:152

References Load(), and sprites.

Referenced by SpriteReplacer.GetSprite(), LayerEditSkin.RefreshList(), and SpriteReplacerAnimation.SetData().

◆ GetSprites()

Sprite[] SpriteData.GetSprites ( )
inline

Definition at line 111 of file SpriteData.cs.

112 {
113 if (sprites == null)
114 {
115 Load();
116 }
117 return sprites;
118 }

References Load(), and sprites.

Referenced by CardActor.OnRender(), and SpriteReplacerAnimation.Refresh().

◆ Init()

void SpriteData.Init ( )
inline

Definition at line 34 of file SpriteData.cs.

35 {
36 try
37 {
38 id = Path.GetFileNameWithoutExtension(path);
40 LoadPref();
41 }
42 catch (Exception exception)
43 {
44 Debug.LogException(exception);
45 Debug.LogError("#sprite failed " + id + "/" + path);
46 }
47 }
void LoadAnimationIni()
Definition: SpriteData.cs:58
string path
Definition: SpriteData.cs:12
void LoadPref()
Definition: SpriteData.cs:49

References Debug, LoadAnimationIni(), LoadPref(), and path.

Referenced by SpriteReplacer.BuildSuffixData(), LayerEditSkin.RefreshList(), and SpriteReplacerAnimation.SetData().

◆ Load()

void SpriteData.Load ( )
inline

Definition at line 152 of file SpriteData.cs.

153 {
155 LoadPref();
156 LoadSprites();
157 }
void LoadSprites()
Definition: SpriteData.cs:80

References LoadAnimationIni(), LoadPref(), and LoadSprites().

Referenced by GetSprite(), GetSprites(), and Validate().

◆ LoadAnimationIni()

void SpriteData.LoadAnimationIni ( )
inline

Definition at line 58 of file SpriteData.cs.

59 {
60 if (!File.Exists(path + ".ini"))
61 {
62 frame = 1;
63 scale = 50;
64 time = 0.2f;
65 return;
66 }
67 try
68 {
69 IniData iniData = new FileIniDataParser().ReadFile(path + ".ini", Encoding.UTF8);
70 frame = Mathf.Max(1, (!int.TryParse(iniData.GetKey("frame"), out var result)) ? 1 : result);
71 scale = (int.TryParse(iniData.GetKey("scale"), out var result2) ? result2 : 50);
72 time = (float.TryParse(iniData.GetKey("time"), out var result3) ? Mathf.Max(0.016f, result3) : 0.2f);
73 }
74 catch (Exception exception)
75 {
76 Debug.LogException(exception);
77 }
78 }
float time
Definition: SpriteData.cs:28

References Debug, frame, path, scale, and time.

Referenced by Init(), and Load().

◆ LoadPref()

void SpriteData.LoadPref ( )
inline

Definition at line 49 of file SpriteData.cs.

50 {
51 pref = null;
52 if (File.Exists(path + ".pref"))
53 {
54 pref = SourcePref.ReadFromIni(path + ".pref");
55 }
56 }
static SourcePref ReadFromIni(string path)
Definition: SourcePref.cs:395
SourcePref pref
Definition: SpriteData.cs:30

References path, pref, and SourcePref.ReadFromIni().

Referenced by Init(), and Load().

◆ LoadSprites()

void SpriteData.LoadSprites ( )
inline

Definition at line 80 of file SpriteData.cs.

81 {
82 Texture2D texture2D = IO.LoadPNG(path + ".png");
83 Debug.Log(texture2D.width + "/" + texture2D.height + "/" + path);
84 if ((bool)tex)
85 {
86 if (texture2D.width != tex.width || texture2D.height != tex.height)
87 {
88 tex.Reinitialize(texture2D.width, texture2D.height);
89 }
90 tex.SetPixels32(texture2D.GetPixels32());
91 tex.Apply();
92 UnityEngine.Object.Destroy(texture2D);
93 }
94 else
95 {
96 tex = texture2D;
97 }
98 int num = tex.width / frame;
99 int height = tex.height;
100 if (sprites == null || sprites.Length != frame)
101 {
102 sprites = new Sprite[frame];
103 }
104 Vector2 pivot = new Vector2(0.5f, 0.5f);
105 for (int i = 0; i < frame; i++)
106 {
107 sprites[i] = Sprite.Create(tex, new Rect(i * num, 0f, num, height), pivot, 100f, 0u, SpriteMeshType.FullRect);
108 }
109 }
Definition: IO.cs:10
static Texture2D LoadPNG(string _path, FilterMode filter=FilterMode.Point)
Definition: IO.cs:473
Texture2D tex
Definition: SpriteData.cs:14

References Debug, frame, path, sprites, and tex.

Referenced by Load().

◆ Validate()

void SpriteData.Validate ( )
inline

Definition at line 129 of file SpriteData.cs.

130 {
131 if (IsDirty(".png", ref dateTex) || IsDirty(".ini", ref dateIni) || IsDirty(".pref", ref datePref))
132 {
133 Load();
134 }
135 bool IsDirty(string p, ref DateTime lastChecked)
136 {
137 string text = path + p;
138 if (!File.Exists(text))
139 {
140 return false;
141 }
142 DateTime lastWriteTimeUtc = File.GetLastWriteTimeUtc(text);
143 if (lastWriteTimeUtc == lastChecked)
144 {
145 return false;
146 }
147 lastChecked = lastWriteTimeUtc;
148 return true;
149 }
150 }
DateTime datePref
Definition: SpriteData.cs:22
DateTime dateTex
Definition: SpriteData.cs:18
DateTime dateIni
Definition: SpriteData.cs:20

References dateIni, datePref, dateTex, Load(), and path.

Referenced by SpriteReplacer.Validate().

Member Data Documentation

◆ dateIni

DateTime SpriteData.dateIni

Definition at line 20 of file SpriteData.cs.

Referenced by Validate().

◆ datePref

DateTime SpriteData.datePref

Definition at line 22 of file SpriteData.cs.

Referenced by Validate().

◆ dateTex

DateTime SpriteData.dateTex

Definition at line 18 of file SpriteData.cs.

Referenced by Validate().

◆ frame

int SpriteData.frame = 1

◆ id

string SpriteData.id

Definition at line 10 of file SpriteData.cs.

Referenced by SpriteReplacer.HasSprite().

◆ path

◆ pref

SourcePref SpriteData.pref

Definition at line 30 of file SpriteData.cs.

Referenced by LoadPref(), and Card.SetImage().

◆ scale

int SpriteData.scale = 50

Definition at line 26 of file SpriteData.cs.

Referenced by LoadAnimationIni().

◆ sprites

Sprite [] SpriteData.sprites

Definition at line 16 of file SpriteData.cs.

Referenced by GetSprite(), GetSprites(), and LoadSprites().

◆ tex

Texture2D SpriteData.tex

Definition at line 14 of file SpriteData.cs.

Referenced by LoadSprites().

◆ time

float SpriteData.time = 0.2f

◆ tryFixPrefNotLoadedAtStart

bool SpriteData.tryFixPrefNotLoadedAtStart

Definition at line 32 of file SpriteData.cs.


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