97 {
100 {
101 dictionary[row2.id] = row2;
102 }
104 foreach (Row row3 in rows)
105 {
108 string key;
109 foreach (KeyValuePair<string, System.Reflection.FieldInfo>
item in rowFields)
110 {
111 item.Deconstruct(out key, out var value);
112 string text = key;
113 System.Reflection.FieldInfo fieldInfo = value;
114 if (!(text == "parse"))
115 {
116 fieldInfo.SetValue(row, fieldInfo.GetValue(obj));
117 }
118 }
119 row.id = row3.id;
120 row._origin = row3._origin;
121 if (row3.LV != 0)
122 {
123 row.LV = row3.LV;
124 }
125 if (row3.chance != -1)
126 {
127 row.chance = row3.chance;
128 }
129 if (row3.value != -1)
130 {
131 row.value = row3.value;
132 }
133 else
134 {
136 }
137 if (row3.weight != -1)
138 {
139 row.weight = row3.weight;
140 }
141 if (!row3.tiles.IsEmpty())
142 {
143 row.tiles = row3.tiles;
144 }
145 if (!row3.skins.IsEmpty())
146 {
147 row.skins = row3.skins;
148 }
149 if (!row3.name.IsEmpty())
150 {
151 row.name = row3.name;
152 }
153 if (!row3.name_JP.IsEmpty())
154 {
155 row.name_JP = row3.name_JP;
156 }
157 if (!row3.detail.IsEmpty())
158 {
159 row.detail = row3.detail;
160 }
161 if (!row3.detail_JP.IsEmpty())
162 {
163 row.detail_JP = row3.detail_JP;
164 }
165 if (!row3.unit.IsEmpty())
166 {
167 row.unit = row3.unit;
168 }
169 if (!row3.unit_JP.IsEmpty())
170 {
171 row.unit_JP = row3.unit_JP;
172 }
173 if (!row3.vals.IsEmpty())
174 {
175 row.vals = row3.vals;
176 }
177 if (!row3.components.IsEmpty())
178 {
179 row.components = row3.components;
180 }
181 if (!row3.defMat.IsEmpty())
182 {
183 row.defMat = row3.defMat;
184 }
185 if (!row3.trait.IsEmpty())
186 {
187 row.trait = row3.trait;
188 }
189 if (!row3.category.IsEmpty())
190 {
191 row.category = row3.category;
192 }
193 if (!row3.factory.IsEmpty())
194 {
195 row.factory = row3.factory;
196 }
197 if (!row3.tag.IsEmpty())
198 {
199 row.tag = row3.tag;
200 }
201 row.recipeKey = row3.recipeKey;
202 if (!row3.parse.IsEmpty())
203 {
204 key = row3._origin;
205 switch (key)
206 {
207 case "lamp_ceil2":
208 case "window":
209 case "windowL":
210 row.idExtra = row3.parse[0];
211 break;
212 default:
213 {
214 string[] parse = row3.parse;
215 for (int i = 0; i < parse.Length; i++)
216 {
217 string[] array = parse[i].Split('/');
218 switch (array[0])
219 {
220 case "elec":
221 row.electricity = array[1].ToInt();
222 break;
223 case "render":
224 row._idRenderData = array[1];
225 break;
226 case "tiletype":
227 row._tileType = array[1];
228 break;
229 case "anime":
230 row.anime = ((array.Length <= 4) ? ((array.Length <= 3) ? new int[2]
231 {
232 array[1].ToInt(),
233 array[2].ToInt()
234 } : new int[3]
235 {
236 array[1].ToInt(),
237 array[2].ToInt(),
238 array[3].ToInt()
239 }) : new int[4]
240 {
241 array[1].ToInt(),
242 array[2].ToInt(),
243 array[3].ToInt(),
244 array[4].ToInt()
245 });
246 break;
247 case "skin":
248 {
249 string[] array2 = array[1].Split('|');
250 row.skins = new int[array2.Length];
251 for (int j = 0; j < array2.Length; j++)
252 {
253 row.
skins[j] = array2[j].ToInt();
254 }
255 break;
256 }
257 case "alt":
258 row.altTiles = new int[1] { array[1].ToInt() };
259 row.ignoreAltFix = true;
260 break;
261 case "naming":
262 row.naming = array[1];
263 break;
264 case "ex":
265 row.idActorEx = array[1];
266 break;
267 case "sound":
268 row.idSound = array[1];
269 break;
270 case "color":
271 row.colorMod = 100;
272 break;
273 case "no_color":
274 row.colorMod = 0;
275 break;
276 case "unique":
277 row.quality = 4;
278 break;
279 case "ele":
280 {
281 int[] second = new int[2]
282 {
284 array[2].ToInt()
285 };
286 row.elements = row.
elements.Concat(second).ToArray();
287 break;
288 }
289 }
290 }
291 break;
292 }
293 }
294 }
298 }
299 rows.Clear();
300 }
static SourceManager sources
Dictionary< string, FieldInfo > GetRowFields()
virtual void OnImportRow(Row _r, SourceThing.Row c)
override void OnImportData(SourceData data)