Elin Decompiled Documentation EA 23.102 Nightly
Loading...
Searching...
No Matches
SkinManager.cs
Go to the documentation of this file.
1using System;
2using System.Collections.Generic;
3using TMPro;
4using UnityEngine;
5
6public class SkinManager : MonoBehaviour
7{
8 [Serializable]
9 public class FontData
10 {
11 public int sizeMod;
12
13 public int index;
14
16 }
17
18 [Serializable]
19 public class FontSaveData
20 {
21 public int size;
22
23 public int index;
24 }
25
26 public class FontSet
27 {
28 public FontData ui = new FontData();
29
30 public FontData chatbox = new FontData();
31
32 public FontData balloon = new FontData();
33
34 public FontData dialog = new FontData();
35
36 public FontData widget = new FontData();
37
38 public FontData news = new FontData();
39 }
40
41 public static SkinManager _Instance;
42
43 public static int LimitFontSizeMod_UI = 999;
44
45 public List<FontSource> fontList;
46
47 public List<FontSource> fontListOriginal;
48
49 public List<SkinSet> skinSets;
50
51 public List<SkinRootStatic> mainSkins;
52
54
56
58
60
62
63 public static SkinRootStatic tempSkin;
64
65 public Action onSetSkin;
66
67 public TMP_FontAsset fontAsset;
68
69 public TMP_FontAsset defaultFontAsset;
70
71 [NonSerialized]
72 public Texture2D originalTexture;
73
74 public FontSet fontSet = new FontSet();
75
76 public Dictionary<string, FontSource> dictFonts;
77
78 public static SkinManager Instance => _Instance ?? (_Instance = UnityEngine.Object.FindObjectOfType<SkinManager>());
79
80 public List<FontSource> FontList => fontList;
81
83
85
87
88 public void SetFonts(FontSaveData dataUI, FontSaveData dataChatbox, FontSaveData dataBalloon, FontSaveData dataDialog, FontSaveData dataWidget, FontSaveData dataNews)
89 {
90 fontSet.ui.index = dataUI.index;
91 fontSet.ui.sizeMod = dataUI.size - 4;
92 fontSet.chatbox.index = dataChatbox.index;
93 fontSet.chatbox.sizeMod = dataChatbox.size - 3;
94 fontSet.balloon.index = dataBalloon.index;
95 fontSet.balloon.sizeMod = dataBalloon.size - 1;
96 fontSet.dialog.index = dataDialog.index;
97 fontSet.dialog.sizeMod = dataDialog.size - 3;
98 fontSet.widget.index = dataWidget.index;
99 fontSet.widget.sizeMod = dataWidget.size - 2;
100 fontSet.news.index = dataNews.index;
101 fontSet.news.sizeMod = dataNews.size - 2;
102 UIText[] componentsInChildren = BaseCore.Instance.canvas.GetComponentsInChildren<UIText>(includeInactive: true);
103 for (int i = 0; i < componentsInChildren.Length; i++)
104 {
105 componentsInChildren[i].ApplySkin();
106 }
107 }
108
109 public void InitFont()
110 {
111 fontList.Clear();
112 for (int i = 0; i < fontListOriginal.Count; i++)
113 {
115 }
116 if (dictFonts == null)
117 {
118 dictFonts = new Dictionary<string, FontSource>();
119 foreach (FontSource item in fontListOriginal)
120 {
121 dictFonts.Add(item._name, item);
122 }
123 }
124 foreach (LangSetting.FontSetting item2 in Lang.setting.listFont)
125 {
126 FontSource fontSource = dictFonts.TryGetValue(item2.id);
127 if (fontSource == null)
128 {
129 fontSource = dictFonts["Arial"].Instantiate();
130 Font font = Font.CreateDynamicFontFromOSFont(item2.id, item2.importSize);
131 if (font != null)
132 {
133 fontSource.font = font;
134 }
135 _ = "*" + item2.id;
136 fontSource._name = "*" + item2.id + ((font == null) ? "(NotFound)" : "");
137 }
138 fontList[item2.index] = fontSource;
139 Debug.Log("Loaded Font:" + item2.id + "/" + fontSource._name + "/" + fontSource.font?.ToString() + "/" + Lang.langCode + "/" + Lang.setting.id);
140 }
141 }
142
143 public void SetMainSkin(int id)
144 {
146 }
147
148 public void SetMainSkin()
149 {
151 }
152
153 public void SetMainSkin(SkinRootStatic dest)
154 {
156 {
158 {
159 Graphics.CopyTexture(originalTexture, defaultSkin.skinTexture);
160 }
161 else
162 {
163 if (!originalTexture)
164 {
165 Texture2D skinTexture = defaultSkin.skinTexture;
166 originalTexture = new Texture2D(skinTexture.width, skinTexture.height, skinTexture.format, mipChain: false);
167 Graphics.CopyTexture(skinTexture, originalTexture);
168 }
169 Graphics.CopyTexture(dest.skinTexture, defaultSkin.skinTexture);
170 }
171 }
172 currentSkin = dest;
173 if (onSetSkin != null)
174 {
175 onSetSkin();
176 }
177 }
178}
Canvas canvas
Definition: BaseCore.cs:34
static BaseCore Instance
Definition: BaseCore.cs:11
string _name
Definition: FontSource.cs:5
Font font
Definition: FontSource.cs:9
List< FontSetting > listFont
Definition: LangSetting.cs:52
string id
Definition: LangSetting.cs:22
Definition: Lang.cs:6
static LangSetting setting
Definition: Lang.cs:54
static string langCode
Definition: Lang.cs:28
SkinRootStatic skinTitle
Definition: SkinManager.cs:61
FontSet fontSet
Definition: SkinManager.cs:74
static SkinColorProfile CurrentColors
Definition: SkinManager.cs:84
SkinRootStatic currentSkin
Definition: SkinManager.cs:53
void InitFont()
Definition: SkinManager.cs:109
static SkinRootStatic CurrentSkin
Definition: SkinManager.cs:82
SkinRootStatic skinDark
Definition: SkinManager.cs:59
List< SkinRootStatic > mainSkins
Definition: SkinManager.cs:51
void SetMainSkin(SkinRootStatic dest)
Definition: SkinManager.cs:153
void SetMainSkin()
Definition: SkinManager.cs:148
List< SkinSet > skinSets
Definition: SkinManager.cs:49
Dictionary< string, FontSource > dictFonts
Definition: SkinManager.cs:76
static SkinManager Instance
Definition: SkinManager.cs:78
static SkinRootStatic tempSkin
Definition: SkinManager.cs:63
List< FontSource > FontList
Definition: SkinManager.cs:80
static SkinColorProfile DarkColors
Definition: SkinManager.cs:86
static int LimitFontSizeMod_UI
Definition: SkinManager.cs:43
TMP_FontAsset fontAsset
Definition: SkinManager.cs:67
void SetFonts(FontSaveData dataUI, FontSaveData dataChatbox, FontSaveData dataBalloon, FontSaveData dataDialog, FontSaveData dataWidget, FontSaveData dataNews)
Definition: SkinManager.cs:88
Texture2D originalTexture
Definition: SkinManager.cs:72
List< FontSource > fontList
Definition: SkinManager.cs:45
List< FontSource > fontListOriginal
Definition: SkinManager.cs:47
static SkinManager _Instance
Definition: SkinManager.cs:41
SkinRootStatic defaultSkin
Definition: SkinManager.cs:55
SkinRootStatic skinLight
Definition: SkinManager.cs:57
Action onSetSkin
Definition: SkinManager.cs:65
TMP_FontAsset defaultFontAsset
Definition: SkinManager.cs:69
void SetMainSkin(int id)
Definition: SkinManager.cs:143
SkinColorProfile _default
SkinColors colors
Texture2D skinTexture
Definition: UIText.cs:6
void ApplySkin()
Definition: UIText.cs:38