Elin Decompiled Documentation EA 23.298 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
 

Detailed Description

Definition at line 8 of file SpriteData.cs.

Member Function Documentation

◆ GetSprite()

Sprite SpriteData.GetSprite ( )
inline

Definition at line 118 of file SpriteData.cs.

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

References Load(), and sprites.

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

◆ GetSprites()

Sprite[] SpriteData.GetSprites ( )
inline

Definition at line 109 of file SpriteData.cs.

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

References Load(), and sprites.

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

◆ Init()

void SpriteData.Init ( )
inline

Definition at line 32 of file SpriteData.cs.

33 {
34 try
35 {
36 id = Path.GetFileNameWithoutExtension(path);
38 LoadPref();
39 }
40 catch (Exception exception)
41 {
42 Debug.LogException(exception);
43 Debug.LogError("#sprite failed to init '" + id + "' at " + path);
44 }
45 }
void LoadAnimationIni()
Definition: SpriteData.cs:56
string path
Definition: SpriteData.cs:12
void LoadPref()
Definition: SpriteData.cs:47

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

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

◆ Load()

void SpriteData.Load ( )
inline

Definition at line 150 of file SpriteData.cs.

151 {
153 LoadPref();
154 LoadSprites();
155 }
void LoadSprites()
Definition: SpriteData.cs:78

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

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

◆ LoadAnimationIni()

void SpriteData.LoadAnimationIni ( )
inline

Definition at line 56 of file SpriteData.cs.

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

48 {
49 pref = null;
50 if (File.Exists(path + ".pref"))
51 {
52 pref = SourcePref.ReadFromIni(path + ".pref");
53 }
54 }
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 78 of file SpriteData.cs.

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

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

Referenced by Load().

◆ Validate()

void SpriteData.Validate ( )
inline

Definition at line 127 of file SpriteData.cs.

128 {
129 if (IsDirty(".png", ref dateTex) || IsDirty(".ini", ref dateIni) || IsDirty(".pref", ref datePref))
130 {
131 Load();
132 }
133 bool IsDirty(string p, ref DateTime lastChecked)
134 {
135 string text = path + p;
136 if (!File.Exists(text))
137 {
138 return false;
139 }
140 DateTime lastWriteTimeUtc = File.GetLastWriteTimeUtc(text);
141 if (lastWriteTimeUtc == lastChecked)
142 {
143 return false;
144 }
145 lastChecked = lastWriteTimeUtc;
146 return true;
147 }
148 }
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

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