Elin Decompiled Documentation EA 23.286 Nightly Patch 1
Loading...
Searching...
No Matches
ModPackage Class Reference
Inheritance diagram for ModPackage:

Classes

struct  SheetIndex
 

Public Member Functions

IReadOnlyList< FileInfo > ParseTalkText (DirectoryInfo dir)
 
IReadOnlyList< FileInfo > ParseMap (DirectoryInfo dir, bool addToList=true)
 
IReadOnlyList< FileInfo > ParseMapPiece (DirectoryInfo dir, bool addToList=true)
 
IReadOnlyList< FileInfo > ParseTextureReplace (DirectoryInfo dir)
 
IReadOnlyList< FileInfo > ParseTexture (DirectoryInfo dir)
 
IReadOnlyList< FileInfo > ParsePortrait (DirectoryInfo dir)
 
void ParseLangMod (DirectoryInfo dir)
 
IReadOnlyList< FileInfo > ParseSound (DirectoryInfo dir)
 
SortedDictionary< string, string > ExportSourceLocalizations ()
 
void ImportSourceLocalizations (IReadOnlyDictionary< string, string > texts)
 
void ClearSourceLocalizations (string lang)
 
void AddOrUpdateLang (DirectoryInfo dir)
 
void UpdateDialogs (DirectoryInfo dir, string dirTemp)
 
void UpdateTalks (DirectoryInfo dir, string dirTemp)
 
void UpdateExcelBook (FileInfo f, string dirTemp, bool updateOnlyText)
 
int UpdateExcelSheet (ISheet destSheet, ISheet oldSheet, bool updateOnlytext)
 

Detailed Description

Definition at line 9 of file ModPackage.cs.

Member Function Documentation

◆ AddOrUpdateLang()

void ModPackage.AddOrUpdateLang ( DirectoryInfo  dir)
inline

Definition at line 237 of file ModPackage.cs.

238 {
239 Core core = EClass.core;
240 SourceManager sources = core.sources;
241 DirectoryInfo[] directories = dir.GetDirectories();
242 foreach (DirectoryInfo directoryInfo in directories)
243 {
244 if (!directoryInfo.Name.StartsWith("_") && !TryAddLang(directoryInfo, isNew: false))
245 {
246 Debug.Log("Generating Language Mod Contents:" + directoryInfo.FullName);
247 IO.CopyDir(CorePath.packageCore + "Lang/EN", directoryInfo.FullName);
248 Directory.CreateDirectory(directoryInfo.FullName + "/Dialog");
249 IO.CopyDir(CorePath.packageCore + "Lang/_Dialog", directoryInfo.FullName + "/Dialog");
250 sources.ExportSourceTexts(directoryInfo.FullName + "/Game");
251 IO.Copy(CorePath.packageCore + "Lang/lang.ini", directoryInfo.FullName + "/");
252 TryAddLang(directoryInfo, isNew: true);
253 }
254 }
255 bool TryAddLang(DirectoryInfo dirLang, bool isNew)
256 {
257 string name = dirLang.Name;
258 FileInfo[] files = dirLang.GetFiles();
259 foreach (FileInfo fileInfo in files)
260 {
261 if (fileInfo.Name == "lang.ini")
262 {
263 LangSetting langSetting = new LangSetting(fileInfo.FullName)
264 {
265 id = name,
266 dir = dirLang.FullName + "/"
267 };
268 if (isNew)
269 {
270 langSetting.SetVersion();
271 }
272 else if ((Application.isEditor || Lang.runUpdate) && !Lang.IsBuiltin(dirLang.Name) && langSetting.GetVersion() < core.version.GetInt())
273 {
274 sources.Init();
275 Log.system = "Updated Language Files:" + Environment.NewLine + Environment.NewLine;
276 Debug.Log("Updating Language:" + langSetting.name + "/" + langSetting.GetVersion() + "/" + core.version.GetInt());
277 string text = dirLang.FullName + "/Game";
278 Directory.Move(text, text + "_temp");
279 sources.ExportSourceTexts(text);
280 sources.UpdateSourceTexts(text);
281 IO.DeleteDirectory(text + "_temp");
282 text = dirLang.FullName + "/Dialog";
283 Directory.Move(text, text + "_temp");
284 IO.CopyDir(CorePath.packageCore + "Lang/_Dialog", text);
285 UpdateDialogs(new DirectoryInfo(text), text + "_temp");
286 IO.DeleteDirectory(text + "_temp");
287 text = dirLang.FullName + "/Data";
288 IO.CopyDir(text, text + "_temp");
289 IO.Copy(CorePath.packageCore + "Lang/EN/Data/god_talk.xlsx", text);
290 IO.Copy(CorePath.packageCore + "Lang/EN/Data/chara_talk.xlsx", text);
291 UpdateTalks(new DirectoryInfo(text), text + "_temp");
292 IO.DeleteDirectory(text + "_temp");
293 langSetting.SetVersion();
294 IO.SaveText(dirLang.FullName + "/update.txt", Log.system);
295 }
296 MOD.langs[name] = langSetting;
297 return true;
298 }
299 }
300 return false;
301 }
302 }
Version version
Definition: BaseCore.cs:17
static string packageCore
Definition: CorePath.cs:161
Definition: Core.cs:14
SourceManager sources
Definition: Core.cs:33
Definition: EClass.cs:6
static Core core
Definition: EClass.cs:7
Definition: IO.cs:11
static void DeleteDirectory(string path)
Definition: IO.cs:385
static void Copy(string fromPath, string toPath)
Definition: IO.cs:310
static void SaveText(string path, string text)
Definition: IO.cs:104
static void CopyDir(string sourceDirectory, string targetDirectory, Func< string, bool > funcExclude=null)
Definition: IO.cs:277
string name
Definition: LangSetting.cs:24
void SetVersion()
Definition: LangSetting.cs:114
int GetVersion()
Definition: LangSetting.cs:100
Definition: Lang.cs:7
static bool IsBuiltin(string id)
Definition: Lang.cs:65
static bool runUpdate
Definition: Lang.cs:25
Definition: Log.cs:4
static string system
Definition: Log.cs:5
Definition: MOD.cs:7
static Dictionary< string, LangSetting > langs
Definition: MOD.cs:8
void UpdateDialogs(DirectoryInfo dir, string dirTemp)
Definition: ModPackage.cs:304
void UpdateTalks(DirectoryInfo dir, string dirTemp)
Definition: ModPackage.cs:321
void UpdateSourceTexts(string path)
void ExportSourceTexts(string path)
int GetInt()
Definition: Version.cs:21

