/// <summary> /// Imports a mod to the current selected KSP install path. /// </summary> /// <param name="importInfo">The ImportInfo </param> /// <param name="copyDest">Flag to determine if the destination should be copied or if the auto destination detection should be used.</param> /// <param name="addOnly">Flag to determine if the mod should be installed or only added to the ModSelection.</param> private static void ImportMod(ImportInfo importInfo, bool copyDest, bool addOnly) { ModInfo modInfo = importInfo.ModInfo; ModNode addedMod = ModSelectionController.AddMods(new ModInfo[] { modInfo }, false).FirstOrDefault(); if (addedMod != null) { if (copyDest) { // remove all destinations and uncheck all nodes. ModNodeHandler.SetDestinationPaths(addedMod, string.Empty); addedMod._Checked = false; // copy destination UpdateMessage(string.Format(Messages.MSG_COPY_MOD_DESTINATION_0, addedMod.Name)); if (!ModNodeHandler.TryCopyDestToMatchingNodes(importInfo, addedMod)) { UpdateMessage(string.Format(Messages.MSG_COPY_MOD_0_DESTINATION_FAILED, addedMod.Name)); UpdateMessage(string.Format(Messages.MSG_IMPORT_0_FAILED, importInfo.Name), importInfo); return; } } // install the mod. if (!addOnly) { UpdateMessage(string.Format(Messages.MSG_INSTALLING_MOD_0, addedMod.Name)); ModSelectionController.ProcessMods(new ModNode[] { addedMod }); } } else { UpdateMessage(string.Format(Messages.MSG_IMPORT_0_FAILED, importInfo.Name), importInfo); } }
/// <summary> /// Loads the KSPConfig from the selected KSP folder. /// </summary> protected static void LoadKSPConfig() { ModSelectionController.ClearMods(); string configPath = KSPPathHelper.GetPath(KSPPaths.KSPConfig); if (File.Exists(configPath)) { Messenger.AddInfo(Messages.MSG_LOADING_KSP_MOD_CONFIGURATION); List <ModNode> mods = new List <ModNode>(); KSPConfig.Load(configPath, ref mods); ModSelectionController.AddMods(mods.ToArray()); ModSelectionController.SortModSelection(); } else { Messenger.AddInfo(Messages.MSG_KSP_MOD_CONFIGURATION_NOT_FOUND); } ModSelectionController.RefreshCheckedStateAllMods(); Messenger.AddInfo(Messages.MSG_DONE); }