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); } }
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; }