Elin Decompiled Documentation EA 23.300 Nightly
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 859 of file SourceData.cs.

860 {
861 }

◆ 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 851 of file SourceData.cs.

852 {
853 }

◆ 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:789
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 812 of file SourceData.cs.

813 {
814 if (!string.IsNullOrEmpty(rawText))
815 {
816 string[] array = rawText.Split(',');
817 foreach (string key in array)
818 {
819 map.Add(key, value: true);
820 }
821 }
822 }
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:780
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 871 of file SourceData.cs.

872 {
873 }

◆ GetBool()

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

Definition at line 897 of file SourceData.cs.

898 {
899 return ExcelParser.GetBool(id);
900 }
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 902 of file SourceData.cs.

903 {
904 return ExcelParser.GetDouble(id);
905 }
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 907 of file SourceData.cs.

908 {
909 return ExcelParser.GetFloat(id);
910 }
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 912 of file SourceData.cs.

913 {
914 return ExcelParser.GetFloatArray(id);
915 }
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 836 of file SourceData.cs.

837 {
838 return null;
839 }

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:782
virtual void OnAfterImportData()
Definition: SourceData.cs:167
bool initialized
Definition: SourceData.cs:68
bool isNew
Definition: SourceData.cs:778

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 841 of file SourceData.cs.

842 {
843 return false;
844 }

◆ 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 846 of file SourceData.cs.

847 {
848 return 0;
849 }

◆ 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:81
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 875 of file SourceData.cs.

876 {
877 }

◆ 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 832 of file SourceData.cs.

833 {
834 }

◆ InsertData()

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

Definition at line 828 of file SourceData.cs.

829 {
830 }

◆ IsNull()

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

Definition at line 883 of file SourceData.cs.

884 {
885 if (cell != null && cell.CellType != CellType.Blank)
886 {
887 return cell.CellType == CellType.Unknown;
888 }
889 return true;
890 }

◆ 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:87

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 824 of file SourceData.cs.

825 {
826 }

◆ RestorePref()

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

Definition at line 863 of file SourceData.cs.

864 {
865 }

◆ 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 855 of file SourceData.cs.

856 {
857 }

◆ 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 879 of file SourceData.cs.

880 {
881 }

◆ ValidatePref()

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

Definition at line 867 of file SourceData.cs.

868 {
869 }

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 776 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 774 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 778 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 782 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 788 of file SourceData.cs.

789 {
790 get
791 {
792 return ExcelParser.row;
793 }
794 set
795 {
796 ExcelParser.row = value;
797 }
798 }
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 800 of file SourceData.cs.

801 {
802 get
803 {
804 return ExcelParser.rowDefault;
805 }
806 set
807 {
808 ExcelParser.rowDefault = value;
809 }
810 }
static IRow rowDefault
Definition: ExcelParser.cs:12

◆ sheetName

virtual string SourceData< T, T2 >.sheetName
get

Definition at line 784 of file SourceData.cs.

◆ sourcePath

virtual string SourceData< T, T2 >.sourcePath
get

Definition at line 786 of file SourceData.cs.


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