Elin Decompiled Documentation EA 23.317 Nightly
Loading...
Searching...
No Matches
SourceBacker.cs
Go to the documentation of this file.
1using System;
2using System.Collections.Generic;
3
4public class SourceBacker : SourceDataInt<SourceBacker.Row>
5{
6 [Serializable]
7 public class Row : BaseRow
8 {
9 public int id;
10
11 public bool valid;
12
13 public string lang;
14
15 public string name;
16
17 public string text;
18
19 public int type;
20
21 public int skin;
22
23 public int gender;
24
25 public string tree;
26
27 public string deity;
28
29 public string chara;
30
31 public string loot;
32
33 public int isStatic;
34
35 public bool done;
36
37 public string loc;
38
39 public string original;
40
41 [NonSerialized]
42 public string name_L;
43
44 [NonSerialized]
45 public string text_L;
46
47 public override bool UseAlias => false;
48
49 public override string GetAlias => "n";
50
51 public string Name => BackerContent.ConvertName((Lang.langCode == "CN") ? GetText() : name);
52
53 public string Text
54 {
55 get
56 {
57 if (!(Lang.langCode == "CN"))
58 {
59 return text;
60 }
61 return GetText("text");
62 }
63 }
64 }
65
66 public static readonly IReadOnlyDictionary<string, int> RowMapping = new Dictionary<string, int>
67 {
68 ["id"] = 0,
69 ["valid"] = 3,
70 ["lang"] = 7,
71 ["name"] = 8,
72 ["text"] = 9,
73 ["type"] = 10,
74 ["skin"] = 11,
75 ["gender"] = 12,
76 ["tree"] = 13,
77 ["deity"] = 14,
78 ["chara"] = 15,
79 ["loot"] = 16,
80 ["isStatic"] = 17,
81 ["done"] = 18,
82 ["loc"] = 19,
83 ["original"] = 20
84 };
85
86 public static readonly IReadOnlyDictionary<string, string> TypeMapping = new Dictionary<string, string>
87 {
88 ["id"] = "int",
89 ["valid"] = "bool",
90 ["lang"] = "string",
91 ["name"] = "string",
92 ["text"] = "string",
93 ["type"] = "int",
94 ["skin"] = "int",
95 ["gender"] = "int",
96 ["tree"] = "string",
97 ["deity"] = "string",
98 ["chara"] = "string",
99 ["loot"] = "string",
100 ["isStatic"] = "int",
101 ["done"] = "bool",
102 ["loc"] = "string",
103 ["original"] = "string"
104 };
105
106 [NonSerialized]
107 public List<Row> listRemain = new List<Row>();
108
109 [NonSerialized]
110 public List<Row> listLantern = new List<Row>();
111
112 [NonSerialized]
113 public List<Row> listTree = new List<Row>();
114
115 [NonSerialized]
116 public List<Row> listPet = new List<Row>();
117
118 [NonSerialized]
119 public List<Row> listSister = new List<Row>();
120
121 [NonSerialized]
122 public List<Row> listFollower = new List<Row>();
123
124 [NonSerialized]
125 public List<Row> listSnail = new List<Row>();
126
127 public override Row CreateRow()
128 {
129 return new Row
130 {
131 id = SourceData.GetInt(0),
132 valid = SourceData.GetBool(3),
133 lang = SourceData.GetString(7),
134 name = SourceData.GetString(8),
135 text = SourceData.GetString(9),
136 type = SourceData.GetInt(10),
137 skin = SourceData.GetInt(11),
138 gender = SourceData.GetInt(12),
139 tree = SourceData.GetString(13),
140 deity = SourceData.GetString(14),
141 chara = SourceData.GetString(15),
142 loot = SourceData.GetString(16),
143 isStatic = SourceData.GetInt(17),
144 done = SourceData.GetBool(18),
145 loc = SourceData.GetString(19),
146 original = SourceData.GetString(20)
147 };
148 }
149
150 public override Row CreateRowByMapping(IReadOnlyDictionary<string, int> mapping)
151 {
152 return new Row
153 {
154 id = SourceData.GetInt(mapping["id"]),
155 valid = SourceData.GetBool(mapping["valid"]),
156 lang = SourceData.GetString(mapping["lang"]),
157 name = SourceData.GetString(mapping["name"]),
158 text = SourceData.GetString(mapping["text"]),
159 type = SourceData.GetInt(mapping["type"]),
160 skin = SourceData.GetInt(mapping["skin"]),
161 gender = SourceData.GetInt(mapping["gender"]),
162 tree = SourceData.GetString(mapping["tree"]),
163 deity = SourceData.GetString(mapping["deity"]),
164 chara = SourceData.GetString(mapping["chara"]),
165 loot = SourceData.GetString(mapping["loot"]),
166 isStatic = SourceData.GetInt(mapping["isStatic"]),
167 done = SourceData.GetBool(mapping["done"]),
168 loc = SourceData.GetString(mapping["loc"]),
169 original = SourceData.GetString(mapping["original"])
170 };
171 }
172
173 public override void SetRow(Row r)
174 {
175 map[r.id] = r;
176 }
177
178 public override IReadOnlyDictionary<string, int> GetRowMapping()
179 {
180 return RowMapping;
181 }
182
183 public override IReadOnlyDictionary<string, string> GetTypeMapping()
184 {
185 return TypeMapping;
186 }
187
188 public override void OnInit()
189 {
190 foreach (Row row in rows)
191 {
192 if (row.isStatic == 0 && row.valid)
193 {
194 switch (row.type)
195 {
196 case 1:
197 listRemain.Add(row);
198 break;
199 case 2:
200 listLantern.Add(row);
201 break;
202 case 3:
203 listTree.Add(row);
204 break;
205 case 4:
206 listPet.Add(row);
207 break;
208 case 5:
209 listSister.Add(row);
210 break;
211 case 6:
212 listFollower.Add(row);
213 break;
214 case 7:
215 listSnail.Add(row);
216 break;
217 }
218 }
219 }
220 listRemain.Shuffle();
221 listLantern.Shuffle();
222 listTree.Shuffle();
223 listPet.Shuffle();
224 listSister.Shuffle();
225 listFollower.Shuffle();
226 listSnail.Shuffle();
227 }
228}
static string ConvertName(string s)
Definition: Lang.cs:7
static string langCode
Definition: Lang.cs:29
override bool UseAlias
Definition: SourceBacker.cs:47
override string GetAlias
Definition: SourceBacker.cs:49
static readonly IReadOnlyDictionary< string, string > TypeMapping
Definition: SourceBacker.cs:86
override void SetRow(Row r)
List< Row > listSister
override Row CreateRowByMapping(IReadOnlyDictionary< string, int > mapping)
override IReadOnlyDictionary< string, string > GetTypeMapping()
List< Row > listRemain
override IReadOnlyDictionary< string, int > GetRowMapping()
override Row CreateRow()
static readonly IReadOnlyDictionary< string, int > RowMapping
Definition: SourceBacker.cs:66
List< Row > listLantern
List< Row > listFollower
List< Row > listSnail
List< Row > listPet
override void OnInit()
List< Row > listTree
static string GetString(int id)
Definition: SourceData.cs:1016
static bool GetBool(int id)
Definition: SourceData.cs:986
static int GetInt(int id)
Definition: SourceData.cs:981