Elin Decompiled Documentation EA 23.317 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("*.xlsx", SearchOption.TopDirectoryOnly);
163 foreach (FileInfo fileInfo in files)
164 {
165 MOD.actorSources.Add(new ExcelData(fileInfo.FullName));
166 }
167 DirectoryInfo[] directories2 = directoryInfo.GetDirectories();
168 foreach (DirectoryInfo directoryInfo2 in directories2)
169 {
170 Log.App(directoryInfo2.FullName);
171 string name = directoryInfo2.Name;
172 if (!(name == "PCC"))
173 {
174 if (!(name == "Sprite"))
175 {
176 continue;
177 }
178 files = directoryInfo2.GetFiles();
179 foreach (FileInfo fileInfo2 in files)
180 {
181 if (fileInfo2.Name.EndsWith(".png"))
182 {
183 MOD.sprites.Add(fileInfo2);
184 }
185 }
186 }
187 else
188 {
189 DirectoryInfo[] directories3 = directoryInfo2.GetDirectories();
190 foreach (DirectoryInfo obj in directories3)
191 {
192 MOD.OnAddPcc(obj);
193 }
194 }
195 }
196 }
197 else
198 {
199 BaseModManager.Instance.ParseExtra(directoryInfo, this);
200 }
201 }
202 }
203}
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
void Add(ExcelData data)
Definition: Log.cs:4
static void App(string s)
Definition: Log.cs:7
Definition: MOD.cs:7
static ExcelDataList actorSources
Definition: MOD.cs:16
static ModItemList< Sprite > sprites
Definition: MOD.cs:18
static Action< DirectoryInfo > OnAddPcc
Definition: MOD.cs:20
void Add(FileInfo fi, string path=null, string prefix="")
Definition: ModItemList.cs:85
static Version Get(string str)
Definition: Version.cs:55
bool IsBelow(int _major, int _minor, int _batch)
Definition: Version.cs:31