public void TroveUriInstallModPack(string uri) { log.InfoFormat("Installing mod pack: [{0}] from Trove URI argument", uri); TroveModPack pack = new TroveModPack(uri); TroveModPackViewModel packVm = null; if (string.IsNullOrEmpty(pack.PackId)) { // Install Ad Hoc mod pack packVm = new TroveModPackViewModel(pack); ModPacks.Add(packVm); } else { // Find Trovesaurus mod pack packVm = ModPacks.FirstOrDefault(p => p.DataObject.PackId == pack.PackId); if (packVm == null) { log.ErrorFormat("Could not find Trovesaurus mod pack ID {0}", pack.PackId); return; } } ModPacksView.MoveCurrentTo(packVm); LoadModPack(packVm); }
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); } }