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

Public Member Functions

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

Static Public Member Functions

static float BaseWidth (Sprite s)
 
static float BaseHeight (Sprite s)
 

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
 

Static Public Attributes

const float DefaultPPU = 100f
 

Detailed Description

Definition at line 8 of file SpriteData.cs.

Member Function Documentation

◆ BaseHeight()

static float SpriteData.BaseHeight ( Sprite  s)
inlinestatic

Definition at line 41 of file SpriteData.cs.

42 {
43 return s.rect.height * 100f / s.pixelsPerUnit;
44 }

Referenced by Card.GetPaintData(), AM_Paint.OnUpdateInput(), Card.SetImage(), and CharaRenderer.SetOwner().

◆ BaseWidth()

static float SpriteData.BaseWidth ( Sprite  s)
inlinestatic

Definition at line 36 of file SpriteData.cs.

37 {
38 return s.rect.width * 100f / s.pixelsPerUnit;
39 }

Referenced by Card.GetPaintData(), and AM_Paint.OnUpdateInput().

◆ GetSprite()

Sprite SpriteData.GetSprite ( )
inline

Definition at line 143 of file SpriteData.cs.

144 {
145 if (sprites == null)
146 {
147 Load();
148 }
149 return sprites.TryGet(0, returnNull: true);
150 }
Sprite[] sprites
Definition: SpriteData.cs:18
void Load()
Definition: SpriteData.cs:175

References Load(), and sprites.

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

◆ GetSprites()

Sprite[] SpriteData.GetSprites ( )
inline

Definition at line 134 of file SpriteData.cs.

135 {
136 if (sprites == null)
137 {
138 Load();
139 }
140 return sprites;
141 }

References Load(), and sprites.

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

◆ Init()

void SpriteData.Init ( )
inline

Definition at line 46 of file SpriteData.cs.

47 {
48 try
49 {
50 id = Path.GetFileNameWithoutExtension(path);
52 LoadPref();
53 }
54 catch (Exception exception)
55 {
56 Debug.LogException(exception);
57 Debug.LogError("#sprite failed " + id + "/" + path);
58 }
59 }
void LoadAnimationIni()
Definition: SpriteData.cs:80
string path
Definition: SpriteData.cs:14
void LoadPref()
Definition: SpriteData.cs:61

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

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

◆ Load()

void SpriteData.Load ( )
inline

Definition at line 175 of file SpriteData.cs.

176 {
178 LoadPref();
179 LoadSprites();
180 }
void LoadSprites()
Definition: SpriteData.cs:102

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

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

◆ LoadAnimationIni()

void SpriteData.LoadAnimationIni ( )
inline

Definition at line 80 of file SpriteData.cs.

81 {
82 if (!File.Exists(path + ".ini"))
83 {
84 frame = 1;
85 scale = 50;
86 time = 0.2f;
87 return;
88 }
89 try
90 {
91 IniData iniData = new FileIniDataParser().ReadFile(path + ".ini", Encoding.UTF8);
92 frame = Mathf.Max(1, (!int.TryParse(iniData.GetKey("frame"), out var result)) ? 1 : result);
93 scale = (int.TryParse(iniData.GetKey("scale"), out var result2) ? result2 : 50);
94 time = (float.TryParse(iniData.GetKey("time"), out var result3) ? Mathf.Max(0.016f, result3) : 0.2f);
95 }
96 catch (Exception exception)
97 {
98 Debug.LogException(exception);
99 }
100 }
float time
Definition: SpriteData.cs:30

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

Referenced by Init(), and Load().

◆ LoadPref()

void SpriteData.LoadPref ( )
inline

Definition at line 61 of file SpriteData.cs.

62 {
63 pref = null;
64 if (File.Exists(path + ".pref"))
65 {
66 pref = SourcePref.ReadFromIni(path + ".pref");
67 }
68 }
static SourcePref ReadFromIni(string path)
Definition: SourcePref.cs:431
SourcePref pref
Definition: SpriteData.cs:32

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

Referenced by Init(), Load(), and LoadPrefAndFixDensity().

◆ LoadPrefAndFixDensity()

void SpriteData.LoadPrefAndFixDensity ( )
inline

Definition at line 70 of file SpriteData.cs.

71 {
72 float a = pref?.ScaleTex ?? 1f;
73 LoadPref();
74 if (sprites != null && !Mathf.Approximately(a, pref?.ScaleTex ?? 1f))
75 {
77 }
78 }
float ScaleTex
Definition: SourcePref.cs:341

