public static void LoadTextPacks(IEnumerable <ContentPackage> selectedContentPackages)
        {
            HashSet <string> newLanguages = new HashSet <string>();
            Dictionary <string, List <TextPack> > newTextPacks = new Dictionary <string, List <TextPack> >();

            var textFiles = ContentPackage.GetFilesOfType(selectedContentPackages, ContentType.Text).ToList();

            foreach (ContentFile file in textFiles)
            {
#if !DEBUG
                try
                {
#endif
                var textPack = new TextPack(file.Path);
                newLanguages.Add(textPack.Language);
                if (!newTextPacks.ContainsKey(textPack.Language))
                {
                    newTextPacks.Add(textPack.Language, new List <TextPack>());
                }
                newTextPacks[textPack.Language].Add(textPack);
#if !DEBUG
            }
            catch (Exception e)
            {
                DebugConsole.ThrowError("Failed to load text file \"" + file.Path + "\"!", e);
            }
#endif
            }

            if (newTextPacks.Count == 0)
            {
                DebugConsole.ThrowError("No text files available in any of the selected content packages. Attempting to find a vanilla English text file...");
                if (!File.Exists(VanillaTextFilePath))
                {
                    throw new Exception("No text files found in any of the selected content packages or in the default text path!");
                }
                var textPack = new TextPack(VanillaTextFilePath);
                newLanguages.Add(textPack.Language);
                newTextPacks.Add(textPack.Language, new List <TextPack>()
                {
                    textPack
                });
            }

            if (newTextPacks.Count == 0)
            {
                throw new Exception("Failed to load text packs!");
            }

            lock (mutex)
            {
                textPacks          = newTextPacks;
                availableLanguages = newLanguages;
                DebugConsole.NewMessage("Loaded languages: " + string.Join(", ", newLanguages));
            }

            Initialized = true;
        }
 public static void LoadTextPack(string file)
 {
     lock (mutex)
     {
         var textPack = new TextPack(file);
         availableLanguages.Add(textPack.Language);
         if (!textPacks.ContainsKey(textPack.Language))
         {
             textPacks.Add(textPack.Language, new List <TextPack>());
         }
         textPacks[textPack.Language].Add(textPack);
     }
 }
Esempio n. 3
0
        public static void LoadTextPacks(IEnumerable <ContentPackage> selectedContentPackages)
        {
            availableLanguages.Clear();
            textPacks.Clear();
            var textFiles = ContentPackage.GetFilesOfType(selectedContentPackages, ContentType.Text);

            foreach (string file in textFiles)
            {
                try
                {
                    var textPack = new TextPack(file);
                    availableLanguages.Add(textPack.Language);
                    if (!textPacks.ContainsKey(textPack.Language))
                    {
                        textPacks.Add(textPack.Language, new List <TextPack>());
                    }
                    textPacks[textPack.Language].Add(textPack);
                }
                catch (Exception e)
                {
                    DebugConsole.ThrowError("Failed to load text file \"" + file + "\"!", e);
                }
            }

            if (textPacks.Count == 0)
            {
                DebugConsole.ThrowError("No text files available in any of the selected content packages. Attempting to find a vanilla English text file...");
                if (!File.Exists(VanillaTextFilePath))
                {
                    throw new Exception("No text files found in any of the selected content packages or in the default text path!");
                }
                var textPack = new TextPack(VanillaTextFilePath);
                availableLanguages.Add(textPack.Language);
                textPacks.Add(textPack.Language, new List <TextPack>()
                {
                    textPack
                });
            }
            Initialized = true;
        }