References EClass.core, Debug, LangSetting.GetVersion(), Lang.IsBuiltin(), MOD.langs, LangSetting.name, CorePath.packageCore, Lang.runUpdate, LangSetting.SetVersion(), Core.sources, Log.system, UpdateDialogs(), and UpdateTalks().

Referenced by ModManager.ParseExtra().

◆ ClearSourceLocalizations()

void ModPackage.ClearSourceLocalizations ( string  lang)
inline

Definition at line 226 of file ModPackage.cs.

227 {
228 Mapping.RebuildLangModMapping(lang);
229 for (FileInfo fileInfo = Mapping.RelocateFile("SourceLocalization.json"); fileInfo != null; fileInfo = Mapping.RelocateFile("SourceLocalization.json"))
230 {
231 fileInfo.Delete();
232 Debug.Log("#source localization deleted " + fileInfo.ShortPath());
233 }
234 Mapping.RebuildLangModMapping(Lang.langCode);
235 }
static string langCode
Definition: Lang.cs:29

References Debug, and Lang.langCode.

◆ ExportSourceLocalizations()

SortedDictionary< string, string > ModPackage.ExportSourceLocalizations ( )
inline

Definition at line 195 of file ModPackage.cs.

196 {
197 SortedDictionary<string, string> sortedDictionary = new SortedDictionary<string, string>();
198 try
199 {
200 foreach (SourceData.BaseRow sourceRow in sourceRows)
201 {
202 foreach (KeyValuePair<string, string> item in sourceRow.ExportTexts(sourceRow.UseAlias ? "alias" : "id"))
203 {
204 item.Deconstruct(out var key, out var value);
205 string key2 = key;
206 string value2 = value;
207 sortedDictionary[key2] = value2;
208 }
209 }
210 }
211 catch (Exception arg)
212 {
213 Debug.LogError($"#source failed to export localization for {title}/{id}\n{arg}");
214 }
215 return sortedDictionary;
216 }
$
Definition: ModManager.cs:85

References $, Debug, and item.

◆ ImportSourceLocalizations()

void ModPackage.ImportSourceLocalizations ( IReadOnlyDictionary< string, string >  texts)
inline

Definition at line 218 of file ModPackage.cs.

219 {
220 foreach (SourceData.BaseRow sourceRow in sourceRows)
221 {
222 sourceRow.ImportTexts(texts, sourceRow.UseAlias ? "alias" : "id");
223 }
224 }

