private void SteamWorkshop_OnItemDownloaded(object sender, Workshop.DownloadItemEventArgs e) { if (e.Result.m_eResult != EResult.k_EResultOK) { MessageBox.Show($"{e.Result.m_nPublishedFileId}: {e.Result.m_eResult}"); return; } var m = Downloads.SingleOrDefault(x => x.WorkshopID == (long)e.Result.m_nPublishedFileId.m_PublishedFileId); if (m != null) { // Fill fields m.RemoveState(ModState.NotInstalled); m.RealizeIDAndPath(m.Path); m.Image = null; // Use default image again // load info var info = new ModInfo(m.GetModInfoFile()); // Move mod Downloads.Remove(m); Mods.AddMod(info.Category, m); // update listitem //var item = modlist_listview.Items.Cast<ListViewItem>().Single(i => (i.Tag as ModEntry).SourceID == m.SourceID); //UpdateModListItem(item, info.Category); } m = Mods.All.Single(x => x.WorkshopID == (long)e.Result.m_nPublishedFileId.m_PublishedFileId); MessageBox.Show($"{m.Name} finished download."); }
private void SteamWorkshop_OnItemDownloaded(object sender, Workshop.DownloadItemEventArgs e) { if (e.Result.m_eResult != EResult.k_EResultOK) { MessageBox.Show($"{e.Result.m_nPublishedFileId}: {e.Result.m_eResult}"); return; } var m = Downloads.SingleOrDefault(x => x.WorkshopID == (long)e.Result.m_nPublishedFileId.m_PublishedFileId); if (m != null) { // look for .XComMod file var infoFile = Directory.GetFiles(m.Path, "*.XComMod", SearchOption.TopDirectoryOnly).SingleOrDefault(); if (infoFile == null) { throw new Exception("Invalid Download"); } // Fill fields m.State &= ~ModState.NotInstalled; m.ID = Path.GetFileNameWithoutExtension(infoFile); m.Image = null; // Use default image again // load info var info = new ModInfo(m.GetModInfoFile()); // Move mod Downloads.Remove(m); Mods.AddMod(info.Category, m); // update listitem //var item = modlist_listview.Items.Cast<ListViewItem>().Single(i => (i.Tag as ModEntry).SourceID == m.SourceID); //UpdateModListItem(item, info.Category); } m = Mods.All.Single(x => x.WorkshopID == (long)e.Result.m_nPublishedFileId.m_PublishedFileId); MessageBox.Show($"{m.Name} finished download."); }