Elin Decompiled Documentation EA 23.321 Nightly Patch 1
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 static readonly IReadOnlyDictionary<string, string> TypeMapping = new Dictionary<string, string>
203 {
204 ["id"] = "string",
205 ["name_JP"] = "string",
206 ["unknown_JP"] = "string",
207 ["unit_JP"] = "string",
208 ["naming"] = "string",
209 ["name"] = "string",
210 ["unit"] = "string",
211 ["unknown"] = "string",
212 ["category"] = "string",
213 ["sort"] = "int",
214 ["_tileType"] = "string",
215 ["_idRenderData"] = "string",
216 ["tiles"] = "int[]",
217 ["altTiles"] = "int[]",
218 ["anime"] = "int[]",
219 ["skins"] = "int[]",
220 ["size"] = "int[]",
221 ["colorMod"] = "int",
222 ["colorType"] = "string",
223 ["recipeKey"] = "string[]",
224 ["factory"] = "string[]",
225 ["components"] = "string[]",
226 ["disassemble"] = "string[]",
227 ["defMat"] = "string",
228 ["tierGroup"] = "string",
229 ["value"] = "int",
230 ["LV"] = "int",
231 ["chance"] = "int",
232 ["quality"] = "int",
233 ["HP"] = "int",
234 ["weight"] = "int",
235 ["electricity"] = "int",
236 ["trait"] = "string[]",
237 ["elements"] = "elements",
238 ["range"] = "int",
239 ["attackType"] = "string",
240 ["offense"] = "int[]",
241 ["substats"] = "int[]",
242 ["defense"] = "int[]",
243 ["lightData"] = "string",
244 ["idExtra"] = "string",
245 ["idToggleExtra"] = "string",
246 ["idActorEx"] = "string",
247 ["idSound"] = "string",
248 ["tag"] = "string[]",
249 ["workTag"] = "string",
250 ["filter"] = "string[]",
251 ["roomName_JP"] = "string[]",
252 ["roomName"] = "string[]",
253 ["detail_JP"] = "string",
254 ["detail"] = "string"
255 };
256
257 public Dictionary<string, Row> _rows = new Dictionary<string, Row>();
258
259 public override string[] ImportFields => new string[4] { "unit", "unknown", "roomName", "name2" };
260
261 public override Row CreateRow()
262 {
263 return new Row
264 {
265 id = SourceData.GetString(0),
266 name_JP = SourceData.GetString(1),
267 unknown_JP = SourceData.GetString(2),
268 unit_JP = SourceData.GetString(3),
269 naming = SourceData.GetString(4),
270 name = SourceData.GetString(5),
271 unit = SourceData.GetString(6),
272 unknown = SourceData.GetString(7),
273 category = SourceData.GetString(8),
274 sort = SourceData.GetInt(10),
275 _tileType = SourceData.GetString(11),
276 _idRenderData = SourceData.GetString(12),
277 tiles = SourceData.GetIntArray(13),
278 altTiles = SourceData.GetIntArray(14),
279 anime = SourceData.GetIntArray(15),
280 skins = SourceData.GetIntArray(16),
281 size = SourceData.GetIntArray(17),
282 colorMod = SourceData.GetInt(18),
283 colorType = SourceData.GetString(19),
284 recipeKey = SourceData.GetStringArray(20),
285 factory = SourceData.GetStringArray(21),
286 components = SourceData.GetStringArray(22),
287 disassemble = SourceData.GetStringArray(23),
288 defMat = SourceData.GetString(24),
289 tierGroup = SourceData.GetString(25),
290 value = SourceData.GetInt(26),
291 LV = SourceData.GetInt(27),
292 chance = SourceData.GetInt(28),
293 quality = SourceData.GetInt(29),
294 HP = SourceData.GetInt(30),
295 weight = SourceData.GetInt(31),
296 electricity = SourceData.GetInt(32),
297 trait = SourceData.GetStringArray(33),
298 elements = Core.ParseElements(SourceData.GetStr(34)),
299 range = SourceData.GetInt(35),
300 attackType = SourceData.GetString(36),
301 offense = SourceData.GetIntArray(37),
302 substats = SourceData.GetIntArray(38),
303 defense = SourceData.GetIntArray(39),
304 lightData = SourceData.GetString(40),
305 idExtra = SourceData.GetString(41),
306 idToggleExtra = SourceData.GetString(42),
307 idActorEx = SourceData.GetString(43),
308 idSound = SourceData.GetString(44),
309 tag = SourceData.GetStringArray(45),
310 workTag = SourceData.GetString(46),
311 filter = SourceData.GetStringArray(47),
312 roomName_JP = SourceData.GetStringArray(48),
313 roomName = SourceData.GetStringArray(49),
314 detail_JP = SourceData.GetString(50),
315 detail = SourceData.GetString(51)
316 };
317 }
318
319 public override Row CreateRowByMapping(IReadOnlyDictionary<string, int> mapping)
320 {
321 return new Row
322 {
323 id = SourceData.GetString(mapping["id"]),
324 name_JP = SourceData.GetString(mapping["name_JP"]),
325 unknown_JP = SourceData.GetString(mapping["unknown_JP"]),
326 unit_JP = SourceData.GetString(mapping["unit_JP"]),
327 naming = SourceData.GetString(mapping["naming"]),
328 name = SourceData.GetString(mapping["name"]),
329 unit = SourceData.GetString(mapping["unit"]),
330 unknown = SourceData.GetString(mapping["unknown"]),
331 category = SourceData.GetString(mapping["category"]),
332 sort = SourceData.GetInt(mapping["sort"]),
333 _tileType = SourceData.GetString(mapping["_tileType"]),
334 _idRenderData = SourceData.GetString(mapping["_idRenderData"]),
335 tiles = SourceData.GetIntArray(mapping["tiles"]),
336 altTiles = SourceData.GetIntArray(mapping["altTiles"]),
337 anime = SourceData.GetIntArray(mapping["anime"]),
338 skins = SourceData.GetIntArray(mapping["skins"]),
339 size = SourceData.GetIntArray(mapping["size"]),
340 colorMod = SourceData.GetInt(mapping["colorMod"]),
341 colorType = SourceData.GetString(mapping["colorType"]),
342 recipeKey = SourceData.GetStringArray(mapping["recipeKey"]),
343 factory = SourceData.GetStringArray(mapping["factory"]),
344 components = SourceData.GetStringArray(mapping["components"]),
345 disassemble = SourceData.GetStringArray(mapping["disassemble"]),
346 defMat = SourceData.GetString(mapping["defMat"]),
347 tierGroup = SourceData.GetString(mapping["tierGroup"]),
348 value = SourceData.GetInt(mapping["value"]),
349 LV = SourceData.GetInt(mapping["LV"]),
350 chance = SourceData.GetInt(mapping["chance"]),
351 quality = SourceData.GetInt(mapping["quality"]),
352 HP = SourceData.GetInt(mapping["HP"]),
353 weight = SourceData.GetInt(mapping["weight"]),
354 electricity = SourceData.GetInt(mapping["electricity"]),
355 trait = SourceData.GetStringArray(mapping["trait"]),
356 elements = Core.ParseElements(SourceData.GetStr(mapping["elements"])),
357 range = SourceData.GetInt(mapping["range"]),
358 attackType = SourceData.GetString(mapping["attackType"]),
359 offense = SourceData.GetIntArray(mapping["offense"]),
360 substats = SourceData.GetIntArray(mapping["substats"]),
361 defense = SourceData.GetIntArray(mapping["defense"]),
362 lightData = SourceData.GetString(mapping["lightData"]),
363 idExtra = SourceData.GetString(mapping["idExtra"]),
364 idToggleExtra = SourceData.GetString(mapping["idToggleExtra"]),
365 idActorEx = SourceData.GetString(mapping["idActorEx"]),
366 idSound = SourceData.GetString(mapping["idSound"]),
367 tag = SourceData.GetStringArray(mapping["tag"]),
368 workTag = SourceData.GetString(mapping["workTag"]),
369 filter = SourceData.GetStringArray(mapping["filter"]),
370 roomName_JP = SourceData.GetStringArray(mapping["roomName_JP"]),
371 roomName = SourceData.GetStringArray(mapping["roomName"]),
372 detail_JP = SourceData.GetString(mapping["detail_JP"]),
373 detail = SourceData.GetString(mapping["detail"])
374 };
375 }
376
377 public override void SetRow(Row r)
378 {
379 map[r.id] = r;
380 }
381
382 public override IReadOnlyDictionary<string, int> GetRowMapping()
383 {
384 return RowMapping;
385 }
386
387 public override IReadOnlyDictionary<string, string> GetTypeMapping()
388 {
389 return TypeMapping;
390 }
391
392 public override void BackupPref()
393 {
394 SourceAsset._SavePrefs("prefs_auto");
395 _rows.Clear();
396 foreach (Row row in rows)
397 {
398 _rows[row.id] = row;
399 }
400 }
401
402 public override void RestorePref()
403 {
404 }
405}
CardRow origin
Definition: CardRow.cs:49
string id
Definition: CardRow.cs:7
Definition: Core.cs:14
static int[] ParseElements(string str)
Definition: Core.cs:726
Definition: Lang.cs:7
static LangSetting setting
Definition: Lang.cs:55
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:688
static string[] GetStringArray(int id)
Definition: SourceData.cs:1011
static string GetString(int id)
Definition: SourceData.cs:1016
static int GetInt(int id)
Definition: SourceData.cs:981
static string GetStr(int id, bool useDefault=false)
Definition: SourceData.cs:1021
static int[] GetIntArray(int id)
Definition: SourceData.cs:1006
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
static readonly IReadOnlyDictionary< string, string > TypeMapping
Definition: SourceThing.cs:202
override IReadOnlyDictionary< string, int > GetRowMapping()
Definition: SourceThing.cs:382
override Row CreateRowByMapping(IReadOnlyDictionary< string, int > mapping)
Definition: SourceThing.cs:319
static readonly IReadOnlyDictionary< string, int > RowMapping
Definition: SourceThing.cs:147
override void RestorePref()
Definition: SourceThing.cs:402
override string[] ImportFields
Definition: SourceThing.cs:259
override void SetRow(Row r)
Definition: SourceThing.cs:377
override void BackupPref()
Definition: SourceThing.cs:392
override IReadOnlyDictionary< string, string > GetTypeMapping()
Definition: SourceThing.cs:387
override Row CreateRow()
Definition: SourceThing.cs:261
Dictionary< string, Row > _rows
Definition: SourceThing.cs:257