◆ ParseLangMod()

void ModPackage.ParseLangMod ( DirectoryInfo  dir)
inline

Definition at line 153 of file ModPackage.cs.

154 {
155 if (Mapping == null)
156 {
157 Mapping = new FileMapping(dir.Parent);
158 }
159 Mapping.RebuildLangModMapping(EClass.core.config?.lang ?? EClass.core.debug.langCode.ToString());
160 Lang.excelDialog = null;
161 Debug.Log("LangMod: " + string.Join(", ", Mapping.OrderedLangMods));
162 if (Mapping.SourceSheets.Count > 0)
163 {
164 Debug.Log($"Source Sheets: {Mapping.SourceSheets.Count}, {Mapping.SourceLangMod}");
165 }
166 }
string lang
Definition: CoreConfig.cs:585
Lang.LangCode langCode
Definition: CoreDebug.cs:114
CoreDebug debug
Definition: Core.cs:31
CoreConfig config
Definition: Core.cs:70

References $, Core.config, EClass.core, Core.debug, Debug, CoreConfig.lang, and CoreDebug.langCode.

Referenced by ModManager.ParseExtra().

◆ ParseMap()

IReadOnlyList< FileInfo > ModPackage.ParseMap ( DirectoryInfo  dir,
bool  addToList = true 
)
inline

Definition at line 36 of file ModPackage.cs.

37 {
38 List<FileInfo> list = new List<FileInfo>();
39 FileInfo[] files = dir.GetFiles("*.z", SearchOption.TopDirectoryOnly);
40 foreach (FileInfo fileInfo in files)
41 {
42 string key = Path.ChangeExtension(fileInfo.Name, null);
43 if (addToList)
44 {
45 MOD.listMaps.Add(fileInfo);
46 }
47 maps[key] = fileInfo;
48 list.Add(fileInfo);
49 }
50 if (list.Count > 0)
51 {
52 Debug.Log($"Map: {maps.Count}");
53 }
54 return list;
55 }
static List< FileInfo > listMaps
Definition: MOD.cs:20

References $, Debug, and MOD.listMaps.

Referenced by ModManager.ParseExtra().

◆ ParseMapPiece()

IReadOnlyList< FileInfo > ModPackage.ParseMapPiece ( DirectoryInfo  dir,
bool  addToList = true 
)
inline

Definition at line 57 of file ModPackage.cs.

58 {
59 List<FileInfo> list = new List<FileInfo>();
60 FileInfo[] files = dir.GetFiles("*.mp", SearchOption.TopDirectoryOnly);
61 foreach (FileInfo fileInfo in files)
62 {
63 string key = Path.ChangeExtension(fileInfo.Name, null);
64 if (addToList)
65 {
66 MOD.listPartialMaps.Add(fileInfo);
67 }
68 partialMaps[key] = fileInfo;
69 list.Add(fileInfo);
70 }
71 if (list.Count > 0)
72 {
73 Debug.Log($"PartialMap: {partialMaps.Count}");
74 }
75 return list;
76 }
static List< FileInfo > listPartialMaps
Definition: MOD.cs:22

References $, Debug, and MOD.listPartialMaps.

Referenced by ModManager.ParseExtra().

◆ ParsePortrait()

IReadOnlyList< FileInfo > ModPackage.ParsePortrait ( DirectoryInfo  dir)
inline

Definition at line 115 of file ModPackage.cs.

116 {
117 List<FileInfo> list = new List<FileInfo>();
118 FileInfo[] files = dir.GetFiles("*.png", SearchOption.TopDirectoryOnly);
119 foreach (FileInfo fileInfo in files)
120 {
121 string name = fileInfo.Name;
122 if (name.StartsWith("BG_", StringComparison.Ordinal))
123 {
124 Portrait.modPortraitBGs.Add(fileInfo);
125 }
126 else if (name.StartsWith("BGF_", StringComparison.Ordinal))
127 {
128 Portrait.modPortraitBGFs.Add(fileInfo);
129 }
130 else if (name.EndsWith("-full.png", StringComparison.Ordinal))
131 {
132 Portrait.modFull.Add(fileInfo);
133 }
134 else if (name.EndsWith("-overlay.png", StringComparison.Ordinal))
135 {
136 Portrait.modOverlays.Add(fileInfo);
137 }
138 else
139 {
140 Portrait.modPortraits.Add(fileInfo);
141 }
142 Portrait.allIds.Add(name);
143 portraits[name] = fileInfo;
144 list.Add(fileInfo);
145 }
146 if (list.Count > 0)
147 {
148 Debug.Log($"Portrait: {portraits.Count}");
149 }
150 return list;
151 }
void Add(FileInfo fi, string path=null, string prefix="")
Definition: ModItemList.cs:85
static ModItemList< Sprite > modPortraitBGFs
Definition: Portrait.cs:8
static ModItemList< Sprite > modPortraitBGs
Definition: Portrait.cs:10
static ModItemList< Sprite > modOverlays
Definition: Portrait.cs:14
static ModItemList< Sprite > modPortraits
Definition: Portrait.cs:12
static HashSet< string > allIds
Definition: Portrait.cs:20
static ModItemList< Sprite > modFull
Definition: Portrait.cs:16

