SortedDictionary <string, ActionGroupInfo> GetAllActionsFromPartsAndModules(List <Part> Parts) { SortedDictionary <string, ActionGroupInfo> localActionList = new SortedDictionary <string, ActionGroupInfo>(); for (int partNum = 0; partNum < Parts.Count; partNum++) { Part part = Parts[partNum]; if (part != null) { // Add BaseActions in the part for (int actionNum = 0; actionNum < part.Actions.Count; actionNum++) { var action = part.Actions[actionNum]; if (action.actionGroup >= KSPActionGroup.Stage) { ActionGroupInfo agi = new ActionGroupInfo(part, action, actionNum, action.actionGroup); localActionList.Add(agi.Key, agi); } } // Add BaseActions in the part modules. for (int moduleNum = 0; moduleNum < part.Modules.Count; moduleNum++) { PartModule module = part.Modules[moduleNum]; for (int actionNum = 0; actionNum < module.Actions.Count; actionNum++) { BaseAction action = module.Actions[actionNum]; if (action.actionGroup >= KSPActionGroup.Stage) { ActionGroupInfo agi = new ActionGroupInfo(part, action, actionNum, module, moduleNum, action.actionGroup); localActionList.Add(agi.Key, agi);; } } } } } #if DEBUG DumpAllActions("actions.config"); #endif return(localActionList); }
void RestoreActions(List <Part> partsList) { for (int partNum = 0; partNum < partsList.Count; partNum++) { Part part = partsList[partNum]; if (part != null) { for (int cnt = 0; cnt < part.Actions.Count; cnt++) { var action = part.Actions[cnt]; action.actionGroup = KSPActionGroup.None; if (actionList.ContainsKey(ActionGroupInfo.KeyFrom(part, null, 0, cnt))) { action.actionGroup = actionList[ActionGroupInfo.KeyFrom(part, null, 0, cnt)].baseActionActionGroup; } } // Add BaseActions in the part modules. for (int moduleNum = 0; moduleNum < part.Modules.Count; moduleNum++) { PartModule module = part.Modules[moduleNum]; for (int actionNum = 0; actionNum < module.Actions.Count; actionNum++) { BaseAction action = module.Actions[actionNum]; action.actionGroup = KSPActionGroup.None; if (actionList.ContainsKey(ActionGroupInfo.KeyFrom(part, module, moduleNum, actionNum))) { action.actionGroup = actionList[ActionGroupInfo.KeyFrom(part, module, moduleNum, actionNum)].baseActionActionGroup; } } } } } }