Elin Decompiled Documentation EA 23.316 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 public override Row CreateRow()
74 {
75 return new Row
76 {
77 id = SourceData.GetInt(0),
78 alias = SourceData.GetString(1),
79 name_JP = SourceData.GetString(2),
80 name = SourceData.GetString(3),
81 sort = SourceData.GetInt(4),
82 _tileType = SourceData.GetString(5),
83 _idRenderData = SourceData.GetString(6),
84 tiles = SourceData.GetIntArray(7),
85 anime = SourceData.GetIntArray(8),
86 colorMod = SourceData.GetInt(9),
87 value = SourceData.GetInt(10),
88 recipeKey = SourceData.GetStringArray(11),
89 factory = SourceData.GetStringArray(12),
90 components = SourceData.GetStringArray(13),
91 defMat = SourceData.GetString(14),
92 category = SourceData.GetString(15),
93 tag = SourceData.GetStringArray(16),
94 detail_JP = SourceData.GetString(17),
95 detail = SourceData.GetString(18)
96 };
97 }
98
99 public override Row CreateRowByMapping(IReadOnlyDictionary<string, int> mapping)
100 {
101 return new Row
102 {
103 id = SourceData.GetInt(mapping["id"]),
104 alias = SourceData.GetString(mapping["alias"]),
105 name_JP = SourceData.GetString(mapping["name_JP"]),
106 name = SourceData.GetString(mapping["name"]),
107 sort = SourceData.GetInt(mapping["sort"]),
108 _tileType = SourceData.GetString(mapping["_tileType"]),
109 _idRenderData = SourceData.GetString(mapping["_idRenderData"]),
110 tiles = SourceData.GetIntArray(mapping["tiles"]),
111 anime = SourceData.GetIntArray(mapping["anime"]),
112 colorMod = SourceData.GetInt(mapping["colorMod"]),
113 value = SourceData.GetInt(mapping["value"]),
114 recipeKey = SourceData.GetStringArray(mapping["recipeKey"]),
115 factory = SourceData.GetStringArray(mapping["factory"]),
116 components = SourceData.GetStringArray(mapping["components"]),
117 defMat = SourceData.GetString(mapping["defMat"]),
118 category = SourceData.GetString(mapping["category"]),
119 tag = SourceData.GetStringArray(mapping["tag"]),
120 detail_JP = SourceData.GetString(mapping["detail_JP"]),
121 detail = SourceData.GetString(mapping["detail"])
122 };
123 }
124
125 public override void SetRow(Row r)
126 {
127 map[r.id] = r;
128 }
129
130 public override IReadOnlyDictionary<string, int> GetRowMapping()
131 {
132 return RowMapping;
133 }
134
135 public override IReadOnlyDictionary<string, string> GetTypeMapping()
136 {
137 return TypeMapping;
138 }
139
140 public override void OnAfterImportData()
141 {
142 int num = 0;
143 foreach (Row row in rows)
144 {
145 if (row.sort != 0)
146 {
147 num = row.sort;
148 }
149 row.sort = num;
150 num++;
151 }
152 rows.Sort((Row a, Row b) => a.id - b.id);
153 }
154
155 public override void OnInit()
156 {
157 FallbackRenderData = ResourceCache.Load<RenderData>("Scene/Render/Data/liquid");
158 Cell.effectList = rows;
159 foreach (Row row in rows)
160 {
161 row.Init();
162 }
163 }
164}
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
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:12
int id
Definition: TileRow.cs:8
void Init()
Definition: TileRow.cs:16