Elin Decompiled Documentation EA 23.102 Nightly
Loading...
Searching...
No Matches
BaseModPackage.cs
Go to the documentation of this file.
1using System.IO;
2using System.Xml;
3using UnityEngine;
4using UnityEngine.UI;
5
6public class BaseModPackage
7{
8 public static XmlReader xmlReader;
9
10 public static XmlReaderSettings readerSetting;
11
12 public string title;
13
14 public string author;
15
16 public string version;
17
18 public string id;
19
20 public string description;
21
22 public string visibility;
23
24 public string[] tags;
25
26 public bool builtin;
27
28 public bool activated;
29
30 public bool willActivate = true;
31
32 public bool installed;
33
34 public bool banned;
35
36 public bool isInPackages;
37
39
40 public bool downloadStarted;
41
42 public int loadPriority;
43
44 public object item;
45
46 public DirectoryInfo dirInfo;
47
48 public Text progressText;
49
50 public bool IsValidVersion()
51 {
53 }
54
55 public bool Init()
56 {
57 if (!File.Exists(dirInfo.FullName + "/package.xml"))
58 {
59 return false;
60 }
61 UpdateMeta();
62 return true;
63 }
64
65 public void UpdateMeta(bool updateOnly = false)
66 {
67 string text = dirInfo.FullName + "/package.xml";
68 if (!File.Exists(text))
69 {
70 return;
71 }
72 XmlReader xmlReader = XmlReader.Create(text, new XmlReaderSettings
73 {
74 IgnoreComments = true,
75 IgnoreWhitespace = true
76 });
77 while (xmlReader.Read())
78 {
79 if (xmlReader.NodeType != XmlNodeType.Element)
80 {
81 continue;
82 }
83 switch (xmlReader.Name)
84 {
85 case "title":
86 if (xmlReader.Read())
87 {
88 title = xmlReader.Value;
89 }
90 break;
91 case "author":
92 if (xmlReader.Read())
93 {
94 author = xmlReader.Value;
95 }
96 break;
97 case "id":
98 if (xmlReader.Read())
99 {
100 id = xmlReader.Value;
101 }
102 break;
103 case "description":
104 if (xmlReader.Read())
105 {
106 description = xmlReader.Value;
107 }
108 break;
109 case "version":
110 if (xmlReader.Read())
111 {
112 version = xmlReader.Value;
113 }
114 break;
115 case "builtin":
116 if (xmlReader.Read())
117 {
118 bool.TryParse(xmlReader.Value, out builtin);
119 }
120 break;
121 case "tag":
122 case "tags":
123 if (xmlReader.Read())
124 {
125 tags = xmlReader.Value.Split(',');
126 }
127 break;
128 case "loadPriority":
129 if (!updateOnly && xmlReader.Read())
130 {
131 int.TryParse(xmlReader.Value, out loadPriority);
132 }
133 break;
134 case "visibility":
135 if (xmlReader.Read())
136 {
137 visibility = xmlReader.Value;
138 }
139 break;
140 }
141 }
142 xmlReader.Close();
143 }
144
145 public void Activate()
146 {
148 {
149 Debug.Log("Activating(" + loadPriority + ") :" + title + "/" + id);
150 activated = true;
151 Parse();
152 }
153 }
154
155 public void Parse()
156 {
157 DirectoryInfo[] directories = dirInfo.GetDirectories();
158 foreach (DirectoryInfo directoryInfo in directories)
159 {
160 if (directoryInfo.Name == "Actor")
161 {
162 FileInfo[] files = directoryInfo.GetFiles();
163 foreach (FileInfo fileInfo in files)
164 {
165 if (fileInfo.Name.EndsWith(".xlsx"))
166 {
167 MOD.actorSources.items.Add(new ExcelData(fileInfo.FullName));
168 }
169 }
170 DirectoryInfo[] directories2 = directoryInfo.GetDirectories();
171 foreach (DirectoryInfo directoryInfo2 in directories2)
172 {
173 Log.App(directoryInfo2.FullName);
174 string name = directoryInfo2.Name;
175 if (!(name == "PCC"))
176 {
177 if (!(name == "Sprite"))
178 {
179 continue;
180 }
181 files = directoryInfo2.GetFiles();
182 foreach (FileInfo fileInfo2 in files)
183 {
184 if (fileInfo2.Name.EndsWith(".png"))
185 {
186 MOD.sprites.Add(fileInfo2);
187 }
188 }
189 }
190 else
191 {
192 DirectoryInfo[] directories3 = directoryInfo2.GetDirectories();
193 foreach (DirectoryInfo obj in directories3)
194 {
195 MOD.OnAddPcc(obj);
196 }
197 }
198 }
199 }
200 else
201 {
202 BaseModManager.Instance.ParseExtra(directoryInfo, this);
203 }
204 }
205 }
206}
Version versionMod
Definition: BaseCore.cs:21
static BaseCore Instance
Definition: BaseCore.cs:11
virtual void ParseExtra(DirectoryInfo dir, BaseModPackage package)
static BaseModManager Instance
bool IsValidVersion()
DirectoryInfo dirInfo
void UpdateMeta(bool updateOnly=false)
static XmlReaderSettings readerSetting
static XmlReader xmlReader
bool hasPublishedPackage
List< ExcelData > items
Definition: ExcelDataList.cs:6
Definition: Log.cs:4
static void App(string s)
Definition: Log.cs:7
Definition: MOD.cs:7
static ExcelDataList actorSources
Definition: MOD.cs:14
static ModItemList< Sprite > sprites
Definition: MOD.cs:16
static Action< DirectoryInfo > OnAddPcc
Definition: MOD.cs:18
void Add(FileInfo fi, string path=null, string prefix="")
Definition: ModItemList.cs:85
static Version Get(string str)
Definition: Version.cs:46
bool IsBelow(int _major, int _minor, int _batch)
Definition: Version.cs:31