Elin Decompiled Documentation EA 23.286 Nightly Patch 1
Loading...
Searching...
No Matches
SourceData< T, T2 > Class Template Reference
Inheritance diagram for SourceData< T, T2 >:

Classes

class  BaseRow
 
class  FieldInfo
 
class  FieldMap
 

Public Types

enum  AutoID { None , Auto }
 

Public Member Functions

override void Init ()
 
virtual void OnInit ()
 
virtual void SetRow (T row)
 
override void Reset ()
 
override bool ImportData (ISheet sheet, string bookname, bool overwrite=false)
 
virtual void OnAfterImportData ()
 
virtual T CreateRow ()
 
override int ImportRows (IEnumerable< BaseRow > sourceRows)
 
virtual void RemoveDuplicateRows ()
 
override void BackupSource ()
 
override void RollbackSource ()
 
List< string > GetListString ()
 
SourceData< T, T2 > BuildEditorList ()
 
List< FieldInfoGetFields ()
 
virtual T GetRow (string id)
 
override void ExportTexts (string path, bool update=false)
 
override void ValidateLang ()
 
override void ImportTexts (string _nameSheet=null)
 
void BuildFlags (string rawText, Dictionary< string, bool > map)
 
virtual void Reset ()
 
virtual void InsertData (IRow row)
 
virtual void Init ()
 
virtual string[] GetList (string id)
 
virtual bool ImportData (ISheet sheet, string bookname, bool overwrite=false)
 
virtual int ImportRows (IEnumerable< BaseRow > sourceRows)
 
virtual void BackupSource ()
 
virtual void RollbackSource ()
 
virtual void BackupPref ()
 
virtual void RestorePref ()
 
virtual void ValidatePref ()
 
virtual void ExportTexts (string path, bool update=false)
 
virtual void ImportTexts (string _nameSheet=null)
 
virtual void ValidateLang ()
 

Static Public Member Functions

static ICell GetCell (int x, int y)
 
static bool IsNull (ICell cell)
 
static int GetInt (int id)
 
static bool GetBool (int id)
 
static double GetDouble (int id)
 
static float GetFloat (int id)
 
static float[] GetFloatArray (int id)
 
static int[] GetIntArray (int id)
 
static string[] GetStringArray (int id)
 
static string GetString (int id)
 
static string GetStr (int id, bool useDefault=false)
 

Public Attributes

List< T > rows = new List<T>()
 
Dictionary< T2, T > map = new Dictionary<T2, T>()
 
Dictionary< string, T > alias = new Dictionary<string, T>()
 
bool initialized
 
List< string > editorListString = new List<string>()
 
AutoID autoID
 
bool isNew = true
 
string nameSheet
 
string nameBook
 

Static Public Attributes

static ISheet currentSheet
 
static string LangSuffix
 
static string dataPath
 

Properties

virtual bool AllowHotInitialization [get]
 
virtual string[] ImportFields [get]
 
virtual string sheetName [get]
 
virtual string sourcePath [get]
 
static IRow row [get, set]
 
static IRow rowDefault [get, set]
 

Private Attributes

List< T > _backupRows = new List<T>()
 

Detailed Description

Type Constraints
T :SourceData.BaseRow 

Definition at line 10 of file SourceData.cs.

Member Enumeration Documentation

◆ AutoID

Enumerator
None 
Auto 

Definition at line 578 of file SourceData.cs.

579 {
580 None,
581 Auto
582 }

Member Function Documentation

◆ BackupPref()

virtual void SourceData< T, T2 >.BackupPref ( )
inlinevirtual

Definition at line 852 of file SourceData.cs.

853 {
854 }

◆ BackupSource() [1/2]

override void SourceData< T, T2 >.BackupSource ( )
inline

Definition at line 229 of file SourceData.cs.

230 {
232 }
List< T > _backupRows
Definition: SourceData.cs:71
List< T > rows
Definition: SourceData.cs:61

References SourceData< T, T2 >._backupRows, and SourceData< T, T2 >.rows.

◆ BackupSource() [2/2]

virtual void SourceData< T, T2 >.BackupSource ( )
inlinevirtual

Definition at line 844 of file SourceData.cs.

845 {
846 }

◆ BuildEditorList()

SourceData< T, T2 > SourceData< T, T2 >.BuildEditorList ( )
inline

