Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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;
                            }
                        }
                    }
                }
            }
        }