Elin Decompiled Documentation EA 23.320 Nyaightly Patch 1
Loading...
Searching...
No Matches
SourceObj.cs
Go to the documentation of this file.
1using System;
2using System.Collections.Generic;
3
4public class SourceObj : SourceDataInt<SourceObj.Row>
5{
6 [Serializable]
7 public class Row : TileRow
8 {
9 public string[] _growth;
10
11 public int costSoil;
12
13 public string objType;
14
15 public string[] vals;
16
17 public string[] reqHarvest;
18
19 public string valType;
20
21 public int[] anime;
22
23 public string matCategory;
24
25 public int idRoof;
26
27 [NonSerialized]
28 public bool HasGrowth;
29
30 [NonSerialized]
31 public bool autoTile;
32
34
36
37 [NonSerialized]
38 public string name_L;
39
40 [NonSerialized]
41 public string detail_L;
42
43 public override bool UseAlias => true;
44
45 public override string GetAlias => alias;
46
47 public override string RecipeID => "o" + id;
48
50
51 public override void OnInit()
52 {
53 objValType = ((!valType.IsEmpty()) ? valType.ToEnum<ObjValType>() : ObjValType.None);
54 autoTile = tag.Contains("autotile");
55 if (!_growth.IsEmpty())
56 {
57 growth = ClassCache.Create<GrowSystem>("GrowSystem" + _growth[0], "Elin");
58 growth.Init(this);
59 HasGrowth = true;
60 }
61 else
62 {
63 HasGrowth = false;
64 }
65 }
66 }
67
68 public class Stage
69 {
70 public int step;
71
72 public int[] tiles;
73
74 public string idThing;
75
76 public bool harvest;
77 }
78
79 public static readonly IReadOnlyDictionary<string, int> RowMapping = new Dictionary<string, int>
80 {
81 ["id"] = 0,
82 ["alias"] = 1,
83 ["name_JP"] = 2,
84 ["name"] = 3,
85 ["_growth"] = 4,
86 ["costSoil"] = 5,
87 ["objType"] = 6,
88 ["vals"] = 7,
89 ["tag"] = 8,
90 ["sort"] = 9,
91 ["reqHarvest"] = 10,
92 ["hp"] = 11,
93 ["_tileType"] = 12,
94 ["valType"] = 13,
95 ["_idRenderData"] = 14,
96 ["tiles"] = 15,
97 ["anime"] = 16,
98 ["snowTile"] = 17,
99 ["colorMod"] = 18,
100 ["colorType"] = 19,
101 ["value"] = 20,
102 ["LV"] = 21,
103 ["chance"] = 22,
104 ["recipeKey"] = 23,
105 ["factory"] = 24,
106 ["components"] = 25,
107 ["defMat"] = 26,
108 ["matCategory"] = 27,
109 ["category"] = 28,
110 ["idRoof"] = 29,
111 ["detail_JP"] = 30,
112 ["detail"] = 31
113 };
114
115 public static readonly IReadOnlyDictionary<string, string> TypeMapping = new Dictionary<string, string>
116 {
117 ["id"] = "int",
118 ["alias"] = "string",
119 ["name_JP"] = "string",
120 ["name"] = "string",
121 ["_growth"] = "string[]",
122 ["costSoil"] = "int",
123 ["objType"] = "string",
124 ["vals"] = "string[]",
125 ["tag"] = "string[]",
126 ["sort"] = "int",
127 ["reqHarvest"] = "string[]",
128 ["hp"] = "int",
129 ["_tileType"] = "string",
130 ["valType"] = "string",
131 ["_idRenderData"] = "string",
132 ["tiles"] = "int[]",
133 ["anime"] = "int[]",
134 ["snowTile"] = "int",
135 ["colorMod"] = "int",
136 ["colorType"] = "string",
137 ["value"] = "int",
138 ["LV"] = "int",
139 ["chance"] = "int",
140 ["recipeKey"] = "string[]",
141 ["factory"] = "string[]",
142 ["components"] = "string[]",
143 ["defMat"] = "string",
144 ["matCategory"] = "string",
145 ["category"] = "string",
146 ["idRoof"] = "int",
147 ["detail_JP"] = "string",
148 ["detail"] = "string"
149 };
150
151 public Dictionary<int, Row> _rows = new Dictionary<int, Row>();
152
154
155 public override Row CreateRow()
156 {
157 return new Row
158 {
159 id = SourceData.GetInt(0),
160 alias = SourceData.GetString(1),
161 name_JP = SourceData.GetString(2),
162 name = SourceData.GetString(3),
163 _growth = SourceData.GetStringArray(4),
164 costSoil = SourceData.GetInt(5),
165 objType = SourceData.GetString(6),
166 vals = SourceData.GetStringArray(7),
167 tag = SourceData.GetStringArray(8),
168 sort = SourceData.GetInt(9),
169 reqHarvest = SourceData.GetStringArray(10),
170 hp = SourceData.GetInt(11),
171 _tileType = SourceData.GetString(12),
172 valType = SourceData.GetString(13),
173 _idRenderData = SourceData.GetString(14),
174 tiles = SourceData.GetIntArray(15),
175 anime = SourceData.GetIntArray(16),
176 snowTile = SourceData.GetInt(17),
177 colorMod = SourceData.GetInt(18),
178 colorType = SourceData.GetString(19),
179 value = SourceData.GetInt(20),
180 LV = SourceData.GetInt(21),
181 chance = SourceData.GetInt(22),
182 recipeKey = SourceData.GetStringArray(23),
183 factory = SourceData.GetStringArray(24),
184 components = SourceData.GetStringArray(25),
185 defMat = SourceData.GetString(26),
186 matCategory = SourceData.GetString(27),
187 category = SourceData.GetString(28),
188 idRoof = SourceData.GetInt(29),
189 detail_JP = SourceData.GetString(30),
190 detail = SourceData.GetString(31)
191 };
192 }
193
194 public override Row CreateRowByMapping(IReadOnlyDictionary<string, int> mapping)
195 {
196 return new Row
197 {
198 id = SourceData.GetInt(mapping["id"]),
199 alias = SourceData.GetString(mapping["alias"]),
200 name_JP = SourceData.GetString(mapping["name_JP"]),
201 name = SourceData.GetString(mapping["name"]),
202 _growth = SourceData.GetStringArray(mapping["_growth"]),
203 costSoil = SourceData.GetInt(mapping["costSoil"]),
204 objType = SourceData.GetString(mapping["objType"]),
205 vals = SourceData.GetStringArray(mapping["vals"]),
206 tag = SourceData.GetStringArray(mapping["tag"]),
207 sort = SourceData.GetInt(mapping["sort"]),
208 reqHarvest = SourceData.GetStringArray(mapping["reqHarvest"]),
209 hp = SourceData.GetInt(mapping["hp"]),
210 _tileType = SourceData.GetString(mapping["_tileType"]),
211 valType = SourceData.GetString(mapping["valType"]),
212 _idRenderData = SourceData.GetString(mapping["_idRenderData"]),
213 tiles = SourceData.GetIntArray(mapping["tiles"]),
214 anime = SourceData.GetIntArray(mapping["anime"]),
215 snowTile = SourceData.GetInt(mapping["snowTile"]),
216 colorMod = SourceData.GetInt(mapping["colorMod"]),
217 colorType = SourceData.GetString(mapping["colorType"]),
218 value = SourceData.GetInt(mapping["value"]),
219 LV = SourceData.GetInt(mapping["LV"]),
220 chance = SourceData.GetInt(mapping["chance"]),
221 recipeKey = SourceData.GetStringArray(mapping["recipeKey"]),
222 factory = SourceData.GetStringArray(mapping["factory"]),
223 components = SourceData.GetStringArray(mapping["components"]),
224 defMat = SourceData.GetString(mapping["defMat"]),
225 matCategory = SourceData.GetString(mapping["matCategory"]),
226 category = SourceData.GetString(mapping["category"]),
227 idRoof = SourceData.GetInt(mapping["idRoof"]),
228 detail_JP = SourceData.GetString(mapping["detail_JP"]),
229 detail = SourceData.GetString(mapping["detail"])
230 };
231 }
232
233 public override void SetRow(Row r)
234 {
235 map[r.id] = r;
236 }
237
238 public override IReadOnlyDictionary<string, int> GetRowMapping()
239 {
240 return RowMapping;
241 }
242
243 public override IReadOnlyDictionary<string, string> GetTypeMapping()
244 {
245 return TypeMapping;
246 }
247
248 public override void BackupPref()
249 {
250 _rows.Clear();
251 foreach (Row row in rows)
252 {
253 _rows[row.id] = row;
254 }
255 }
256
257 public override void RestorePref()
258 {
259 foreach (Row row in rows)
260 {
261 row.pref = _rows.TryGetValue(row.id)?.pref ?? new SourcePref();
262 }
263 }
264
265 public override void ValidatePref()
266 {
267 foreach (Row row in rows)
268 {
269 row.pref.Validate();
270 }
271 }
272
273 public string GetName(int id)
274 {
275 return map[id].GetName().ToTitleCase();
276 }
277
278 public override void OnAfterImportData()
279 {
280 int num = 0;
281 foreach (Row row in rows)
282 {
283 if (row.sort != 0)
284 {
285 num = row.sort;
286 }
287 row.sort = num;
288 num++;
289 }
290 rows.Sort((Row a, Row b) => a.id - b.id);
291 }
292
293 public override void OnInit()
294 {
295 FallbackRenderData = ResourceCache.Load<RenderData>("Scene/Render/Data/obj");
296 Cell.objList = rows;
297 foreach (Row row in rows)
298 {
299 row.Init();
300 }
301 }
302}
ObjValType
Definition: ObjValType.cs:2
void Init(SourceObj.Row _row)
Definition: GrowSystem.cs:149
string[] tag
Definition: RenderRow.cs:58
int sort
Definition: RenderRow.cs:18
SourcePref pref
Definition: RenderRow.cs:68
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 int[] GetIntArray(int id)
Definition: SourceData.cs:1006
bool HasGrowth
Definition: SourceObj.cs:28
ObjValType objValType
Definition: SourceObj.cs:35
int[] anime
Definition: SourceObj.cs:21
string[] reqHarvest
Definition: SourceObj.cs:17
string detail_L
Definition: SourceObj.cs:41
override bool UseAlias
Definition: SourceObj.cs:43
string valType
Definition: SourceObj.cs:19
string[] _growth
Definition: SourceObj.cs:9
override string RecipeID
Definition: SourceObj.cs:47
override void OnInit()
Definition: SourceObj.cs:51
string objType
Definition: SourceObj.cs:13
GrowSystem growth
Definition: SourceObj.cs:33
string matCategory
Definition: SourceObj.cs:23
override RenderData defaultRenderData
Definition: SourceObj.cs:49
string name_L
Definition: SourceObj.cs:38
bool autoTile
Definition: SourceObj.cs:31
override string GetAlias
Definition: SourceObj.cs:45
string[] vals
Definition: SourceObj.cs:15
string idThing
Definition: SourceObj.cs:74
override IReadOnlyDictionary< string, string > GetTypeMapping()
Definition: SourceObj.cs:243
override Row CreateRowByMapping(IReadOnlyDictionary< string, int > mapping)
Definition: SourceObj.cs:194
string GetName(int id)
Definition: SourceObj.cs:273
override void OnInit()
Definition: SourceObj.cs:293
override void OnAfterImportData()
Definition: SourceObj.cs:278
override IReadOnlyDictionary< string, int > GetRowMapping()
Definition: SourceObj.cs:238
static readonly IReadOnlyDictionary< string, string > TypeMapping
Definition: SourceObj.cs:115
static readonly IReadOnlyDictionary< string, int > RowMapping
Definition: SourceObj.cs:79
override void RestorePref()
Definition: SourceObj.cs:257
override void SetRow(Row r)
Definition: SourceObj.cs:233
override void BackupPref()
Definition: SourceObj.cs:248
override Row CreateRow()
Definition: SourceObj.cs:155
static RenderData FallbackRenderData
Definition: SourceObj.cs:153
override void ValidatePref()
Definition: SourceObj.cs:265
Dictionary< int, Row > _rows
Definition: SourceObj.cs:151
void Validate()
Definition: SourcePref.cs:351
string alias
Definition: TileRow.cs:12
int id
Definition: TileRow.cs:8
void Init()
Definition: TileRow.cs:16