References LoadPref(), LoadSprites(), pref, SourcePref.ScaleTex, and sprites.

◆ LoadSprites()

void SpriteData.LoadSprites ( )
inline

Definition at line 102 of file SpriteData.cs.

103 {
104 Texture2D texture2D = IO.LoadPNG(path + ".png");
105 Debug.Log(texture2D.width + "/" + texture2D.height + "/" + path);
106 if ((bool)tex)
107 {
108 if (texture2D.width != tex.width || texture2D.height != tex.height)
109 {
110 tex.Reinitialize(texture2D.width, texture2D.height);
111 }
112 tex.SetPixels32(texture2D.GetPixels32());
113 tex.Apply();
114 UnityEngine.Object.Destroy(texture2D);
115 }
116 else
117 {
118 tex = texture2D;
119 }
120 int num = tex.width / frame;
121 int height = tex.height;
122 float num2 = 100f * (pref?.ScaleTex ?? 1f);
123 if (sprites == null || sprites.Length != frame || !sprites[0] || !Mathf.Approximately(sprites[0].rect.width, num) || !Mathf.Approximately(sprites[0].rect.height, height) || !Mathf.Approximately(sprites[0].pixelsPerUnit, num2))
124 {
125 sprites = new Sprite[frame];
126 Vector2 pivot = new Vector2(0.5f, 0.5f);
127 for (int i = 0; i < frame; i++)
128 {
129 sprites[i] = Sprite.Create(tex, new Rect(i * num, 0f, num, height), pivot, num2, 0u, SpriteMeshType.FullRect);
130 }
131 }
132 }
Definition: IO.cs:10
static Texture2D LoadPNG(string _path, FilterMode filter=FilterMode.Point)
Definition: IO.cs:473
Texture2D tex
Definition: SpriteData.cs:16

References Debug, frame, path, pref, SourcePref.ScaleTex, sprites, and tex.

Referenced by Load(), and LoadPrefAndFixDensity().

◆ Validate()

void SpriteData.Validate ( )
inline

Definition at line 152 of file SpriteData.cs.

153 {
154 if (IsDirty(".png", ref dateTex) || IsDirty(".ini", ref dateIni) || IsDirty(".pref", ref datePref))
155 {
156 Load();
157 }
158 bool IsDirty(string p, ref DateTime lastChecked)
159 {
160 string text = path + p;
161 if (!File.Exists(text))
162 {
163 return false;
164 }
165 DateTime lastWriteTimeUtc = File.GetLastWriteTimeUtc(text);
166 if (lastWriteTimeUtc == lastChecked)
167 {
168 return false;
169 }
170 lastChecked = lastWriteTimeUtc;
171 return true;
172 }
173 }
DateTime datePref
Definition: SpriteData.cs:24
DateTime dateTex
Definition: SpriteData.cs:20
DateTime dateIni
Definition: SpriteData.cs:22

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

Referenced by SpriteReplacer.Validate().

Member Data Documentation

◆ dateIni

DateTime SpriteData.dateIni

Definition at line 22 of file SpriteData.cs.

Referenced by Validate().

◆ datePref

DateTime SpriteData.datePref

Definition at line 24 of file SpriteData.cs.

Referenced by Validate().

◆ dateTex

DateTime SpriteData.dateTex

Definition at line 20 of file SpriteData.cs.

Referenced by Validate().

◆ DefaultPPU

const float SpriteData.DefaultPPU = 100f
static

Definition at line 10 of file SpriteData.cs.

◆ frame

int SpriteData.frame = 1

◆ id

string SpriteData.id

Definition at line 12 of file SpriteData.cs.

Referenced by SpriteReplacer.HasSprite().

◆ path

string SpriteData.path

◆ pref

SourcePref SpriteData.pref

Definition at line 32 of file SpriteData.cs.

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

◆ scale

int SpriteData.scale = 50

Definition at line 28 of file SpriteData.cs.

Referenced by LoadAnimationIni().

◆ sprites

Sprite [] SpriteData.sprites

Definition at line 18 of file SpriteData.cs.

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

◆ tex

Texture2D SpriteData.tex

Definition at line 16 of file SpriteData.cs.

Referenced by LoadSprites().

◆ time

float SpriteData.time = 0.2f

◆ tryFixPrefNotLoadedAtStart

bool SpriteData.tryFixPrefNotLoadedAtStart

Definition at line 34 of file SpriteData.cs.


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