References $, ModItemList< T >.Add(), Portrait.allIds, Debug, Portrait.modFull, Portrait.modOverlays, Portrait.modPortraitBGFs, Portrait.modPortraitBGs, and Portrait.modPortraits.

Referenced by ModManager.ParseExtra().

◆ ParseSound()

IReadOnlyList< FileInfo > ModPackage.ParseSound ( DirectoryInfo  dir)
inline

Definition at line 168 of file ModPackage.cs.

169 {
170 List<FileInfo> list = new List<FileInfo>();
171 FileInfo[] files = dir.GetFiles("*.*", SearchOption.AllDirectories);
172 foreach (FileInfo fileInfo in files)
173 {
174 if (ModUtil.GetAudioType(fileInfo.Extension) != 0)
175 {
176 string key = Path.ChangeExtension(Path.GetRelativePath(dir.FullName, fileInfo.FullName).NormalizePath(), null);
177 Dictionary<string, FileInfo> dictionary = MOD.sounds;
178 FileInfo value = (sounds[key] = fileInfo);
179 dictionary[key] = value;
180 list.Add(fileInfo);
181 }
182 }
183 if (list.Count > 0)
184 {
185 Debug.Log($"Sound: {sounds.Count}");
186 }
187 int num = sounds.Keys.Count((string k) => k.StartsWith("BGM/"));
188 if (num > 0)
189 {
190 Debug.Log($"BGM: {num}");
191 }
192 return list;
193 }
static Dictionary< string, FileInfo > sounds
Definition: MOD.cs:24
static AudioType GetAudioType(string extension)
Definition: ModUtil.cs:128

References $, Debug, ModUtil.GetAudioType(), and MOD.sounds.

Referenced by ModManager.ParseExtra().

◆ ParseTalkText()

IReadOnlyList< FileInfo > ModPackage.ParseTalkText ( DirectoryInfo  dir)
inline

Definition at line 18 of file ModPackage.cs.

19 {
20 List<FileInfo> list = new List<FileInfo>();
21 FileInfo[] files = dir.GetFiles("*.xlsx", SearchOption.TopDirectoryOnly);
22 foreach (FileInfo fileInfo in files)
23 {
24 ExcelData excelData = new ExcelData(fileInfo.FullName);
25 TalkText.modList.Add(excelData);
26 talkTexts.Add(excelData);
27 list.Add(fileInfo);
28 }
29 if (list.Count > 0)
30 {
31 Debug.Log($"TalkText: {talkTexts.Count}");
32 }
33 return list;
34 }
static List< ExcelData > modList
Definition: TalkText.cs:5

References $, Debug, and TalkText.modList.

Referenced by ModManager.ParseExtra().

◆ ParseTexture()

IReadOnlyList< FileInfo > ModPackage.ParseTexture ( DirectoryInfo  dir)
inline

Definition at line 95 of file ModPackage.cs.

96 {
97 List<FileInfo> list = new List<FileInfo>();
98 FileInfo[] files = dir.GetFiles("*.png", SearchOption.AllDirectories);
99 foreach (FileInfo fileInfo in files)
100 {
101 string key = Path.ChangeExtension(Path.GetRelativePath(dir.FullName, fileInfo.FullName).NormalizePath(), null);
102 string text = Path.ChangeExtension(fileInfo.FullName, null);
103 Dictionary<string, string> dictModItems = SpriteReplacer.dictModItems;
104 string value = (textures[key] = text);
105 dictModItems[key] = value;
106 list.Add(fileInfo);
107 }
108 if (list.Count > 0)
109 {
110 Debug.Log($"Texture: {textures.Count}");
111 }
112 return list;
113 }
static Dictionary< string, string > dictModItems

