Elin Decompiled Documentation EA 23.312 Nightly Patch 4
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 public override Row CreateRow()
149 {
150 return new Row
151 {
152 id = SourceData.GetInt(0),
153 alias = SourceData.GetString(1),
154 name_JP = SourceData.GetString(2),
155 name = SourceData.GetString(3),
156 sort = SourceData.GetInt(4),
157 idBiome = SourceData.GetString(5),
158 reqHarvest = SourceData.GetStringArray(6),
159 hp = SourceData.GetInt(7),
160 _tileType = SourceData.GetString(8),
161 _idRenderData = SourceData.GetString(9),
162 tiles = SourceData.GetIntArray(10),
163 anime = SourceData.GetIntArray(11),
164 colorMod = SourceData.GetInt(12),
165 value = SourceData.GetInt(13),
166 LV = SourceData.GetInt(14),
167 recipeKey = SourceData.GetStringArray(15),
168 factory = SourceData.GetStringArray(16),
169 components = SourceData.GetStringArray(17),
170 defMat = SourceData.GetString(18),
171 defBlock = SourceData.GetString(19),
172 bridgeBlock = SourceData.GetString(20),
173 category = SourceData.GetString(21),
174 edge = SourceData.GetInt(22),
175 autotile = SourceData.GetInt(23),
176 autotilePriority = SourceData.GetInt(24),
177 autotileBrightness = SourceData.GetFloat(25),
178 soundFoot = SourceData.GetString(26),
179 tag = SourceData.GetStringArray(27),
180 detail_JP = SourceData.GetString(28),
181 detail = SourceData.GetString(29)
182 };
183 }
184
185 public override Row CreateRowByMapping(IReadOnlyDictionary<string, int> mapping)
186 {
187 return new Row
188 {
189 id = SourceData.GetInt(mapping["id"]),
190 alias = SourceData.GetString(mapping["alias"]),
191 name_JP = SourceData.GetString(mapping["name_JP"]),
192 name = SourceData.GetString(mapping["name"]),
193 sort = SourceData.GetInt(mapping["sort"]),
194 idBiome = SourceData.GetString(mapping["idBiome"]),
195 reqHarvest = SourceData.GetStringArray(mapping["reqHarvest"]),
196 hp = SourceData.GetInt(mapping["hp"]),
197 _tileType = SourceData.GetString(mapping["_tileType"]),
198 _idRenderData = SourceData.GetString(mapping["_idRenderData"]),
199 tiles = SourceData.GetIntArray(mapping["tiles"]),
200 anime = SourceData.GetIntArray(mapping["anime"]),
201 colorMod = SourceData.GetInt(mapping["colorMod"]),
202 value = SourceData.GetInt(mapping["value"]),
203 LV = SourceData.GetInt(mapping["LV"]),
204 recipeKey = SourceData.GetStringArray(mapping["recipeKey"]),
205 factory = SourceData.GetStringArray(mapping["factory"]),
206 components = SourceData.GetStringArray(mapping["components"]),
207 defMat = SourceData.GetString(mapping["defMat"]),
208 defBlock = SourceData.GetString(mapping["defBlock"]),
209 bridgeBlock = SourceData.GetString(mapping["bridgeBlock"]),
210 category = SourceData.GetString(mapping["category"]),
211 edge = SourceData.GetInt(mapping["edge"]),
212 autotile = SourceData.GetInt(mapping["autotile"]),
213 autotilePriority = SourceData.GetInt(mapping["autotilePriority"]),
214 autotileBrightness = SourceData.GetFloat(mapping["autotileBrightness"]),
215 soundFoot = SourceData.GetString(mapping["soundFoot"]),
216 tag = SourceData.GetStringArray(mapping["tag"]),
217 detail_JP = SourceData.GetString(mapping["detail_JP"]),
218 detail = SourceData.GetString(mapping["detail"])
219 };
220 }
221
222 public override void SetRow(Row r)
223 {
224 map[r.id] = r;
225 }
226
227 public override IReadOnlyDictionary<string, int> GetRowMapping()
228 {
229 return RowMapping;
230 }
231
232 public override IReadOnlyDictionary<string, string> GetTypeMapping()
233 {
234 return TypeMapping;
235 }
236
237 public override void BackupPref()
238 {
239 _rows.Clear();
240 foreach (Row row in rows)
241 {
242 _rows[row.id] = row;
243 }
244 }
245
246 public override void RestorePref()
247 {
248 foreach (Row row in rows)
249 {
250 row.pref = _rows.TryGetValue(row.id)?.pref ?? new SourcePref();
251 }
252 }
253
254 public override void ValidatePref()
255 {
256 foreach (Row row in rows)
257 {
258 row.pref.Validate();
259 }
260 }
261
262 public override void OnAfterImportData()
263 {
264 int num = 0;
265 foreach (Row row in rows)
266 {
267 if (row.sort != 0)
268 {
269 num = row.sort;
270 }
271 row.sort = num;
272 num++;
273 }
274 rows.Sort((Row a, Row b) => a.id - b.id);
275 }
276
277 public override void OnInit()
278 {
279 FallbackRenderData = ResourceCache.Load<RenderData>("Scene/Render/Data/floor");
280 Cell.floorList = rows;
281 foreach (Row row in rows)
282 {
283 row.Init();
284 }
285 }
286
287 public void OnAfterInit()
288 {
289 foreach (Row row in rows)
290 {
291 row._defBlock = EClass.sources.blocks.alias[row.defBlock];
292 row._bridgeBlock = EClass.sources.blocks.alias[row.bridgeBlock];
293 row.nonGradient = row.ContainsTag("nonGradient");
294 }
295 }
296}
UD_Biome dict
Definition: CoreRef.cs:147
Biomes biomes
Definition: CoreRef.cs:342
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:287
override void RestorePref()
Definition: SourceFloor.cs:246
override void ValidatePref()
Definition: SourceFloor.cs:254
override Row CreateRowByMapping(IReadOnlyDictionary< string, int > mapping)
Definition: SourceFloor.cs:185
Dictionary< int, Row > _rows
Definition: SourceFloor.cs:144
override void OnInit()
Definition: SourceFloor.cs:277
override IReadOnlyDictionary< string, string > GetTypeMapping()
Definition: SourceFloor.cs:232
override IReadOnlyDictionary< string, int > GetRowMapping()
Definition: SourceFloor.cs:227
override Row CreateRow()
Definition: SourceFloor.cs:148
static RenderData FallbackRenderData
Definition: SourceFloor.cs:146
override void SetRow(Row r)
Definition: SourceFloor.cs:222
override void BackupPref()
Definition: SourceFloor.cs:237
static readonly IReadOnlyDictionary< string, int > RowMapping
Definition: SourceFloor.cs:76
override void OnAfterImportData()
Definition: SourceFloor.cs:262
SourceBlock blocks
void Validate()
Definition: SourcePref.cs:351
bool ignoreSnow
Definition: TileRow.cs:6
string alias
Definition: TileRow.cs:12
int id
Definition: TileRow.cs:8
void Init()
Definition: TileRow.cs:16