Elin Decompiled Documentation EA 23.306 Nightly
Loading...
Searching...
No Matches
SourceThing.cs
Go to the documentation of this file.
1using System;
2using System.Collections.Generic;
3
4public class SourceThing : SourceDataString<SourceThing.Row>
5{
6 [Serializable]
7 public class Row : CardRow
8 {
9 public string unknown_JP;
10
11 public string unit_JP;
12
13 public string naming;
14
15 public string unit;
16
17 public string unknown;
18
19 public int[] altTiles;
20
21 public int[] anime;
22
23 public string[] disassemble;
24
25 public int HP;
26
27 public int weight;
28
29 public int electricity;
30
31 public int range;
32
33 public string attackType;
34
35 public int[] offense;
36
37 public int[] substats;
38
39 public int[] defense;
40
41 public string idToggleExtra;
42
43 public string idActorEx;
44
45 public string workTag;
46
47 public string[] roomName_JP;
48
49 public string[] roomName;
50
51 public int[] _altTiles;
52
53 public bool ignoreAltFix;
54
55 public bool animeNoSync;
56
57 [NonSerialized]
58 public string name_L;
59
60 [NonSerialized]
61 public string detail_L;
62
63 [NonSerialized]
64 public string unit_L;
65
66 [NonSerialized]
67 public string unknown_L;
68
69 [NonSerialized]
70 public string[] name2_L;
71
72 [NonSerialized]
73 public string[] roomName_L;
74
75 public override bool UseAlias => false;
76
77 public override string GetAlias => "n";
78
79 public override string RecipeID => id;
80
81 public override void OnImportData(SourceData data)
82 {
83 base.OnImportData(data);
84 _altTiles = new int[0];
85 }
86
87 public override void SetTiles()
88 {
89 if (!renderData || !renderData.pass)
90 {
91 return;
92 }
93 base.SetTiles();
94 if (_altTiles.Length != altTiles.Length)
95 {
96 _altTiles = new int[altTiles.Length];
97 int num = 0;
98 if (origin != null && !ignoreAltFix)
99 {
100 num = _tiles[0] - origin._tiles[0];
101 }
102 for (int i = 0; i < altTiles.Length; i++)
103 {
104 _altTiles[i] = altTiles[i] / 100 * (int)renderData.pass.pmesh.tiling.x + altTiles[i] % 100 + num;
105 }
106 }
107 animeNoSync = tag.Contains("animeNoSync");
108 }
109
110 public override string GetName(SourceMaterial.Row mat, int sum)
111 {
112 if (naming == "m")
113 {
114 return base.GetName(mat, sum);
115 }
116 if (naming == "ma")
117 {
118 return mat.GetName() + " (" + sum + ")";
119 }
120 return GetName() + " (" + sum + ")";
121 }
122
123 public override string GetName()
124 {
125 string text = GetText();
126 if (Lang.setting.nameStyle == 0)
127 {
128 return text;
129 }
130 if (!unit.IsEmpty())
131 {
132 return "_of".lang(text, unit);
133 }
134 return text;
135 }
136
137 public override string GetSearchName(bool jp)
138 {
139 if (jp)
140 {
141 return _nameSearchJP ?? (_nameSearchJP = GetText().ToLower());
142 }
143 return _nameSearch ?? (_nameSearch = (unit.IsEmpty() ? name : (unit + " of " + name)).ToLower());
144 }
145 }
146
147 public static readonly IReadOnlyDictionary<string, int> RowMapping = new Dictionary<string, int>
148 {
149 ["id"] = 0,
150 ["name_JP"] = 1,
151 ["unknown_JP"] = 2,
152 ["unit_JP"] = 3,
153 ["naming"] = 4,
154 ["name"] = 5,
155 ["unit"] = 6,
156 ["unknown"] = 7,
157 ["category"] = 8,
158 ["sort"] = 10,
159 ["_tileType"] = 11,
160 ["_idRenderData"] = 12,
161 ["tiles"] = 13,
162 ["altTiles"] = 14,
163 ["anime"] = 15,
164 ["skins"] = 16,
165 ["size"] = 17,
166 ["colorMod"] = 18,
167 ["colorType"] = 19,
168 ["recipeKey"] = 20,
169 ["factory"] = 21,
170 ["components"] = 22,
171 ["disassemble"] = 23,
172 ["defMat"] = 24,
173 ["tierGroup"] = 25,
174 ["value"] = 26,
175 ["LV"] = 27,
176 ["chance"] = 28,
177 ["quality"] = 29,
178 ["HP"] = 30,
179 ["weight"] = 31,
180 ["electricity"] = 32,
181 ["trait"] = 33,
182 ["elements"] = 34,
183 ["range"] = 35,
184 ["attackType"] = 36,
185 ["offense"] = 37,
186 ["substats"] = 38,
187 ["defense"] = 39,
188 ["lightData"] = 40,
189 ["idExtra"] = 41,
190 ["idToggleExtra"] = 42,
191 ["idActorEx"] = 43,
192 ["idSound"] = 44,
193 ["tag"] = 45,
194 ["workTag"] = 46,
195 ["filter"] = 47,
196 ["roomName_JP"] = 48,
197 ["roomName"] = 49,
198 ["detail_JP"] = 50,
199 ["detail"] = 51
200 };
201
202 public Dictionary<string, Row> _rows = new Dictionary<string, Row>();
203
204 public override string[] ImportFields => new string[4] { "unit", "unknown", "roomName", "name2" };
205
206 public override Row CreateRow()
207 {
208 return new Row
209 {
210 id = SourceData.GetString(0),
211 name_JP = SourceData.GetString(1),
212 unknown_JP = SourceData.GetString(2),
213 unit_JP = SourceData.GetString(3),
214 naming = SourceData.GetString(4),
215 name = SourceData.GetString(5),
216 unit = SourceData.GetString(6),
217 unknown = SourceData.GetString(7),
218 category = SourceData.GetString(8),
219 sort = SourceData.GetInt(10),
220 _tileType = SourceData.GetString(11),
221 _idRenderData = SourceData.GetString(12),
222 tiles = SourceData.GetIntArray(13),
223 altTiles = SourceData.GetIntArray(14),
224 anime = SourceData.GetIntArray(15),
225 skins = SourceData.GetIntArray(16),
226 size = SourceData.GetIntArray(17),
227 colorMod = SourceData.GetInt(18),
228 colorType = SourceData.GetString(19),
229 recipeKey = SourceData.GetStringArray(20),
230 factory = SourceData.GetStringArray(21),
231 components = SourceData.GetStringArray(22),
232 disassemble = SourceData.GetStringArray(23),
233 defMat = SourceData.GetString(24),
234 tierGroup = SourceData.GetString(25),
235 value = SourceData.GetInt(26),
236 LV = SourceData.GetInt(27),
237 chance = SourceData.GetInt(28),
238 quality = SourceData.GetInt(29),
239 HP = SourceData.GetInt(30),
240 weight = SourceData.GetInt(31),
241 electricity = SourceData.GetInt(32),
242 trait = SourceData.GetStringArray(33),
243 elements = Core.ParseElements(SourceData.GetStr(34)),
244 range = SourceData.GetInt(35),
245 attackType = SourceData.GetString(36),
246 offense = SourceData.GetIntArray(37),
247 substats = SourceData.GetIntArray(38),
248 defense = SourceData.GetIntArray(39),
249 lightData = SourceData.GetString(40),
250 idExtra = SourceData.GetString(41),
251 idToggleExtra = SourceData.GetString(42),
252 idActorEx = SourceData.GetString(43),
253 idSound = SourceData.GetString(44),
254 tag = SourceData.GetStringArray(45),
255 workTag = SourceData.GetString(46),
256 filter = SourceData.GetStringArray(47),
257 roomName_JP = SourceData.GetStringArray(48),
258 roomName = SourceData.GetStringArray(49),
259 detail_JP = SourceData.GetString(50),
260 detail = SourceData.GetString(51)
261 };
262 }
263
264 public override Row CreateRowByMapping(IReadOnlyDictionary<string, int> mapping)
265 {
266 return new Row
267 {
268 id = SourceData.GetString(mapping["id"]),
269 name_JP = SourceData.GetString(mapping["name_JP"]),
270 unknown_JP = SourceData.GetString(mapping["unknown_JP"]),
271 unit_JP = SourceData.GetString(mapping["unit_JP"]),
272 naming = SourceData.GetString(mapping["naming"]),
273 name = SourceData.GetString(mapping["name"]),
274 unit = SourceData.GetString(mapping["unit"]),
275 unknown = SourceData.GetString(mapping["unknown"]),
276 category = SourceData.GetString(mapping["category"]),
277 sort = SourceData.GetInt(mapping["sort"]),
278 _tileType = SourceData.GetString(mapping["_tileType"]),
279 _idRenderData = SourceData.GetString(mapping["_idRenderData"]),
280 tiles = SourceData.GetIntArray(mapping["tiles"]),
281 altTiles = SourceData.GetIntArray(mapping["altTiles"]),
282 anime = SourceData.GetIntArray(mapping["anime"]),
283 skins = SourceData.GetIntArray(mapping["skins"]),
284 size = SourceData.GetIntArray(mapping["size"]),
285 colorMod = SourceData.GetInt(mapping["colorMod"]),
286 colorType = SourceData.GetString(mapping["colorType"]),
287 recipeKey = SourceData.GetStringArray(mapping["recipeKey"]),
288 factory = SourceData.GetStringArray(mapping["factory"]),
289 components = SourceData.GetStringArray(mapping["components"]),
290 disassemble = SourceData.GetStringArray(mapping["disassemble"]),
291 defMat = SourceData.GetString(mapping["defMat"]),
292 tierGroup = SourceData.GetString(mapping["tierGroup"]),
293 value = SourceData.GetInt(mapping["value"]),
294 LV = SourceData.GetInt(mapping["LV"]),
295 chance = SourceData.GetInt(mapping["chance"]),
296 quality = SourceData.GetInt(mapping["quality"]),
297 HP = SourceData.GetInt(mapping["HP"]),
298 weight = SourceData.GetInt(mapping["weight"]),
299 electricity = SourceData.GetInt(mapping["electricity"]),
300 trait = SourceData.GetStringArray(mapping["trait"]),
301 elements = Core.ParseElements(SourceData.GetStr(mapping["elements"])),
302 range = SourceData.GetInt(mapping["range"]),
303 attackType = SourceData.GetString(mapping["attackType"]),
304 offense = SourceData.GetIntArray(mapping["offense"]),
305 substats = SourceData.GetIntArray(mapping["substats"]),
306 defense = SourceData.GetIntArray(mapping["defense"]),
307 lightData = SourceData.GetString(mapping["lightData"]),
308 idExtra = SourceData.GetString(mapping["idExtra"]),
309 idToggleExtra = SourceData.GetString(mapping["idToggleExtra"]),
310 idActorEx = SourceData.GetString(mapping["idActorEx"]),
311 idSound = SourceData.GetString(mapping["idSound"]),
312 tag = SourceData.GetStringArray(mapping["tag"]),
313 workTag = SourceData.GetString(mapping["workTag"]),
314 filter = SourceData.GetStringArray(mapping["filter"]),
315 roomName_JP = SourceData.GetStringArray(mapping["roomName_JP"]),
316 roomName = SourceData.GetStringArray(mapping["roomName"]),
317 detail_JP = SourceData.GetString(mapping["detail_JP"]),
318 detail = SourceData.GetString(mapping["detail"])
319 };
320 }
321
322 public override void SetRow(Row r)
323 {
324 map[r.id] = r;
325 }
326
327 public override IReadOnlyDictionary<string, int> GetRowMapping()
328 {
329 return RowMapping;
330 }
331
332 public override void BackupPref()
333 {
334 SourceAsset._SavePrefs("prefs_auto");
335 _rows.Clear();
336 foreach (Row row in rows)
337 {
338 _rows[row.id] = row;
339 }
340 }
341
342 public override void RestorePref()
343 {
344 }
345}
CardRow origin
Definition: CardRow.cs:49
string id
Definition: CardRow.cs:7
Definition: Core.cs:14
static int[] ParseElements(string str)
Definition: Core.cs:727
Definition: Lang.cs:6
static LangSetting setting
Definition: Lang.cs:54
ProceduralMesh pmesh
Definition: MeshPass.cs:25
MeshPass pass
Definition: RenderData.cs:17
string[] tag
Definition: RenderRow.cs:58
RenderData renderData
Definition: RenderRow.cs:71
string _nameSearch
Definition: RenderRow.cs:92
string name
Definition: RenderRow.cs:30
int[] _tiles
Definition: RenderRow.cs:12
string _nameSearchJP
Definition: RenderRow.cs:95
static void _SavePrefs(string id="prefs")
Definition: SourceAsset.cs:36
string GetText(string id="name", bool returnNull=false)
Definition: SourceData.cs:665
static string[] GetStringArray(int id)
Definition: SourceData.cs:978
static string GetString(int id)
Definition: SourceData.cs:983
static int GetInt(int id)
Definition: SourceData.cs:948
static string GetStr(int id, bool useDefault=false)
Definition: SourceData.cs:988
static int[] GetIntArray(int id)
Definition: SourceData.cs:973
string[] name2_L
Definition: SourceThing.cs:70
override bool UseAlias
Definition: SourceThing.cs:75
override string GetAlias
Definition: SourceThing.cs:77
string[] disassemble
Definition: SourceThing.cs:23
string unknown_JP
Definition: SourceThing.cs:9
override string GetName(SourceMaterial.Row mat, int sum)
Definition: SourceThing.cs:110
string idActorEx
Definition: SourceThing.cs:43
override void SetTiles()
Definition: SourceThing.cs:87
override string GetName()
Definition: SourceThing.cs:123
string[] roomName
Definition: SourceThing.cs:49
override string GetSearchName(bool jp)
Definition: SourceThing.cs:137
override string RecipeID
Definition: SourceThing.cs:79
override void OnImportData(SourceData data)
Definition: SourceThing.cs:81
string[] roomName_L
Definition: SourceThing.cs:73
string[] roomName_JP
Definition: SourceThing.cs:47
string attackType
Definition: SourceThing.cs:33
string unknown_L
Definition: SourceThing.cs:67
string idToggleExtra
Definition: SourceThing.cs:41
override IReadOnlyDictionary< string, int > GetRowMapping()
Definition: SourceThing.cs:327
override Row CreateRowByMapping(IReadOnlyDictionary< string, int > mapping)
Definition: SourceThing.cs:264
static readonly IReadOnlyDictionary< string, int > RowMapping
Definition: SourceThing.cs:147
override void RestorePref()
Definition: SourceThing.cs:342
override string[] ImportFields
Definition: SourceThing.cs:204
override void SetRow(Row r)
Definition: SourceThing.cs:322
override void BackupPref()
Definition: SourceThing.cs:332
override Row CreateRow()
Definition: SourceThing.cs:206
Dictionary< string, Row > _rows
Definition: SourceThing.cs:202