References $, Debug, and SpriteReplacer.dictModItems.

Referenced by ModManager.ParseExtra().

◆ ParseTextureReplace()

IReadOnlyList< FileInfo > ModPackage.ParseTextureReplace ( DirectoryInfo  dir)
inline

Definition at line 78 of file ModPackage.cs.

79 {
80 List<FileInfo> list = new List<FileInfo>();
81 FileInfo[] files = dir.GetFiles("*.png", SearchOption.TopDirectoryOnly);
82 foreach (FileInfo fileInfo in files)
83 {
84 string key = Path.ChangeExtension(fileInfo.Name, null);
85 textureReplaces[key] = fileInfo;
86 list.Add(fileInfo);
87 }
88 if (list.Count > 0)
89 {
90 Debug.Log($"Texture Replace: {textureReplaces.Count}");
91 }
92 return list;
93 }

References $, and Debug.

Referenced by ModManager.ParseExtra().

◆ UpdateDialogs()

void ModPackage.UpdateDialogs ( DirectoryInfo  dir,
string  dirTemp 
)
inline

Definition at line 304 of file ModPackage.cs.

305 {
306 DirectoryInfo[] directories = dir.GetDirectories();
307 foreach (DirectoryInfo directoryInfo in directories)
308 {
309 UpdateDialogs(directoryInfo, dirTemp + "/" + directoryInfo.Name);
310 }
311 FileInfo[] files = dir.GetFiles();
312 foreach (FileInfo fileInfo in files)
313 {
314 if (fileInfo.Name.EndsWith("xlsx"))
315 {
316 UpdateExcelBook(fileInfo, dirTemp, updateOnlyText: true);
317 }
318 }
319 }
void UpdateExcelBook(FileInfo f, string dirTemp, bool updateOnlyText)
Definition: ModPackage.cs:333

References UpdateDialogs(), and UpdateExcelBook().

Referenced by AddOrUpdateLang(), and UpdateDialogs().

◆ UpdateExcelBook()

void ModPackage.UpdateExcelBook ( FileInfo  f,
string  dirTemp,
bool  updateOnlyText 
)
inline

Definition at line 333 of file ModPackage.cs.