Definition at line 244 of file SourceData.cs.

245 {
246 if (editorListString.Count == 0)
247 {
248 foreach (T row in rows)
249 {
250 editorListString.Add(row.GetEditorListName());
251 }
252 }
253 return this;
254 }
static IRow row
Definition: SourceData.cs:782
List< string > editorListString
Definition: SourceData.cs:74

References SourceData< T, T2 >.editorListString, SourceData< T, T2 >.row, and SourceData< T, T2 >.rows.

Referenced by SourceData< T, T2 >.GetListString().

◆ BuildFlags()

void SourceData< T, T2 >.BuildFlags ( string  rawText,
Dictionary< string, bool >  map 
)
inline

Definition at line 805 of file SourceData.cs.

806 {
807 if (!string.IsNullOrEmpty(rawText))
808 {
809 string[] array = rawText.Split(',');
810 foreach (string key in array)
811 {
812 map.Add(key, value: true);
813 }
814 }
815 }
Dictionary< T2, T > map
Definition: SourceData.cs:63

References SourceData< T, T2 >.map.

◆ CreateRow()

virtual T SourceData< T, T2 >.CreateRow ( )
inlinevirtual

Definition at line 171 of file SourceData.cs.

172 {
173 return null;
174 }

Referenced by SourceData< T, T2 >.ImportData().

◆ ExportTexts() [1/2]

override void SourceData< T, T2 >.ExportTexts ( string  path,
bool  update = false 
)
inline

Definition at line 321 of file SourceData.cs.

