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;
                 }
             }
         }
     }
 }
Example #3
0
 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;
         }
     }
 }