public void PerformIconCheck(IDatabaseSettingDao databaseSettingDao, GrimDawnDetector grimDawnDetector) { // Load the GD database (or mod, if any) string gdPath = databaseSettingDao.GetCurrentDatabasePath(); if (string.IsNullOrEmpty(gdPath) || !Directory.Exists(gdPath)) { gdPath = grimDawnDetector.GetGrimLocation(); } if (!string.IsNullOrEmpty(gdPath) && Directory.Exists(gdPath)) { var numFiles = Directory.GetFiles(GlobalPaths.StorageFolder).Length; int numFilesExpected = 2100; if (Directory.Exists(Path.Combine(gdPath, "gdx2"))) { numFilesExpected += 580; } if (Directory.Exists(Path.Combine(gdPath, "gdx1"))) { numFilesExpected += 890; } if (numFiles < numFilesExpected) { Logger.Debug($"Only found {numFiles} in storage, expected ~{numFilesExpected}+, parsing item icons."); ThreadPool.QueueUserWorkItem((m) => ArzParser.LoadIconsOnly(gdPath)); } } else { Logger.Warn("Could not find the Grim Dawn install location"); } }
private void UpdateListview(IEnumerable <string> paths) { listView1.BeginUpdate(); listView1.Items.Clear(); var tagVanilla = GlobalSettings.Language.GetTag("iatag_ui_vanilla"); var tagVanillaXpac = GlobalSettings.Language.GetTag("iatag_ui_vanilla_xpac"); var tagYes = GlobalSettings.Language.GetTag("iatag_ui_yes"); var tagNo = GlobalSettings.Language.GetTag("iatag_ui_no"); foreach (var gdPath in paths) { string currentDatabase = _databaseSettingDao.GetCurrentDatabasePath(); if (!string.IsNullOrEmpty(gdPath) && Directory.Exists(gdPath)) { bool hasExpansion = Directory.Exists(Path.Combine(gdPath, "gdx1")); ListViewItem vanilla = new ListViewItem(hasExpansion ? tagVanillaXpac : tagVanilla); vanilla.SubItems.Add(currentDatabase.Equals(gdPath) ? tagYes : tagNo); vanilla.SubItems.Add(gdPath); vanilla.Tag = new ListViewEntry { Path = gdPath, IsVanilla = true }; listView1.Items.Add(vanilla); } foreach (var modpath in new[] { Path.Combine(gdPath, "mods"), Path.Combine(gdPath, "gdx1", "mods") }) { if (Directory.Exists(modpath)) { foreach (var directory in Directory.EnumerateDirectories(modpath)) { if (Directory.EnumerateFiles(directory, "*.arz", SearchOption.AllDirectories).Any()) { var modName = Path.GetFileName(directory); if (modName == "survivalmode") { modName = GlobalSettings.Language.GetTag("iatag_ui_survivalmode"); } ListViewItem mod = new ListViewItem(modName); mod.SubItems.Add(currentDatabase.Equals(directory) ? tagYes : tagNo); mod.SubItems.Add(directory); mod.Tag = new ListViewEntry { Path = directory, IsVanilla = false }; listView1.Items.Add(mod); } } } } } listView1.EndUpdate(); }
public string GetCurrentDatabasePath() { return(ThreadExecuter.Execute( () => repo.GetCurrentDatabasePath() )); }