322 {
323 Debug.Log("Exporting:" + nameSheet + " path:" + path);
324 string text = nameSheet + ".xlsx";
325 XSSFWorkbook xSSFWorkbook = new XSSFWorkbook();
326 List<FieldInfo> fields = GetFields();
327 currentSheet = xSSFWorkbook.CreateSheet(nameSheet);
328 int num = 0;
329 int y = 0;
330 foreach (FieldInfo item in fields)
331 {
332 GetCell(num, y).SetCellValue(item.name);
333 currentSheet.SetColumnWidth(num, item.width);
334 ICellStyle cellStyle = xSSFWorkbook.CreateCellStyle();
335 cellStyle.FillForegroundColor = 44;
336 cellStyle.FillPattern = FillPattern.SolidForeground;
337 if (!item.isStatic && item.id != "version")
338 {
339 GetCell(num, y).CellStyle = cellStyle;
340 }
341 num++;
342 }
343 string cellValue = BaseCore.Instance.version.GetText() ?? "";
344 y = 2;
345 foreach (T row4 in rows)
346 {
347 foreach (FieldInfo item2 in fields)
348 {
349 if (item2.isStatic)
350 {
351 GetCell(item2.column, y).SetCellValue(item2.GetValue(row4));
352 }
353 else if (item2.id == "version")
354 {
355 GetCell(item2.column, y).SetCellValue(cellValue);
356 }
357 }
358 y++;
359 }
360 currentSheet.CreateFreezePane(0, 2);
361 currentSheet.SetAutoFilter(new CellRangeAddress(1, 1, 0, fields.Count - 1));
362 if (update)
363 {
364 Dictionary<string, int> dictionary = new Dictionary<string, int>();
365 if (!File.Exists(path + "_temp/" + text))
366 {
367 return;
368 }
369 XSSFWorkbook xSSFWorkbook2;
370 using (FileStream @is = File.Open(path + "_temp/" + text, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
371 {
372 xSSFWorkbook2 = new XSSFWorkbook((Stream)@is);
373 }
374 ISheet sheetAt = xSSFWorkbook2.GetSheetAt(0);
375 IRow row = sheetAt.GetRow(0);
376 int num2 = 0;
377 foreach (FieldInfo item3 in fields)
378 {
379 if (item3.isStatic)
380 {
381 continue;
382 }
383 int num3 = -1;
384 for (int i = 0; i < row.LastCellNum; i++)
385 {
386 string stringCellValue = row.GetCell(i).StringCellValue;
387 if (stringCellValue.IsEmpty())
388 {
389 break;
390 }
391 if (stringCellValue == item3.id)
392 {
393 num3 = i;
394 break;
395 }
396 }
397 if (num3 == -1)
398 {
399 continue;
400 }
401 dictionary.Add(item3.id, 0);
402 for (y = 2; y <= sheetAt.LastRowNum; y++)
403 {
404 IRow row2 = sheetAt.GetRow(y);
405 if (row2 == null)
406 {
407 if (y > 5)
408 {
409 break;
410 }
411 continue;
412 }
413 ICell cell = row2.GetCell(0);
414 if (cell == null)
415 {
416 continue;
417 }
418 string text2 = ((cell.CellType == CellType.Numeric) ? cell.NumericCellValue.ToString() : cell.StringCellValue);
419 if (text2.IsEmpty())
420 {
421 continue;
422 }
423 for (int j = 0; j <= currentSheet.LastRowNum; j++)
424 {
425 IRow row3 = currentSheet.GetRow(j);
426 if (row3 == null)
427 {
428 if (j > 5)
429 {
430 break;
431 }
432 continue;
433 }
434 ICell cell2 = row3.GetCell(0);
435 if (cell2 == null || cell2.StringCellValue != text2)
436 {
437 continue;
438 }
439 string text3 = row2.GetCell(num3)?.StringCellValue ?? "";
440 if (text3.IsEmpty())
441 {
442 continue;
443 }
444 (row3.GetCell(item3.column) ?? row3.CreateCell(item3.column)).SetCellValue(text3);
445 if (item3.id != "version")
446 {
447 ICell cell3 = row3.GetCell(item3.column + 2);
448 ICell cell4 = row2.GetCell(num3 + 2);
449 if (cell3 == null)
450 {
451 continue;
452 }
453 if (cell4 == null || cell3.StringCellValue != cell4.StringCellValue)
454 {
455 row3.GetCell(1).SetCellValue(cellValue);
456 }
457 num2++;
458 }
459 dictionary[item3.id]++;
460 }
461 }
462 }
463 Log.system = Log.system + ((num2 == 0) ? "(No Changes) " : "(Updated) ") + path + "/" + text + Environment.NewLine;
464 if (num2 != 0)
465 {
466 foreach (KeyValuePair<string, int> item4 in dictionary)
467 {
468 Log.system = Log.system + item4.Key + ":" + item4.Value + " ";
469 }
470 Log.system += Environment.NewLine;
471 }
472 Log.system += Environment.NewLine;
473 }
474 if (!Directory.Exists(path))
475 {
476 Directory.CreateDirectory(path);
477 }
478 using FileStream stream = new FileStream(path + "/" + text, FileMode.Create, FileAccess.Write, FileShare.ReadWrite);
479 xSSFWorkbook.Write(stream);
480 }
Version version
Definition: BaseCore.cs:17
static BaseCore Instance
Definition: BaseCore.cs:11
static ICell GetCell(int x, int y)
Definition: SourceData.cs:570
static ISheet currentSheet
Definition: SourceData.cs:76
string nameSheet
Definition: SourceData.cs:773
List< FieldInfo > GetFields()
Definition: SourceData.cs:256
string GetText()
Definition: Version.cs:16

References SourceData< T, T2 >.FieldInfo.column, SourceData< T, T2 >.currentSheet, Debug, SourceData< T, T2 >.GetCell(), SourceData< T, T2 >.GetFields(), Version.GetText(), SourceData< T, T2 >.FieldInfo.GetValue(), SourceData< T, T2 >.FieldInfo.id, BaseCore.Instance, SourceData< T, T2 >.FieldInfo.isStatic, item, SourceData< T, T2 >.nameSheet, SourceData< T, T2 >.row, SourceData< T, T2 >.rows, and BaseCore.version.

◆ ExportTexts() [2/2]

virtual void SourceData< T, T2 >.ExportTexts ( string  path,
bool  update = false 
)
inlinevirtual

Definition at line 864 of file SourceData.cs.

865 {
866 }

◆ GetBool()

static bool SourceData< T, T2 >.GetBool ( int  id)
inlinestatic

Definition at line 890 of file SourceData.cs.

891 {
892 return ExcelParser.GetBool(id);
893 }
static bool GetBool(int id)
Definition: ExcelParser.cs:43

References ExcelParser.GetBool().

Referenced by SourceBacker.CreateRow(), SourceBlock.CreateRow(), SourceCategory.CreateRow(), and SourceStat.CreateRow().

◆ GetCell()

static ICell SourceData< T, T2 >.GetCell ( int  x,
int  y 
)
inlinestatic

Definition at line 570 of file SourceData.cs.

571 {
572 IRow row = currentSheet.GetRow(y) ?? currentSheet.CreateRow(y);
573 return row.GetCell(x) ?? row.CreateCell(x);
574 }

References SourceData< T, T2 >.currentSheet, and SourceData< T, T2 >.row.

Referenced by SourceData< T, T2 >.ExportTexts().

◆ GetDouble()

static double SourceData< T, T2 >.GetDouble ( int  id)
inlinestatic

Definition at line 895 of file SourceData.cs.

896 {
897 return ExcelParser.GetDouble(id);
898 }
static double GetDouble(int id)
Definition: ExcelParser.cs:62

References ExcelParser.GetDouble().

◆ GetFields()

List< FieldInfo > SourceData< T, T2 >.GetFields ( )
inline

Definition at line 256 of file SourceData.cs.

257 {
258 List<FieldInfo> list = new List<FieldInfo>();
259 int x = 0;
260 AddField("id", 4096);
261 AddField("version", 4096);
262 AddField("filter", 4096);
263 AddField("name", 4096);
264 AddField("text", 4096);
265 AddField("detail", 4096);
266 AddField("description", 4096);
267 string[] importFields = ImportFields;
268 foreach (string text in importFields)
269 {
270 if (!text.IsEmpty())
271 {
272 AddField(text, 4096);
273 }
274 }
275 return list;
276 void AddField(string id, int width)
277 {
278 bool flag = id == "id" || id == "filter";
279 bool flag2 = id == "version";
280 if (!(typeof(T).GetField(id) == null) || flag2)
281 {
282 list.Add(new FieldInfo
283 {
284 id = id,
285 name = id,
286 isStatic = flag,
287 width = width,
288 column = x
289 });
290 x++;
291 if (!(flag || flag2))
292 {
293 list.Add(new FieldInfo
294 {
295 id = id,
296 name = id + "_EN",
297 isStatic = true,
298 width = width,
299 column = x
300 });
301 x++;
302 list.Add(new FieldInfo
303 {
304 id = id + "_JP",
305 name = id + "_JP",
306 isStatic = true,
307 width = width,
308 column = x
309 });
310 x++;
311 }
312 }
313 }
314 }
virtual string[] ImportFields
Definition: SourceData.cs:80

References SourceData< T, T2 >.ImportFields.

Referenced by SourceData< T, T2 >.ExportTexts(), and SourceData< T, T2 >.ImportTexts().

◆ GetFloat()

static float SourceData< T, T2 >.GetFloat ( int  id)
inlinestatic

Definition at line 900 of file SourceData.cs.

901 {
902 return ExcelParser.GetFloat(id);
903 }
static float GetFloat(int id)
Definition: ExcelParser.cs:76

References ExcelParser.GetFloat().

Referenced by SourceCheck.CreateRow(), SourceElement.CreateRow(), and SourceFloor.CreateRow().

◆ GetFloatArray()

static float[] SourceData< T, T2 >.GetFloatArray ( int  id)
inlinestatic

Definition at line 905 of file SourceData.cs.

906 {
907 return ExcelParser.GetFloatArray(id);
908 }
static float[] GetFloatArray(int id)
Definition: ExcelParser.cs:90

References ExcelParser.GetFloatArray().

◆ GetInt()

◆ GetIntArray()

◆ GetList()

virtual string[] SourceData< T, T2 >.GetList ( string  id)
inlinevirtual

Definition at line 829 of file SourceData.cs.

830 {
831 return null;
832 }

Referenced by Lang.GetList().

◆ GetListString()

List< string > SourceData< T, T2 >.GetListString ( )
inline

Definition at line 239 of file SourceData.cs.

240 {
241 return BuildEditorList().editorListString;
242 }
SourceData< T, T2 > BuildEditorList()
Definition: SourceData.cs:244

References SourceData< T, T2 >.BuildEditorList().

◆ GetRow()

virtual T SourceData< T, T2 >.GetRow ( string  id)
inlinevirtual

Reimplemented in SourceDataInt< T >, SourceDataString< T >, and SourceLang< T >.

Definition at line 316 of file SourceData.cs.

317 {
318 return null;
319 }

Referenced by SourceData< T, T2 >.ImportTexts().

◆ GetStr()

static string SourceData< T, T2 >.GetStr ( int  id,
bool  useDefault = false 
)
inlinestatic

◆ GetString()

◆ GetStringArray()

◆ ImportData() [1/2]

override bool SourceData< T, T2 >.ImportData ( ISheet  sheet,
string  bookname,
bool  overwrite = false 
)
inline

Definition at line 136 of file SourceData.cs.

137 {
138 if (!overwrite)
139 {
140 rows = new List<T>();
141 }
142 isNew = true;
143 nameSheet = sheet.SheetName;
144 nameBook = bookname;
145 SourceData.rowDefault = sheet.GetRow(2);
146 int num = 0;
147 for (int i = 3; i <= sheet.LastRowNum; i++)
148 {
149 SourceData.row = sheet.GetRow(i);
150 if (SourceData.row == null || SourceData.row.GetCell(0) == null || SourceData.row.GetCell(0).ToString().IsEmpty())
151 {
152 break;
153 }
154 T val = CreateRow();
155 val.OnImportData(this);
156 rows.Add(val);
157 num++;
158 }
159 string text = sheet.SheetName + "/" + sheet.LastRowNum + "/" + num;
160 Debug.Log(text);
161 ERROR.msg = text;
163 initialized = false;
164 return true;
165 }
virtual T CreateRow()
Definition: SourceData.cs:171
string nameBook
Definition: SourceData.cs:775
virtual void OnAfterImportData()
Definition: SourceData.cs:167
bool initialized
Definition: SourceData.cs:68
bool isNew
Definition: SourceData.cs:771

References SourceData< T, T2 >.CreateRow(), Debug, SourceData< T, T2 >.initialized, SourceData< T, T2 >.isNew, SourceData< T, T2 >.nameBook, SourceData< T, T2 >.nameSheet, SourceData< T, T2 >.OnAfterImportData(), SourceData< T, T2 >.row, and SourceData< T, T2 >.rows.

Referenced by ModUtil.ImportExcel(), and SourceImporter.LoadBySheetName().

◆ ImportData() [2/2]

virtual bool SourceData< T, T2 >.ImportData ( ISheet  sheet,
string  bookname,
bool  overwrite = false 
)
inlinevirtual

Definition at line 834 of file SourceData.cs.

835 {
836 return false;
837 }

◆ ImportRows() [1/2]

override int SourceData< T, T2 >.ImportRows ( IEnumerable< BaseRow sourceRows)
inline

Definition at line 176 of file SourceData.cs.

177 {
178 int num = 0;
179 foreach (BaseRow sourceRow in sourceRows)
180 {
181 if (sourceRow is T val)
182 {
183 val.OnImportData(this);
184 rows.Add(val);
185 num++;
186 }
187 }
189 initialized = false;
190 return num;
191 }

References SourceData< T, T2 >.initialized, SourceData< T, T2 >.OnAfterImportData(), and SourceData< T, T2 >.rows.

Referenced by SourceImporter.ImportFilesCached().

◆ ImportRows() [2/2]

virtual int SourceData< T, T2 >.ImportRows ( IEnumerable< BaseRow sourceRows)
inlinevirtual

Definition at line 839 of file SourceData.cs.

840 {
841 return 0;
842 }

◆ ImportTexts() [1/2]

override void SourceData< T, T2 >.ImportTexts ( string  _nameSheet = null)
inline

Definition at line 490 of file SourceData.cs.

491 {
492 string langImportMod = CorePath.CorePackage.LangImportMod;
493 string text = _nameSheet.IsEmpty(nameSheet) + ".xlsx";
494 if (!File.Exists(langImportMod + text))
495 {
496 return;
497 }
498 XSSFWorkbook xSSFWorkbook;
499 using (FileStream @is = File.Open(langImportMod + text, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
500 {
501 xSSFWorkbook = new XSSFWorkbook((Stream)@is);
502 }
503 ISheet sheetAt = xSSFWorkbook.GetSheetAt(0);
504 List<FieldInfo> fields = GetFields();
505 IRow row = sheetAt.GetRow(0);
506 List<FieldMap> list = new List<FieldMap>();
507 foreach (FieldInfo item in fields)
508 {
509 if (item.isStatic)
510 {
511 continue;
512 }
513 for (int i = 0; i < row.LastCellNum; i++)
514 {
515 string stringCellValue = row.GetCell(i).StringCellValue;
516 if (stringCellValue.IsEmpty())
517 {
518 break;
519 }
520 if (stringCellValue == item.id)
521 {
522 list.Add(new FieldMap
523 {
524 field = item,
525 column = i
526 });
527 break;
528 }
529 }
530 }
531 for (int j = 2; j <= sheetAt.LastRowNum; j++)
532 {
533 IRow row2 = sheetAt.GetRow(j);
534 T val = GetRow(row2.GetCell(0).StringCellValue);
535 if (val == null)
536 {
537 Debug.Log(sheetAt.SheetName + ": id to import no longer exist: " + row2.GetCell(0).StringCellValue);
538 break;
539 }
540 foreach (FieldMap item2 in list)
541 {
542 FieldInfo field = item2.field;
543 System.Reflection.FieldInfo field2 = val.GetType().GetField(field.id + "_L");
544 if (field2 == null)
545 {
546 continue;
547 }
548 if (typeof(string[]).IsAssignableFrom(field2.FieldType))
549 {
550 ICell cell = row2.GetCell(item2.column);
551 string[] array = ((cell == null) ? new string[0] : cell.StringCellValue.Split(','));
552 string[] field3 = val.GetField<string[]>(field.id);
553 if (field3 != null)
554 {
555 field2.SetValue(val, (array.Length >= field3.Length) ? array : field3);
556 }
557 }
558 else
559 {
560 ICell cell2 = row2.GetCell(item2.column);
561 if (cell2 != null)
562 {
563 field2.SetValue(val, cell2.StringCellValue.IsEmpty(val.GetField<string>(field.id)));
564 }
565 }
566 }
567 }
568 }
static string LangImportMod
Definition: CorePath.cs:89
virtual T GetRow(string id)
Definition: SourceData.cs:316

References SourceData< T, T2 >.FieldMap.column, Debug, SourceData< T, T2 >.FieldMap.field, SourceData< T, T2 >.GetFields(), SourceData< T, T2 >.GetRow(), SourceData< T, T2 >.FieldInfo.id, item, CorePath.CorePackage.LangImportMod, SourceData< T, T2 >.nameSheet, and SourceData< T, T2 >.row.

◆ ImportTexts() [2/2]

virtual void SourceData< T, T2 >.ImportTexts ( string  _nameSheet = null)
inlinevirtual

Definition at line 868 of file SourceData.cs.

869 {
870 }

◆ Init() [1/2]

override void SourceData< T, T2 >.Init ( )
inline

Definition at line 82 of file SourceData.cs.

83 {
84 Debug.Log("Initializing:" + base.name);
85 if (initialized)
86 {
87 Debug.Log("#init Skipping sourceData.Init:" + base.name);
88 return;
89 }
90 initialized = true;
91 editorListString.Clear();
93 int num = 0;
94 foreach (T row in rows)
95 {
96 SetRow(row);
97 if (row.UseAlias)
98 {
99 alias[row.GetAlias] = row;
100 }
101 row._index = num;
102 num++;
103 }
104 OnInit();
105 }
virtual void SetRow(T row)
Definition: SourceData.cs:111
virtual void OnInit()
Definition: SourceData.cs:107
virtual void RemoveDuplicateRows()
Definition: SourceData.cs:193
Dictionary< string, T > alias
Definition: SourceData.cs:65

References SourceData< T, T2 >.alias, Debug, SourceData< T, T2 >.editorListString, SourceData< T, T2 >.initialized, SourceData< T, T2 >.OnInit(), SourceData< T, T2 >.RemoveDuplicateRows(), SourceData< T, T2 >.row, SourceData< T, T2 >.rows, and SourceData< T, T2 >.SetRow().

Referenced by SourceImporter.HotInit(), and SourceData< T, T2 >.Reset().

◆ Init() [2/2]

virtual void SourceData< T, T2 >.Init ( )
inlinevirtual

Definition at line 825 of file SourceData.cs.

826 {
827 }

◆ InsertData()

virtual void SourceData< T, T2 >.InsertData ( IRow  row)
inlinevirtual

Definition at line 821 of file SourceData.cs.

822 {
823 }

◆ IsNull()

static bool SourceData< T, T2 >.IsNull ( ICell  cell)
inlinestatic

Definition at line 876 of file SourceData.cs.

877 {
878 if (cell != null && cell.CellType != CellType.Blank)
879 {
880 return cell.CellType == CellType.Unknown;
881 }
882 return true;
883 }

◆ OnAfterImportData()

virtual void SourceData< T, T2 >.OnAfterImportData ( )
inlinevirtual

Definition at line 167 of file SourceData.cs.

168 {
169 }

Referenced by SourceData< T, T2 >.ImportData(), and SourceData< T, T2 >.ImportRows().

◆ OnInit()

virtual void SourceData< T, T2 >.OnInit ( )
inlinevirtual

Definition at line 107 of file SourceData.cs.

108 {
109 }

Referenced by SourceData< T, T2 >.Init().

◆ RemoveDuplicateRows()

virtual void SourceData< T, T2 >.RemoveDuplicateRows ( )
inlinevirtual

Definition at line 193 of file SourceData.cs.

194 {
195 HashSet<T2> hashSet = new HashSet<T2>();
196 List<T> list = new List<T>(rows.Count);
197 string arg = GetType().Name;
198 System.Reflection.FieldInfo field = typeof(T).GetField("id");
199 bool flag = typeof(LangRow).IsAssignableFrom(typeof(T));
200 if (field == null)
201 {
202 return;
203 }
204 if (field.FieldType != typeof(T2))
205 {
206 Debug.LogError($"#source override: {arg} id field mismatch {field.FieldType} != {typeof(T2)}");
207 }
208 for (int num = rows.Count - 1; num >= 0; num--)
209 {
210 T val = rows[num];
211 T2 val2 = (T2)field.GetValue(val);
212 if (hashSet.Add(val2))
213 {
214 list.Add(val);
215 }
216 else if (!flag)
217 {
218 Debug.Log($"#source override: {arg} {val2}");
219 }
220 }
221 if (rows.Count != list.Count)
222 {
223 Debug.Log($"#source override: {arg} total/{rows.Count} -> unique/{list.Count}");
224 list.Reverse();
225 rows = list;
226 }
227 }
$
Definition: ModManager.cs:85

References $, Debug, and SourceData< T, T2 >.rows.

Referenced by SourceData< T, T2 >.Init().

◆ Reset() [1/2]

override void SourceData< T, T2 >.Reset ( )
inline

Definition at line 115 of file SourceData.cs.

116 {
117 initialized = false;
118 if (!Application.isPlaying)
119 {
120 BaseCore.resetRuntime = true;
121 }
122 if (map != null)
123 {
124 map.Clear();
125 }
126 if (alias != null)
127 {
128 alias.Clear();
129 }
130 if (Application.isPlaying && AllowHotInitialization)
131 {
132 Init();
133 }
134 }
override void Init()
Definition: SourceData.cs:82
virtual bool AllowHotInitialization
Definition: SourceData.cs:78

References SourceData< T, T2 >.alias, SourceData< T, T2 >.AllowHotInitialization, SourceData< T, T2 >.Init(), SourceData< T, T2 >.initialized, and SourceData< T, T2 >.map.

Referenced by SourceImporter.HotInit(), and ModUtil.ImportExcel().

◆ Reset() [2/2]

virtual void SourceData< T, T2 >.Reset ( )
inlinevirtual

Definition at line 817 of file SourceData.cs.

818 {
819 }

◆ RestorePref()

virtual void SourceData< T, T2 >.RestorePref ( )
inlinevirtual

Definition at line 856 of file SourceData.cs.

857 {
858 }

◆ RollbackSource() [1/2]

override void SourceData< T, T2 >.RollbackSource ( )
inline

Definition at line 234 of file SourceData.cs.

235 {
237 }

References SourceData< T, T2 >._backupRows, and SourceData< T, T2 >.rows.

◆ RollbackSource() [2/2]

virtual void SourceData< T, T2 >.RollbackSource ( )
inlinevirtual

Definition at line 848 of file SourceData.cs.

849 {
850 }

◆ SetRow()

virtual void SourceData< T, T2 >.SetRow ( row)
inlinevirtual

Definition at line 111 of file SourceData.cs.

112 {
113 }

Referenced by SourceData< T, T2 >.Init().

◆ ValidateLang() [1/2]

override void SourceData< T, T2 >.ValidateLang ( )
inline

Definition at line 482 of file SourceData.cs.

483 {
484 string langImportMod = CorePath.CorePackage.LangImportMod;
485 string text = nameSheet + ".xlsx";
486 Log.system = Log.system + langImportMod + text + Environment.NewLine;
487 Log.system += Environment.NewLine;
488 }

References CorePath.CorePackage.LangImportMod, and SourceData< T, T2 >.nameSheet.

◆ ValidateLang() [2/2]

virtual void SourceData< T, T2 >.ValidateLang ( )
inlinevirtual

Definition at line 872 of file SourceData.cs.

873 {
874 }

◆ ValidatePref()

virtual void SourceData< T, T2 >.ValidatePref ( )
inlinevirtual

Definition at line 860 of file SourceData.cs.

861 {
862 }

Member Data Documentation

◆ _backupRows

List<T> SourceData< T, T2 >._backupRows = new List<T>()
private

◆ alias

Dictionary<string, T> SourceData< T, T2 >.alias = new Dictionary<string, T>()

Definition at line 65 of file SourceData.cs.

Referenced by SourceData< T, T2 >.Init(), and SourceData< T, T2 >.Reset().

◆ autoID

AutoID SourceData< T, T2 >.autoID

Definition at line 769 of file SourceData.cs.

◆ currentSheet

ISheet SourceData< T, T2 >.currentSheet
static

Definition at line 76 of file SourceData.cs.

Referenced by SourceData< T, T2 >.ExportTexts(), and SourceData< T, T2 >.GetCell().

◆ dataPath

string SourceData< T, T2 >.dataPath
static

Definition at line 767 of file SourceData.cs.

◆ editorListString

List<string> SourceData< T, T2 >.editorListString = new List<string>()

Definition at line 74 of file SourceData.cs.

Referenced by SourceData< T, T2 >.BuildEditorList(), and SourceData< T, T2 >.Init().

◆ initialized

◆ isNew

bool SourceData< T, T2 >.isNew = true

Definition at line 771 of file SourceData.cs.

Referenced by SourceData< T, T2 >.ImportData().

◆ LangSuffix

string SourceData< T, T2 >.LangSuffix
static

◆ map

Dictionary<T2, T> SourceData< T, T2 >.map = new Dictionary<T2, T>()

Definition at line 63 of file SourceData.cs.

Referenced by SourceData< T, T2 >.BuildFlags(), and SourceData< T, T2 >.Reset().

◆ nameBook

string SourceData< T, T2 >.nameBook

Definition at line 775 of file SourceData.cs.

Referenced by SourceData< T, T2 >.ImportData().

◆ nameSheet

◆ rows

Property Documentation

◆ AllowHotInitialization

virtual bool SourceData< T, T2 >.AllowHotInitialization
get

Definition at line 78 of file SourceData.cs.

Referenced by SourceData< T, T2 >.Reset().

◆ ImportFields

virtual string [] SourceData< T, T2 >.ImportFields
get

Definition at line 80 of file SourceData.cs.

Referenced by SourceData< T, T2 >.GetFields().

◆ row

IRow SourceData< T, T2 >.row
staticgetset

Definition at line 781 of file SourceData.cs.

782 {
783 get
784 {
785 return ExcelParser.row;
786 }
787 set
788 {
789 ExcelParser.row = value;
790 }
791 }
static IRow row
Definition: ExcelParser.cs:10

Referenced by SourceData< T, T2 >.BuildEditorList(), SourceData< T, T2 >.ExportTexts(), SourceData< T, T2 >.GetCell(), SourceData< T, T2 >.ImportData(), SourceData< T, T2 >.ImportTexts(), and SourceData< T, T2 >.Init().

◆ rowDefault

IRow SourceData< T, T2 >.rowDefault
staticgetset

Definition at line 793 of file SourceData.cs.

794 {
795 get
796 {
797 return ExcelParser.rowDefault;
798 }
799 set
800 {
801 ExcelParser.rowDefault = value;
802 }
803 }
static IRow rowDefault
Definition: ExcelParser.cs:12

◆ sheetName

virtual string SourceData< T, T2 >.sheetName
get

Definition at line 777 of file SourceData.cs.

◆ sourcePath

virtual string SourceData< T, T2 >.sourcePath
get

Definition at line 779 of file SourceData.cs.


The documentation for this class was generated from the following file: