public void InitMetadata(VirtualDirectory directory) { infoIsRealMetadata = false; info = new LanguageInfo(); string text = Regex.Replace(directory.Name, "(\\B[A-Z]+?(?=[A-Z][^A-Z])|\\B[A-Z]+?(?=[^A-Z]))", " $1"); string friendlyNameEnglish = text; string friendlyNameNative = text; int num = text.FirstIndexOf((char c) => c == '('); int num2 = text.LastIndexOf(")"); if (num2 > num) { friendlyNameEnglish = text.Substring(0, num - 1); friendlyNameNative = text.Substring(num + 1, num2 - num - 1); } info.friendlyNameEnglish = friendlyNameEnglish; info.friendlyNameNative = friendlyNameNative; }
public void LoadMetadata() { if (info != null && infoIsRealMetadata) { return; } infoIsRealMetadata = true; foreach (ModContentPack runningMod in LoadedModManager.RunningMods) { foreach (string item in runningMod.foldersToLoadDescendingOrder) { string text = Path.Combine(item, "Languages"); if (!new DirectoryInfo(text).Exists) { continue; } foreach (VirtualDirectory directory in AbstractFilesystem.GetDirectories(text, "*", SearchOption.TopDirectoryOnly)) { if (directory.Name == folderName || directory.Name == legacyFolderName) { info = DirectXmlLoader.ItemFromXmlFile <LanguageInfo>(directory, "LanguageInfo.xml", resolveCrossRefs: false); if (info.friendlyNameNative.NullOrEmpty() && directory.FileExists("FriendlyName.txt")) { info.friendlyNameNative = directory.ReadAllText("FriendlyName.txt"); } if (info.friendlyNameNative.NullOrEmpty()) { info.friendlyNameNative = folderName; } if (info.friendlyNameEnglish.NullOrEmpty()) { info.friendlyNameEnglish = folderName; } return; } } } } }
public void TryLoadMetadataFrom(string folderPath) { if (this.info == null) { string filePath = Path.Combine(folderPath.ToString(), "LanguageInfo.xml"); this.info = DirectXmlLoader.ItemFromXmlFile <LanguageInfo>(filePath, false); if (this.info.friendlyNameNative.NullOrEmpty()) { FileInfo fileInfo = new FileInfo(Path.Combine(folderPath.ToString(), "FriendlyName.txt")); if (fileInfo.Exists) { this.info.friendlyNameNative = GenFile.TextFromRawFile(fileInfo.ToString()); } } if (this.info.friendlyNameNative.NullOrEmpty()) { this.info.friendlyNameNative = this.folderName; } if (this.info.friendlyNameEnglish.NullOrEmpty()) { this.info.friendlyNameEnglish = this.folderName; } } }