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