void cModComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e) { try { cCampaignComboBox.Items.Clear(); ModFolder modFolder = (ModFolder)cModComboBox.SelectedItem; if (modFolder == null) { cCampaignComboBox.IsEnabled = false; return; } cCampaignComboBox.IsEnabled = true; foreach (Campaign camp in modFolder.Campaigns) { cCampaignComboBox.Items.Add(camp); } cCampaignComboBox.SelectedIndex = 0; } catch (Exception exc) { Debug.ShowException(exc); } }
public static Installation LoadInstallation(string filePath) { if (!string.IsNullOrWhiteSpace(filePath) && File.Exists(filePath)) { MD5Hash hash = new MD5Hash(filePath); foreach (CodeVersion version in CodeVersion.Versions) { if (version.Hash == hash) { string dirPath = Path.GetDirectoryName(filePath); foreach (Installation i in Settings.Installations) { if (string.Equals(i.DirPath, dirPath, StringComparison.OrdinalIgnoreCase)) { if (i.version == version) { return(null); } return(new Installation(filePath, version, i.mods)); } } return(new Installation(filePath, version, ModFolder.LoadMods(dirPath))); } } } return(null); }
IEnumerable <FactionInfo> GetFactions(IEnumerable <byte> indices) { ModFolder mod = GetModFolder(); if (mod == null) { return(Enumerable.Empty <FactionInfo>()); } return(indices.Select(i => mod.GetFaction(i))); }
public static IEnumerable <ModFolder> LoadMods(string path) { // default game ModFolder mod = LoadMod(path, DefaultName); if (mod != null) { yield return(mod); } foreach (string dir in Directory.EnumerateDirectories(path)) { mod = LoadMod(dir, Path.GetFileName(dir)); if (mod != null) { yield return(mod); } } }