Elin Decompiled Documentation EA 23.344.1 Nightly
Loading...
Searching...
No Matches
SourceCellEffect.cs
Go to the documentation of this file.
1using System;
2using System.Collections.Generic;
3
4public class SourceCellEffect : SourceDataInt<SourceCellEffect.Row>
5{
6 [Serializable]
7 public class Row : TileRow
8 {
9 public int[] anime;
10
11 public override bool UseAlias => true;
12
13 public override string GetAlias => alias;
14
15 public override string RecipeID => "l" + id;
16
18
19 public override int GetTile(SourceMaterial.Row mat, int dir = 0)
20 {
21 return _tiles[0] + 3;
22 }
23 }
24
25 public static readonly IReadOnlyDictionary<string, int> RowMapping = new Dictionary<string, int>
26 {
27 ["id"] = 0,
28 ["alias"] = 1,
29 ["name_JP"] = 2,
30 ["name"] = 3,
31 ["sort"] = 4,
32 ["_tileType"] = 5,
33 ["_idRenderData"] = 6,
34 ["tiles"] = 7,
35 ["anime"] = 8,
36 ["colorMod"] = 9,
37 ["value"] = 10,
38 ["recipeKey"] = 11,
39 ["factory"] = 12,
40 ["components"] = 13,
41 ["defMat"] = 14,
42 ["category"] = 15,
43 ["tag"] = 16,
44 ["detail_JP"] = 17,
45 ["detail"] = 18
46 };
47
48 public static readonly IReadOnlyDictionary<string, string> TypeMapping = new Dictionary<string, string>
49 {
50 ["id"] = "int",
51 ["alias"] = "string",
52 ["name_JP"] = "string",
53 ["name"] = "string",
54 ["sort"] = "int",
55 ["_tileType"] = "string",
56 ["_idRenderData"] = "string",
57 ["tiles"] = "int[]",
58 ["anime"] = "int[]",
59 ["colorMod"] = "int",
60 ["value"] = "int",
61 ["recipeKey"] = "string[]",
62 ["factory"] = "string[]",
63 ["components"] = "string[]",
64 ["defMat"] = "string",
65 ["category"] = "string",
66 ["tag"] = "string[]",
67 ["detail_JP"] = "string",
68 ["detail"] = "string"
69 };
70
72
73 [NonSerialized]
75
77
78 public Row this[int id] => Lookup[id];
79
80 public override Row CreateRow()
81 {
82 return new Row
83 {
84 id = SourceData.GetInt(0),
85 alias = SourceData.GetString(1),
86 name_JP = SourceData.GetString(2),
87 name = SourceData.GetString(3),
88 sort = SourceData.GetInt(4),
89 _tileType = SourceData.GetString(5),
90 _idRenderData = SourceData.GetString(6),
91 tiles = SourceData.GetIntArray(7),
92 anime = SourceData.GetIntArray(8),
93 colorMod = SourceData.GetInt(9),
94 value = SourceData.GetInt(10),
95 recipeKey = SourceData.GetStringArray(11),
96 factory = SourceData.GetStringArray(12),
97 components = SourceData.GetStringArray(13),
98 defMat = SourceData.GetString(14),
99 category = SourceData.GetString(15),
100 tag = SourceData.GetStringArray(16),
101 detail_JP = SourceData.GetString(17),
102 detail = SourceData.GetString(18)
103 };
104 }
105
106 public override Row CreateRowByMapping(IReadOnlyDictionary<string, int> mapping)
107 {
108 return new Row
109 {
110 id = SourceData.GetInt(mapping["id"]),
111 alias = SourceData.GetString(mapping["alias"]),
112 name_JP = SourceData.GetString(mapping["name_JP"]),
113 name = SourceData.GetString(mapping["name"]),
114 sort = SourceData.GetInt(mapping["sort"]),
115 _tileType = SourceData.GetString(mapping["_tileType"]),
116 _idRenderData = SourceData.GetString(mapping["_idRenderData"]),
117 tiles = SourceData.GetIntArray(mapping["tiles"]),
118 anime = SourceData.GetIntArray(mapping["anime"]),
119 colorMod = SourceData.GetInt(mapping["colorMod"]),
120 value = SourceData.GetInt(mapping["value"]),
121 recipeKey = SourceData.GetStringArray(mapping["recipeKey"]),
122 factory = SourceData.GetStringArray(mapping["factory"]),
123 components = SourceData.GetStringArray(mapping["components"]),
124 defMat = SourceData.GetString(mapping["defMat"]),
125 category = SourceData.GetString(mapping["category"]),
126 tag = SourceData.GetStringArray(mapping["tag"]),
127 detail_JP = SourceData.GetString(mapping["detail_JP"]),
128 detail = SourceData.GetString(mapping["detail"])
129 };
130 }
131
132 public override void SetRow(Row r)
133 {
134 map[r.id] = r;
135 }
136
137 public override IReadOnlyDictionary<string, int> GetRowMapping()
138 {
139 return RowMapping;
140 }
141
142 public override IReadOnlyDictionary<string, string> GetTypeMapping()
143 {
144 return TypeMapping;
145 }
146
147 public override void OnAfterImportData()
148 {
149 int num = 0;
150 foreach (Row row in rows)
151 {
152 if (row.sort != 0)
153 {
154 num = row.sort;
155 }
156 row.sort = num;
157 num++;
158 }
159 rows.Sort((Row r) => r.id);
160 }
161
162 public override void OnInit()
163 {
164 Lookup.Build();
165 FallbackRenderData = ResourceCache.Load<RenderData>("Scene/Render/Data/liquid");
166 Cell.effectSource = this;
167 Cell.effectList = rows;
168 foreach (Row row in rows)
169 {
170 row.Init();
171 }
172 }
173}
int sort
Definition: RenderRow.cs:18
int[] _tiles
Definition: RenderRow.cs:12
override RenderData defaultRenderData
override string RecipeID
override int GetTile(SourceMaterial.Row mat, int dir=0)
override bool UseAlias
override string GetAlias
override IReadOnlyDictionary< string, int > GetRowMapping()
override void OnAfterImportData()
static readonly IReadOnlyDictionary< string, int > RowMapping
static readonly IReadOnlyDictionary< string, string > TypeMapping
override IReadOnlyDictionary< string, string > GetTypeMapping()
override Row CreateRowByMapping(IReadOnlyDictionary< string, int > mapping)
static RenderData FallbackRenderData
TileLookup< Row > Lookup
TileLookup< Row > _lookup
override void OnInit()
override Row CreateRow()
override void SetRow(Row r)
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
string alias
Definition: TileRow.cs:13
int id
Definition: TileRow.cs:9
void Init()
Definition: TileRow.cs:17