public void LoadData(object param = null) { try { // Load data for each of the workspaces Settings.LoadData(); Trovesaurus.LoadData(); GetMoreMods.LoadData(); MyMods.LoadData(); ModderTools.LoadData(); _dataLoaded = true; // Process saved Trove URI to handle case when Trove URI link clicked before application was fully loaded if (!string.IsNullOrEmpty(_savedTroveUri)) { ProcessTroveUri(_savedTroveUri); } // Process a URI from the command line args if there are any var args = ApplicationDetails.GetTroveUri(); if (!string.IsNullOrEmpty(args)) { ProcessTroveUri(args); } } catch (Exception ex) { log.Error("Error loading main window data", ex); } finally { _dataLoaded = true; } }
public void Closing(object param = null) { log.Info("Main window closing: stopping background timers and saving settings"); Settings.Closing(); MyMods.Closing(); Trovesaurus.Closing(); }
private void Form1_Load(object sender, EventArgs e) { Program.MasterForm.Size = new System.Drawing.Size(577, 455); version_lbl.Text = Config.version; int r = Config.LoadCfg(); if (r == 3) // Config error, user refused to regenerate config { Utility.ShowMsg("MCC Mod Manager cannot load because there are problems with the configuration file.", "Error"); Environment.Exit(1); } Backups.LoadBackups(); if (r == 2) // User refused to stabilize the game { patchButton.Enabled = false; delModpack.Enabled = false; restoreSelectedBtn.Enabled = false; restoreAllBaksBtn.Enabled = false; delSelectedBak.Enabled = false; delAllBaksBtn.Enabled = false; manualOverride.Enabled = false; megaCaution.Visible = true; tt.SetToolTip(megaCaution, "MCC Mod Manager has detected an update and needs to stabilize the game. Please restart the app."); } else if (r == 1) // User allowed the manager to stabilize the game { Modpacks.StabilizeGame(); Backups.LoadBackups(); } MyMods.LoadModpacks(); LoadEventHandlers(); PBar_init(); }
private void RemoveModPack(TroveModPackViewModel currentItem) { log.InfoFormat("Removing mod pack: {0}", currentItem.DataObject.Name); foreach (var mod in MyMods.Where(m => m.ModPack == currentItem)) { mod.ModPack = null; mod.DataObject.PackName = null; } ModPacks.Remove(currentItem); }
private void txtRename_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter) // if enter key pressed { Path.Combine(Config.Modpack_dir, this.modpackName); File.Move( Path.Combine(Config.Modpack_dir, this.modpackName + ".zip"), Path.Combine(Config.Modpack_dir, txtRename.Text + ".zip") ); MyMods.LoadModpacks(); Close(); } }
public DesignTimeMyModsViewModel() : base() { TroveModPackViewModel pack = new TroveModPackViewModel(new TroveModPack { Name = "Design Time Pack", Author = "Dazo" }); foreach (TroveMod mod in JsonConvert.DeserializeObject <List <TroveMod> >(Resources.DesignTimeTroveMods)) { MyMods.Add(new TroveModViewModel(mod)); pack.DataObject.Mods.Add(mod); } ModPacks.Add(pack); }
private void SaveModPack(string modPackName) { bool newPack = false; if (string.IsNullOrEmpty(modPackName)) { log.Warn("No mod pack name specified to save"); return; } log.InfoFormat("Saving enabled standalone mods as mod pack {0}", modPackName); TroveModPackViewModel pack = ModPacks.FirstOrDefault(p => p.DataObject.Name == modPackName && p.DataObject.Source == TroveModPack.LocalSource); if (pack == null) { pack = new TroveModPackViewModel(new TroveModPack()); pack.DataObject.Name = modPackName; newPack = true; } else { pack.DataObject.Mods.Clear(); } foreach (var mod in MyMods.Where(m => m.DataObject.Enabled && m.ModPack == null)) { if (string.IsNullOrEmpty(mod.DataObject.Id)) { log.WarnFormat("Only mods downloaded from Trovesaurus can be included in mod packs, skipping mod: {0}", mod.DisplayName); continue; } mod.ModPack = pack; mod.DataObject.PackName = modPackName; pack.DataObject.Mods.Add(mod.DataObject); } if (pack.DataObject.Mods.Count > 0) { if (newPack) { ModPacks.Add(pack); } ModPacksView.MoveCurrentTo(pack); } else { log.ErrorFormat("No enabled standalone mods from Trovesaurus were added to mod pack {0}", modPackName); } }
private void RemoveMod(dynamic mod) { try { // Use a dynamic ViewModel object to trigger status property notifications mod.RemoveMod(); // Remove mod from MyMods collection as well MyMods.Remove(mod); } catch (Exception ex) { log.Error("Error removing selected mod", ex); } }
public MyMods XmlReader() { //<XMLファイルから読み込む> //XmlSerializerオブジェクトの作成 XmlSerializer serializer = new XmlSerializer(typeof(MyMods)); //ファイルを開く StreamReader sr = new StreamReader( XmlPath, new System.Text.UTF8Encoding(false)); //XMLファイルから読み込み、逆シリアル化する MyMods myMods = (MyMods)serializer.Deserialize(sr); //閉じる sr.Close(); return(myMods); }
private void AddMod(string filePath) { try { // Use a dynamic ViewModel object to trigger status property notifications dynamic modVM = new TroveModViewModel(filePath); MyMods.Add(modVM); modVM.AddMod(); modVM.InstallMod(); } catch (Exception ex) { log.Error("Error adding mod: " + filePath, ex); } }
private void UninstallAllMods(object param = null) { try { log.Info("Uninstalling all mods"); foreach (dynamic mod in MyMods.Where(m => m.DataObject.Enabled)) { mod.Enabled = false; } TroveMod.RemoveModFolders(); } catch (Exception ex) { log.Error("Error uninstalling all mods", ex); } }
private void LoadModPack(TroveModPackViewModel currentItem) { log.InfoFormat("Loading mod pack: {0}", currentItem.DataObject.Name); foreach (var mod in currentItem.DataObject.Mods) { var modVm = MyMods.FirstOrDefault(m => m.DataObject.Id == mod.Id); if (modVm == null) { modVm = MainWindowViewModel.Instance.GetMoreMods.TrovesaurusMods.FirstOrDefault(m => m.DataObject.Id == mod.Id); if (modVm == null) { modVm = new TroveModViewModel(mod); } modVm.InstallCommand.Execute(null); } modVm.ModPack = currentItem; modVm.DataObject.PackName = currentItem.DisplayName; } }
public void ProcessTroveUri(string troveUri) { if (Application.Current.Dispatcher.CheckAccess()) { ViewCommandManager.InvokeLoaded("RestoreWindow"); if (string.IsNullOrEmpty(troveUri)) { return; } if (_dataLoaded) { log.InfoFormat("Processing Trove URI: {0}", troveUri); var args = ApplicationDetails.GetApplicationArguments(troveUri); if (args != null) { SetActiveWorkspace(MyMods); if (args.LinkType == ApplicationDetails.AppArgs.LinkTypes.Mod) { TroveUriInstallMod(args.ModId, args.FileId); } if (args.LinkType == ApplicationDetails.AppArgs.LinkTypes.LocalMod) { TroveUriInstallMod(args.FileName); } if (args.LinkType == ApplicationDetails.AppArgs.LinkTypes.ModPack) { MyMods.TroveUriInstallModPack(args.Uri); } } } else { _savedTroveUri = troveUri; } } else { Application.Current.Dispatcher.Invoke(() => ProcessTroveUri(troveUri)); } }
public void XmlWriter(MyMods myMods) { //<XMLファイルに書き込む> //XmlSerializerオブジェクトを作成 //書き込むオブジェクトの型を指定する XmlSerializer serializer = new XmlSerializer(typeof(MyMods)); //ファイルを開く(UTF-8 BOM無し) try { StreamWriter sw = new StreamWriter(XmlPath, false, new UTF8Encoding(false)); //シリアル化し、XMLファイルに保存する serializer.Serialize(sw, myMods); //閉じる sw.Close(); } catch { MessageBox.Show("Failed to write a setting file. Another process is using a setting file."); return; } }
public bool CheckSettingFile() { //設定ファイルが無かったら作る if (File.Exists(XmlPath) == false) { File.Create(XmlPath).Close(); MyMods myMods = new MyMods(); XmlWriter(myMods); } try { using (Stream stream = new FileStream(XmlPath, FileMode.Open)) { } } catch { MessageBox.Show("Another process is using a setting file."); return(false); } return(true); }
public void LoadData() { // Load data and setup saving MyMods list to settings canSaveData = false; try { log.Info("Loading my mods"); // Load mods from model and create view model objects foreach (TroveMod mod in TroveMod.MyMods) { dynamic modVM = new TroveModViewModel(mod); MyMods.Add(modVM); modVM.CheckForUpdates(); } // Load local mod packs foreach (TroveModPack pack in SettingsDataProvider.MyModPacks) { ModPacks.Add(new TroveModPackViewModel(pack)); } // Load mod packs from Trovesaurus API foreach (TroveModPack pack in TrovesaurusApi.ModPackList) { ModPacks.Add(new TroveModPackViewModel(pack)); } // If auto update setting is enabled, update all mods on startup if (MainWindowViewModel.Instance.Settings.AutoUpdateMods) { UpdateAllMods(); StartUpdateTimer(SettingsDataProvider.AutoUpdateInterval); } // Setup auto-saving of my mods when the collection or items in the collection change MyMods.CollectionChanged += (s, e) => { if (e.OldItems != null) { foreach (INotifyPropertyChanged item in e.OldItems) { item.PropertyChanged -= SaveMyMods; } } if (e.NewItems != null) { foreach (INotifyPropertyChanged item in e.NewItems) { item.PropertyChanged += SaveMyMods; } } SaveMyMods(); }; // Setup auto-saving of mod packs when the collection or items in the collection change ModPacks.CollectionChanged += (s, e) => { SaveModPacks(); }; canSaveData = true; SaveMyMods(); SaveModPacks(); log.Info("Loaded my mods"); } catch (Exception ex) { log.Error("Error loading my mods", ex); } finally { canSaveData = true; } }
private void RefreshButton_Click(object sender, EventArgs e) { Config.LoadCfg(); Backups.LoadBackups(); MyMods.LoadModpacks(); }