Elin Decompiled Documentation EA 23.343.5 Nightly
Loading...
Searching...
No Matches
SourceFloor.cs
Go to the documentation of this file.
1using System;
2using System.Collections.Generic;
3
4public class SourceFloor : SourceDataInt<SourceFloor.Row>
5{
6 [Serializable]
7 public class Row : TileRow
8 {
9 public string idBiome;
10
11 public string[] reqHarvest;
12
13 public int[] anime;
14
15 public string defBlock;
16
17 public string bridgeBlock;
18
19 public int edge;
20
21 public int autotile;
22
23 public int autotilePriority;
24
25 public float autotileBrightness;
26
27 public bool nonGradient;
28
29 public bool isBeach;
30
31 public bool snowtile;
32
33 public bool ignoreTransition;
34
35 [NonSerialized]
37
38 [NonSerialized]
40
41 [NonSerialized]
43
44 [NonSerialized]
45 public string name_L;
46
47 [NonSerialized]
48 public string detail_L;
49
50 public override bool UseAlias => true;
51
52 public override string GetAlias => alias;
53
54 public override string RecipeID => "f" + id;
55
57
58 public override void OnInit()
59 {
60 ignoreTransition = tag.Contains("noTransition");
61 ignoreSnow = tag.Contains("noSnow");
62 isBeach = tag.Contains("beach");
63 snowtile = tag.Contains("snowtile");
64 if (!idBiome.IsEmpty())
65 {
67 }
68 }
69
70 public override int GetTile(SourceMaterial.Row mat, int dir = 0)
71 {
72 return _tiles[dir % _tiles.Length];
73 }
74 }
75
76 public static readonly IReadOnlyDictionary<string, int> RowMapping = new Dictionary<string, int>
77 {
78 ["id"] = 0,
79 ["alias"] = 1,
80 ["name_JP"] = 2,
81 ["name"] = 3,
82 ["sort"] = 4,
83 ["idBiome"] = 5,
84 ["reqHarvest"] = 6,
85 ["hp"] = 7,
86 ["_tileType"] = 8,
87 ["_idRenderData"] = 9,
88 ["tiles"] = 10,
89 ["anime"] = 11,
90 ["colorMod"] = 12,
91 ["value"] = 13,
92 ["LV"] = 14,
93 ["recipeKey"] = 15,
94 ["factory"] = 16,
95 ["components"] = 17,
96 ["defMat"] = 18,
97 ["defBlock"] = 19,
98 ["bridgeBlock"] = 20,
99 ["category"] = 21,
100 ["edge"] = 22,
101 ["autotile"] = 23,
102 ["autotilePriority"] = 24,
103 ["autotileBrightness"] = 25,
104 ["soundFoot"] = 26,
105 ["tag"] = 27,
106 ["detail_JP"] = 28,
107 ["detail"] = 29
108 };
109
110 public static readonly IReadOnlyDictionary<string, string> TypeMapping = new Dictionary<string, string>
111 {
112 ["id"] = "int",
113 ["alias"] = "string",
114 ["name_JP"] = "string",
115 ["name"] = "string",
116 ["sort"] = "int",
117 ["idBiome"] = "string",
118 ["reqHarvest"] = "string[]",
119 ["hp"] = "int",
120 ["_tileType"] = "string",
121 ["_idRenderData"] = "string",
122 ["tiles"] = "int[]",
123 ["anime"] = "int[]",
124 ["colorMod"] = "int",
125 ["value"] = "int",
126 ["LV"] = "int",
127 ["recipeKey"] = "string[]",
128 ["factory"] = "string[]",
129 ["components"] = "string[]",
130 ["defMat"] = "string",
131 ["defBlock"] = "string",
132 ["bridgeBlock"] = "string",
133 ["category"] = "string",
134 ["edge"] = "int",
135 ["autotile"] = "int",
136 ["autotilePriority"] = "int",
137 ["autotileBrightness"] = "float",
138 ["soundFoot"] = "string",
139 ["tag"] = "string[]",
140 ["detail_JP"] = "string",
141 ["detail"] = "string"
142 };
143
144 public Dictionary<int, Row> _rows = new Dictionary<int, Row>();
145
147
148 [NonSerialized]
150
152
153 public Row this[int id] => Lookup[id];
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 sort = SourceData.GetInt(4),
164 idBiome = SourceData.GetString(5),
165 reqHarvest = SourceData.GetStringArray(6),
166 hp = SourceData.GetInt(7),
167 _tileType = SourceData.GetString(8),
168 _idRenderData = SourceData.GetString(9),
169 tiles = SourceData.GetIntArray(10),
170 anime = SourceData.GetIntArray(11),
171 colorMod = SourceData.GetInt(12),
172 value = SourceData.GetInt(13),
173 LV = SourceData.GetInt(14),
174 recipeKey = SourceData.GetStringArray(15),
175 factory = SourceData.GetStringArray(16),
176 components = SourceData.GetStringArray(17),
177 defMat = SourceData.GetString(18),
178 defBlock = SourceData.GetString(19),
179 bridgeBlock = SourceData.GetString(20),
180 category = SourceData.GetString(21),
181 edge = SourceData.GetInt(22),
182 autotile = SourceData.GetInt(23),
183 autotilePriority = SourceData.GetInt(24),
184 autotileBrightness = SourceData.GetFloat(25),
185 soundFoot = SourceData.GetString(26),
186 tag = SourceData.GetStringArray(27),
187 detail_JP = SourceData.GetString(28),
188 detail = SourceData.GetString(29)
189 };
190 }
191
192 public override Row CreateRowByMapping(IReadOnlyDictionary<string, int> mapping)
193 {
194 return new Row
195 {
196 id = SourceData.GetInt(mapping["id"]),
197 alias = SourceData.GetString(mapping["alias"]),
198 name_JP = SourceData.GetString(mapping["name_JP"]),
199 name = SourceData.GetString(mapping["name"]),
200 sort = SourceData.GetInt(mapping["sort"]),
201 idBiome = SourceData.GetString(mapping["idBiome"]),
202 reqHarvest = SourceData.GetStringArray(mapping["reqHarvest"]),
203 hp = SourceData.GetInt(mapping["hp"]),
204 _tileType = SourceData.GetString(mapping["_tileType"]),
205 _idRenderData = SourceData.GetString(mapping["_idRenderData"]),
206 tiles = SourceData.GetIntArray(mapping["tiles"]),
207 anime = SourceData.GetIntArray(mapping["anime"]),
208 colorMod = SourceData.GetInt(mapping["colorMod"]),
209 value = SourceData.GetInt(mapping["value"]),
210 LV = SourceData.GetInt(mapping["LV"]),
211 recipeKey = SourceData.GetStringArray(mapping["recipeKey"]),
212 factory = SourceData.GetStringArray(mapping["factory"]),
213 components = SourceData.GetStringArray(mapping["components"]),
214 defMat = SourceData.GetString(mapping["defMat"]),
215 defBlock = SourceData.GetString(mapping["defBlock"]),
216 bridgeBlock = SourceData.GetString(mapping["bridgeBlock"]),
217 category = SourceData.GetString(mapping["category"]),
218 edge = SourceData.GetInt(mapping["edge"]),
219 autotile = SourceData.GetInt(mapping["autotile"]),
220 autotilePriority = SourceData.GetInt(mapping["autotilePriority"]),
221 autotileBrightness = SourceData.GetFloat(mapping["autotileBrightness"]),
222 soundFoot = SourceData.GetString(mapping["soundFoot"]),
223 tag = SourceData.GetStringArray(mapping["tag"]),
224 detail_JP = SourceData.GetString(mapping["detail_JP"]),
225 detail = SourceData.GetString(mapping["detail"])
226 };
227 }
228
229 public override void SetRow(Row r)
230 {
231 map[r.id] = r;
232 }
233
234 public override IReadOnlyDictionary<string, int> GetRowMapping()
235 {
236 return RowMapping;
237 }
238
239 public override IReadOnlyDictionary<string, string> GetTypeMapping()
240 {
241 return TypeMapping;
242 }
243
244 public override void BackupPref()
245 {
246 _rows.Clear();
247 foreach (Row row in rows)
248 {
249 _rows[row.id] = row;
250 }
251 }
252
253 public override void RestorePref()
254 {
255 foreach (Row row in rows)
256 {
257 row.pref = _rows.TryGetValue(row.id)?.pref ?? new SourcePref();
258 }
259 }
260
261 public override void ValidatePref()
262 {
263 foreach (Row row in rows)
264 {
265 row.pref.Validate();
266 }
267 }
268
269 public override void OnAfterImportData()
270 {
271 int num = 0;
272 foreach (Row row in rows)
273 {
274 if (row.sort != 0)
275 {
276 num = row.sort;
277 }
278 row.sort = num;
279 num++;
280 }
281 rows.Sort((Row a, Row b) => a.id - b.id);
282 }
283
284 public override void OnInit()
285 {
286 Lookup.Build();
287 FallbackRenderData = ResourceCache.Load<RenderData>("Scene/Render/Data/floor");
288 Cell.floorSource = this;
289 Cell.floorList = rows;
290 FLOOR.sourceSnow = this[39];
291 FLOOR.sourceSnow2 = this[56];
292 FLOOR.sourceIce = this[38];
293 FLOOR.sourceWood = this[21];
294 foreach (Row row in rows)
295 {
296 row.Init();
297 }
298 }
299
300 public void OnAfterInit()
301 {
302 foreach (Row row in rows)
303 {
304 row._defBlock = EClass.sources.blocks.alias[row.defBlock];
305 row._bridgeBlock = EClass.sources.blocks.alias[row.bridgeBlock];
306 row.nonGradient = row.ContainsTag("nonGradient");
307 }
308 }
309}
UD_Biome dict
Definition: CoreRef.cs:149
Biomes biomes
Definition: CoreRef.cs:344
CoreRef refs
Definition: Core.cs:51
Definition: EClass.cs:6
static Core core
Definition: EClass.cs:7
static SourceManager sources
Definition: EClass.cs:43
string[] tag
Definition: RenderRow.cs:58
int sort
Definition: RenderRow.cs:18
SourcePref pref
Definition: RenderRow.cs:68
bool ContainsTag(string _tag)
Definition: RenderRow.cs:148
int[] _tiles
Definition: RenderRow.cs:12
static float GetFloat(int id)
Definition: SourceData.cs:996
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 ignoreTransition
Definition: SourceFloor.cs:33
float autotileBrightness
Definition: SourceFloor.cs:25
string idBiome
Definition: SourceFloor.cs:9
SourceBlock.Row _defBlock
Definition: SourceFloor.cs:36
SourceBlock.Row _bridgeBlock
Definition: SourceFloor.cs:39
override RenderData defaultRenderData
Definition: SourceFloor.cs:56
override string GetAlias
Definition: SourceFloor.cs:52
override bool UseAlias
Definition: SourceFloor.cs:50
BiomeProfile biome
Definition: SourceFloor.cs:42
string bridgeBlock
Definition: SourceFloor.cs:17
override string RecipeID
Definition: SourceFloor.cs:54
string[] reqHarvest
Definition: SourceFloor.cs:11
override int GetTile(SourceMaterial.Row mat, int dir=0)
Definition: SourceFloor.cs:70
override void OnInit()
Definition: SourceFloor.cs:58
static readonly IReadOnlyDictionary< string, string > TypeMapping
Definition: SourceFloor.cs:110
void OnAfterInit()
Definition: SourceFloor.cs:300
override void RestorePref()
Definition: SourceFloor.cs:253
override void ValidatePref()
Definition: SourceFloor.cs:261
override Row CreateRowByMapping(IReadOnlyDictionary< string, int > mapping)
Definition: SourceFloor.cs:192
Dictionary< int, Row > _rows
Definition: SourceFloor.cs:144
TileLookup< Row > _lookup
Definition: SourceFloor.cs:149
override void OnInit()
Definition: SourceFloor.cs:284
override IReadOnlyDictionary< string, string > GetTypeMapping()
Definition: SourceFloor.cs:239
TileLookup< Row > Lookup
Definition: SourceFloor.cs:151
override IReadOnlyDictionary< string, int > GetRowMapping()
Definition: SourceFloor.cs:234
override Row CreateRow()
Definition: SourceFloor.cs:155
static RenderData FallbackRenderData
Definition: SourceFloor.cs:146
override void SetRow(Row r)
Definition: SourceFloor.cs:229
override void BackupPref()
Definition: SourceFloor.cs:244
static readonly IReadOnlyDictionary< string, int > RowMapping
Definition: SourceFloor.cs:76
override void OnAfterImportData()
Definition: SourceFloor.cs:269
SourceBlock blocks
void Validate()
Definition: SourcePref.cs:385
bool ignoreSnow
Definition: TileRow.cs:6
string alias
Definition: TileRow.cs:12
int id
Definition: TileRow.cs:8
void Init()
Definition: TileRow.cs:16