334 {
335 string path = dirTemp + "/" + f.Name;
336 if (!File.Exists(path))
337 {
338 return;
339 }
340 XSSFWorkbook xSSFWorkbook;
341 using (FileStream @is = File.Open(path, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
342 {
343 xSSFWorkbook = new XSSFWorkbook((Stream)@is);
344 }
345 XSSFWorkbook xSSFWorkbook2;
346 using (FileStream is2 = File.Open(f.FullName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
347 {
348 xSSFWorkbook2 = new XSSFWorkbook((Stream)is2);
349 }
350 for (int i = 0; i < xSSFWorkbook2.NumberOfSheets; i++)
351 {
352 ISheet sheetAt = xSSFWorkbook2.GetSheetAt(i);
353 ISheet sheet = xSSFWorkbook.GetSheet(sheetAt.SheetName);
354 if (sheet == null)
355 {
356 Log.system = Log.system + "Old sheet not found:" + sheetAt.SheetName + Environment.NewLine;
357 continue;
358 }
359 int num = UpdateExcelSheet(sheetAt, sheet, updateOnlyText);
360 Log.system = Log.system + ((num == 0) ? "(No Changes) " : "(Updated) ") + f.FullName + "(" + sheetAt.SheetName + ")" + Environment.NewLine;
361 if (num != 0)
362 {
363 Log.system = Log.system + num + Environment.NewLine;
364 }
365 Log.system += Environment.NewLine;
366 }
367 using FileStream stream = new FileStream(f.FullName, FileMode.Create, FileAccess.Write, FileShare.ReadWrite);
368 xSSFWorkbook2.Write(stream);
369 }
int UpdateExcelSheet(ISheet destSheet, ISheet oldSheet, bool updateOnlytext)
Definition: ModPackage.cs:371

References UpdateExcelSheet().

Referenced by UpdateDialogs(), and UpdateTalks().

◆ UpdateExcelSheet()

int ModPackage.UpdateExcelSheet ( ISheet  destSheet,
ISheet  oldSheet,
bool  updateOnlytext 
)
inline

Definition at line 371 of file ModPackage.cs.

372 {
373 Dictionary<string, string[]> dictionary = new Dictionary<string, string[]>();
374 int num = 0;
375 int num2 = 0;
376 int num3 = 10;
377 IRow row2 = destSheet.GetRow(0);
378 IRow row3 = oldSheet.GetRow(0);
379 List<SheetIndex> list = new List<SheetIndex>();
380 int cellnum = FindField(row2, "id");
381 int cellnum2 = FindField(row3, "id");
382 for (int i = 0; i < row2.LastCellNum; i++)
383 {
384 ICell cell = row2.GetCell(i);
385 if (cell == null)
386 {
387 break;
388 }
389 string stringCellValue = cell.StringCellValue;
390 if (stringCellValue == "id" || (updateOnlytext && stringCellValue != "text"))
391 {
392 continue;
393 }
394 for (int j = 0; j < row3.LastCellNum; j++)
395 {
396 cell = row3.GetCell(j);
397 if (cell == null)
398 {
399 break;
400 }
401 if (cell.StringCellValue == stringCellValue)
402 {
403 list.Add(new SheetIndex
404 {
405 dest = i,
406 old = j
407 });
408 Debug.Log(destSheet.SheetName + "/" + stringCellValue + "/" + i + "/" + j);
409 break;
410 }
411 }
412 }
413 for (int k = 2; k <= oldSheet.LastRowNum; k++)
414 {
415 IRow row4 = oldSheet.GetRow(k);
416 if (row4 == null)
417 {
418 if (num2 >= num3)
419 {
420 break;
421 }
422 num2++;
423 continue;
424 }
425 num2 = 0;
426 ICell cell2 = row4.GetCell(cellnum2);
427 if (cell2 == null)
428 {
429 continue;
430 }
431 string text = ((cell2.CellType == CellType.Numeric) ? cell2.NumericCellValue.ToString() : cell2.StringCellValue);
432 if (text.IsEmpty())
433 {
434 continue;
435 }
436 string[] array = new string[list.Count];
437 for (int l = 0; l < list.Count; l++)
438 {
439 ICell cell3 = row4.GetCell(list[l].old);
440 if (cell3 != null)
441 {
442 string stringCellValue2 = cell3.StringCellValue;
443 if (!stringCellValue2.IsEmpty())
444 {
445 array[l] = stringCellValue2;
446 }
447 }
448 }
449 dictionary.Add(text, array);
450 }
451 num2 = 0;
452 for (int m = 2; m <= destSheet.LastRowNum; m++)
453 {
454 IRow row5 = destSheet.GetRow(m);
455 if (row5 == null)
456 {
457 if (num2 >= num3)
458 {
459 break;
460 }
461 num2++;
462 continue;
463 }
464 num2 = 0;
465 ICell cell4 = row5.GetCell(cellnum);
466 if (cell4 == null)
467 {
468 continue;
469 }
470 string text2 = ((cell4.CellType == CellType.Numeric) ? cell4.NumericCellValue.ToString() : cell4.StringCellValue);
471 if (text2.IsEmpty() || !dictionary.ContainsKey(text2))
472 {
473 continue;
474 }
475 string[] array2 = dictionary[text2];
476 for (int n = 0; n < list.Count; n++)
477 {
478 ICell cell5 = row5.GetCell(list[n].dest) ?? row5.CreateCell(list[n].dest, CellType.String);
479 if (cell5 != null)
480 {
481 cell5.SetCellValue(array2[n]);
482 cell5.SetCellType(CellType.String);
483 cell5.SetAsActiveCell();
484 num++;
485 }
486 }
487 }
488 return num;
489 static int FindField(IRow row, string id)
490 {
491 for (int num4 = 0; num4 < row.LastCellNum; num4++)
492 {
493 ICell cell6 = row.GetCell(num4);
494 if (cell6 == null)
495 {
496 break;
497 }
498 if (cell6.StringCellValue == id)
499 {
500 return num4;
501 }
502 }
503 return -1;
504 }
505 }

References Debug.

Referenced by UpdateExcelBook().

◆ UpdateTalks()

void ModPackage.UpdateTalks ( DirectoryInfo  dir,
string  dirTemp 
)
inline

Definition at line 321 of file ModPackage.cs.

322 {
323 FileInfo[] files = dir.GetFiles();
324 foreach (FileInfo fileInfo in files)
325 {
326 if (fileInfo.Name == "god_talk.xlsx" || fileInfo.Name == "chara_talk.xlsx")
327 {
328 UpdateExcelBook(fileInfo, dirTemp, updateOnlyText: false);
329 }
330 }
331 }

References UpdateExcelBook().

Referenced by AddOrUpdateLang().


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