示例#1
0
        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);
        }
示例#2
0
        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);
            }
        }
示例#3
0
        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;
            }
        }