Ejemplo n.º 1
0
        public static void loadSASPreset(SASPreset p, Stock_SAS instance)
        {
            instance.vesModule.vesselRef.Autopilot.SAS.pidLockedPitch.kp    = p.PIDGains[(int)SASList.Pitch, 0];
            instance.vesModule.vesselRef.Autopilot.SAS.pidLockedPitch.ki    = p.PIDGains[(int)SASList.Pitch, 1];
            instance.vesModule.vesselRef.Autopilot.SAS.pidLockedPitch.kd    = p.PIDGains[(int)SASList.Pitch, 2];
            instance.vesModule.vesselRef.Autopilot.SAS.pidLockedPitch.clamp = p.PIDGains[(int)SASList.Pitch, 3];

            instance.vesModule.vesselRef.Autopilot.SAS.pidLockedRoll.kp    = p.PIDGains[(int)SASList.Bank, 0];
            instance.vesModule.vesselRef.Autopilot.SAS.pidLockedRoll.ki    = p.PIDGains[(int)SASList.Bank, 1];
            instance.vesModule.vesselRef.Autopilot.SAS.pidLockedRoll.kd    = p.PIDGains[(int)SASList.Bank, 2];
            instance.vesModule.vesselRef.Autopilot.SAS.pidLockedRoll.clamp = p.PIDGains[(int)SASList.Bank, 3];

            instance.vesModule.vesselRef.Autopilot.SAS.pidLockedYaw.kp    = p.PIDGains[(int)SASList.Hdg, 0];
            instance.vesModule.vesselRef.Autopilot.SAS.pidLockedYaw.ki    = p.PIDGains[(int)SASList.Hdg, 1];
            instance.vesModule.vesselRef.Autopilot.SAS.pidLockedYaw.kd    = p.PIDGains[(int)SASList.Hdg, 2];
            instance.vesModule.vesselRef.Autopilot.SAS.pidLockedYaw.clamp = p.PIDGains[(int)SASList.Hdg, 3];

            Instance.activeSASPreset = p;

            if (Instance.activeSASPreset != Instance.craftPresetDict[craftDefaultName].SASPreset)
            {
                updateCraftPreset(p, instance.vesModule.vesselRef);
            }
            saveToFile();
        }
Ejemplo n.º 2
0
        public static void loadStockSASPreset(SASPreset p)
        {
            FlightData.thisVessel.Autopilot.SAS.pidLockedPitch.kp    = p.PIDGains[(int)SASList.Pitch, 0];
            FlightData.thisVessel.Autopilot.SAS.pidLockedPitch.ki    = p.PIDGains[(int)SASList.Pitch, 1];
            FlightData.thisVessel.Autopilot.SAS.pidLockedPitch.kd    = p.PIDGains[(int)SASList.Pitch, 2];
            FlightData.thisVessel.Autopilot.SAS.pidLockedPitch.clamp = p.PIDGains[(int)SASList.Pitch, 3];

            FlightData.thisVessel.Autopilot.SAS.pidLockedRoll.kp    = p.PIDGains[(int)SASList.Roll, 0];
            FlightData.thisVessel.Autopilot.SAS.pidLockedRoll.ki    = p.PIDGains[(int)SASList.Roll, 1];
            FlightData.thisVessel.Autopilot.SAS.pidLockedRoll.kd    = p.PIDGains[(int)SASList.Roll, 2];
            FlightData.thisVessel.Autopilot.SAS.pidLockedRoll.clamp = p.PIDGains[(int)SASList.Roll, 3];

            FlightData.thisVessel.Autopilot.SAS.pidLockedYaw.kp    = p.PIDGains[(int)SASList.Yaw, 0];
            FlightData.thisVessel.Autopilot.SAS.pidLockedYaw.ki    = p.PIDGains[(int)SASList.Yaw, 1];
            FlightData.thisVessel.Autopilot.SAS.pidLockedYaw.kd    = p.PIDGains[(int)SASList.Yaw, 2];
            FlightData.thisVessel.Autopilot.SAS.pidLockedYaw.clamp = p.PIDGains[(int)SASList.Yaw, 3];

            Instance.activeStockSASPreset = p;

            if (Instance.craftPresetList.ContainsKey(FlightData.thisVessel.vesselName) && Instance.activeStockSASPreset != Instance.craftPresetList[craftDefault].StockPreset)
            {
                Instance.craftPresetList[FlightData.thisVessel.vesselName].StockPreset = Instance.activeStockSASPreset;
            }
            else if (!Instance.craftPresetList.ContainsKey(FlightData.thisVessel.vesselName) && Instance.activeStockSASPreset != Instance.craftPresetList[craftDefault].StockPreset)
            {
                Instance.craftPresetList.Add(FlightData.thisVessel.vesselName,
                                             new CraftPreset(FlightData.thisVessel.vesselName,
                                                             Instance.activePAPreset == Instance.craftPresetList[craftDefault].AsstPreset ? null : Instance.activePAPreset,
                                                             Instance.activeSASPreset == Instance.craftPresetList[craftDefault].SSASPreset ? null : Instance.activeSASPreset,
                                                             Instance.activeStockSASPreset == Instance.craftPresetList[craftDefault].StockPreset ? null : Instance.activeStockSASPreset,
                                                             SurfSAS.Instance.bStockSAS));
            }
            saveToFile();
        }
Ejemplo n.º 3
0
        public static void loadSASPreset(SASPreset p)
        {
            PID_Controller[] c = SurfSAS.SASControllers;

            foreach (SASList s in Enum.GetValues(typeof(SASList)))
            {
                c[(int)s].PGain  = p.PIDGains[(int)s, 0];
                c[(int)s].IGain  = p.PIDGains[(int)s, 1];
                c[(int)s].DGain  = p.PIDGains[(int)s, 2];
                c[(int)s].Scalar = p.PIDGains[(int)s, 3];
                SurfSAS.Instance.fadeReset[(int)s] = (float)p.PIDGains[(int)s, 4];
            }

            Instance.activeSASPreset = p;

            if (Instance.craftPresetList.ContainsKey(FlightData.thisVessel.vesselName) && Instance.activeSASPreset != Instance.craftPresetList[craftDefault].SSASPreset)
            {
                Instance.craftPresetList[FlightData.thisVessel.vesselName].SSASPreset = Instance.activeSASPreset;
            }
            else if (!Instance.craftPresetList.ContainsKey(FlightData.thisVessel.vesselName) && Instance.activeSASPreset != Instance.craftPresetList[craftDefault].SSASPreset)
            {
                Instance.craftPresetList.Add(FlightData.thisVessel.vesselName,
                                             new CraftPreset(FlightData.thisVessel.vesselName,
                                                             Instance.activePAPreset == Instance.craftPresetList[craftDefault].AsstPreset ? null : Instance.activePAPreset,
                                                             Instance.activeSASPreset == Instance.craftPresetList[craftDefault].SSASPreset ? null : Instance.activeSASPreset,
                                                             Instance.activeStockSASPreset == Instance.craftPresetList[craftDefault].StockPreset ? null : Instance.activeStockSASPreset,
                                                             SurfSAS.Instance.bStockSAS));
            }
            saveToFile();
        }
Ejemplo n.º 4
0
        public static void deleteSASPreset(SASPreset p)
        {
            if (Instance.activeSASPreset == p && !p.bStockSAS)
            {
                Instance.activeSASPreset = null;
            }
            else if (Instance.activeStockSASPreset == p && p.bStockSAS)
            {
                Instance.activeStockSASPreset = null;
            }

            Instance.SASPresetList.Remove(p);

            foreach (KeyValuePair <string, CraftPreset> cp in instance.craftPresetList)
            {
                if (!p.bStockSAS)
                {
                    if (cp.Value != null && cp.Value.SSASPreset == p)
                    {
                        cp.Value.SSASPreset = null;
                    }
                }
                else
                {
                    if (cp.Value != null && cp.Value.StockPreset == p)
                    {
                        cp.Value.StockPreset = null;
                    }
                }
            }

            saveToFile();
        }
Ejemplo n.º 5
0
 public static void initDefaultPresets(SASPreset p)
 {
     initDefaultPresets();
     if (ReferenceEquals(Instance.craftPresetDict[craftDefaultName].SASPreset, null))
     {
         Instance.craftPresetDict[craftDefaultName].SASPreset = p;
     }
     PresetManager.saveDefaults();
 }
Ejemplo n.º 6
0
        public static ConfigNode PIDnode(string name, int index, SASPreset preset)
        {
            ConfigNode node = new ConfigNode(name);

            node.AddValue(pGain, preset.PIDGains[index, 0]);
            node.AddValue(iGain, preset.PIDGains[index, 1]);
            node.AddValue(dGain, preset.PIDGains[index, 2]);
            node.AddValue(scalar, preset.PIDGains[index, 3]);
            return(node);
        }
Ejemplo n.º 7
0
        public static ConfigNode SASPresetNode(SASPreset preset)
        {
            ConfigNode node = new ConfigNode(sasPresetNodeName);

            node.AddValue("name", preset.name);
            node.AddNode(PIDnode(aileronCtrlr, (int)SASList.Bank, preset));
            node.AddNode(PIDnode(rudderCtrlr, (int)SASList.Hdg, preset));
            node.AddNode(PIDnode(elevCtrlr, (int)SASList.Pitch, preset));

            return(node);
        }
Ejemplo n.º 8
0
        public static ConfigNode SASPresetNode(SASPreset preset)
        {
            ConfigNode node = new ConfigNode(sasPreset);

            node.AddValue("name", preset.name);
            node.AddValue("stock", preset.bStockSAS);
            node.AddNode(PIDnode(aileronCtrlr, (int)SASList.Roll, preset));
            node.AddNode(PIDnode(rudderCtrlr, (int)SASList.Yaw, preset));
            node.AddNode(PIDnode(elevCtrlr, (int)SASList.Pitch, preset));

            return(node);
        }
Ejemplo n.º 9
0
        public static void deleteSASPreset(SASPreset p)
        {
            GeneralUI.postMessage("Deleted preset " + p.name);
            if (Instance.activeSASPreset == p)
            {
                Instance.activeSASPreset = null;
            }
            Instance.SASPresetList.Remove(p);

            foreach (KeyValuePair <string, CraftPreset> cp in instance.craftPresetDict)
            {
                if (!ReferenceEquals(cp.Value, null) && cp.Value.SASPreset == p)
                {
                    cp.Value.SASPreset = null;
                }
            }
            p = null;
            saveToFile();
        }
Ejemplo n.º 10
0
        public static void newSASPreset(ref string name, Vessel v)
        {
            if (string.IsNullOrEmpty(name))
            {
                return;
            }

            string nameTest = name;

            if (Instance.SASPresetList.Any(p => p.name == nameTest))
            {
                return;
            }

            SASPreset newPreset = new SASPreset(v.Autopilot.SAS, name);

            Instance.SASPresetList.Add(newPreset);
            updateCraftPreset(newPreset, v);
            Instance.activeSASPreset = Instance.SASPresetList.Last();

            saveToFile();
            name = "";
        }
Ejemplo n.º 11
0
        public static void loadPresetsFromFile()
        {
            AsstPreset asstDefault = null;
            SASPreset SASDefault = null;
            SSASPreset SSASDefault = null;
            RSASPreset RSASDefault = null;

            foreach (ConfigNode node in GameDatabase.Instance.GetConfigNodes(asstPresetNodeName))
            {
                if (ReferenceEquals(node, null))
                    continue;

                List<double[]> gains = new List<double[]>();
                gains.Add(controllerGains(node.GetNode(hdgCtrlr), AsstList.HdgBank));
                gains.Add(controllerGains(node.GetNode(yawCtrlr), AsstList.BankToYaw));
                gains.Add(controllerGains(node.GetNode(aileronCtrlr), AsstList.Aileron));
                gains.Add(controllerGains(node.GetNode(rudderCtrlr), AsstList.Rudder));
                gains.Add(controllerGains(node.GetNode(altCtrlr), AsstList.Altitude));
                gains.Add(controllerGains(node.GetNode(vertCtrlr), AsstList.VertSpeed));
                gains.Add(controllerGains(node.GetNode(elevCtrlr), AsstList.Elevator));
                gains.Add(controllerGains(node.GetNode(speedCtrlr), AsstList.Speed));
                gains.Add(controllerGains(node.GetNode(accelCtrlr), AsstList.Acceleration));

                string name = node.GetValue("name");
                if (name == asstDefaultName)
                    asstDefault = new AsstPreset(gains, name);
                else if (!instance.AsstPresetList.Any(p => p.name == name))
                    instance.AsstPresetList.Add(new AsstPreset(gains, name));
            }

            foreach (ConfigNode node in GameDatabase.Instance.GetConfigNodes(sasPresetNodeName))
            {
                if (ReferenceEquals(node, null) || node.GetValue("stock") == "false")
                    continue;

                List<double[]> gains = new List<double[]>();
                gains.Add(controllerSASGains(node.GetNode(elevCtrlr), SASList.Pitch));
                gains.Add(controllerSASGains(node.GetNode(aileronCtrlr), SASList.Bank));
                gains.Add(controllerSASGains(node.GetNode(rudderCtrlr), SASList.Hdg));

                string name = node.GetValue("name");
                if (name == SASDefaultName)
                    SASDefault = new SASPreset(gains, name);
                else if (!instance.SASPresetList.Any(p => p.name == name))
                    instance.SASPresetList.Add(new SASPreset(gains, name));
            }

            foreach (ConfigNode node in GameDatabase.Instance.GetConfigNodes(ssasPresetNodeName))
            {
                if (ReferenceEquals(node, null))
                    continue;

                List<double[]> gains = new List<double[]>();
                gains.Add(controllerSASGains(node.GetNode(elevCtrlr), SASList.Pitch));
                gains.Add(controllerSASGains(node.GetNode(aileronCtrlr), SASList.Bank));
                gains.Add(controllerSASGains(node.GetNode(rudderCtrlr), SASList.Hdg));

                string name = node.GetValue("name");
                if (name == ssasDefaultName)
                    SSASDefault = new SSASPreset(gains, name);
                else if (!instance.SSASPresetList.Any(p => p.name == name))
                    instance.SSASPresetList.Add(new SSASPreset(gains, name));
            }

            foreach (ConfigNode node in GameDatabase.Instance.GetConfigNodes(rsasPresetNodeName))
            {
                if (ReferenceEquals(node, null))
                    continue;

                List<double[]> gains = new List<double[]>();
                gains.Add(controllerSASGains(node.GetNode(elevCtrlr), SASList.Pitch));
                gains.Add(controllerSASGains(node.GetNode(aileronCtrlr), SASList.Bank));
                gains.Add(controllerSASGains(node.GetNode(rudderCtrlr), SASList.Hdg));

                string name = node.GetValue("name");
                if (name == RSASDefaultName)
                    RSASDefault = new RSASPreset(gains, name);
                else if (!instance.RSASPresetList.Any(p => p.name == name))
                    instance.RSASPresetList.Add(new RSASPreset(gains, name));
            }

            foreach (ConfigNode node in GameDatabase.Instance.GetConfigNodes(craftPresetNodeName))
            {
                if (ReferenceEquals(node, null) || instance.craftPresetDict.ContainsKey(node.GetValue("name")))
                    continue;

                string name = node.GetValue("name");
                if (name == craftDefaultName)
                    instance.craftPresetDict.Add(craftDefaultName, new CraftPreset(craftDefaultName, asstDefault, SSASDefault, SASDefault, RSASDefault));
                else
                {
                    CraftPreset cP = new CraftPreset(name,
                                            instance.AsstPresetList.FirstOrDefault(p => p.name == node.GetValue(craftAsstKey)),
                                            instance.SSASPresetList.FirstOrDefault(p => p.name == node.GetValue(craftSSASKey)),
                                            instance.SASPresetList.FirstOrDefault(p => p.name == node.GetValue(craftSASKey)),
                                            instance.RSASPresetList.FirstOrDefault(p => p.name == node.GetValue(craftRSASKey)));

                    instance.craftPresetDict.Add(cP.Name, cP);
                }
            }
        }
Ejemplo n.º 12
0
 public static void updateCraftPreset(SASPreset p, Vessel v)
 {
     initCraftPreset(v);
     Instance.craftPresetDict[v.vesselName].SASPreset = p;
 }
Ejemplo n.º 13
0
        public static void loadSASPreset(SASPreset p, Stock_SAS instance)
        {
            instance.vesModule.vesselRef.Autopilot.SAS.pidLockedPitch.kp = p.PIDGains[(int)SASList.Pitch, 0];
            instance.vesModule.vesselRef.Autopilot.SAS.pidLockedPitch.ki = p.PIDGains[(int)SASList.Pitch, 1];
            instance.vesModule.vesselRef.Autopilot.SAS.pidLockedPitch.kd = p.PIDGains[(int)SASList.Pitch, 2];
            instance.vesModule.vesselRef.Autopilot.SAS.pidLockedPitch.clamp = p.PIDGains[(int)SASList.Pitch, 3];

            instance.vesModule.vesselRef.Autopilot.SAS.pidLockedRoll.kp = p.PIDGains[(int)SASList.Bank, 0];
            instance.vesModule.vesselRef.Autopilot.SAS.pidLockedRoll.ki = p.PIDGains[(int)SASList.Bank, 1];
            instance.vesModule.vesselRef.Autopilot.SAS.pidLockedRoll.kd = p.PIDGains[(int)SASList.Bank, 2];
            instance.vesModule.vesselRef.Autopilot.SAS.pidLockedRoll.clamp = p.PIDGains[(int)SASList.Bank, 3];

            instance.vesModule.vesselRef.Autopilot.SAS.pidLockedYaw.kp = p.PIDGains[(int)SASList.Hdg, 0];
            instance.vesModule.vesselRef.Autopilot.SAS.pidLockedYaw.ki = p.PIDGains[(int)SASList.Hdg, 1];
            instance.vesModule.vesselRef.Autopilot.SAS.pidLockedYaw.kd = p.PIDGains[(int)SASList.Hdg, 2];
            instance.vesModule.vesselRef.Autopilot.SAS.pidLockedYaw.clamp = p.PIDGains[(int)SASList.Hdg, 3];

            Instance.activeSASPreset = p;

            if (Instance.activeSASPreset != Instance.craftPresetDict[craftDefaultName].SASPreset)
                updateCraftPreset(p, instance.vesModule.vesselRef);
            saveToFile();
        }
Ejemplo n.º 14
0
        public static void newSASPreset(ref string name, Vessel v)
        {
            if (string.IsNullOrEmpty(name))
                return;

            string nameTest = name;
            if (Instance.SASPresetList.Any(p => p.name == nameTest))
                return;

            SASPreset newPreset = new SASPreset(v.Autopilot.SAS, name);
            Instance.SASPresetList.Add(newPreset);
            updateCraftPreset(newPreset, v);
            Instance.activeSASPreset = Instance.SASPresetList.Last();

            saveToFile();
            name = "";
        }
Ejemplo n.º 15
0
 public static void initDefaultPresets(SASPreset p)
 {
     initDefaultPresets();
     if (ReferenceEquals(Instance.craftPresetDict[craftDefaultName].SASPreset, null))
         Instance.craftPresetDict[craftDefaultName].SASPreset = p;
     PresetManager.saveDefaults();
 }
Ejemplo n.º 16
0
 public static ConfigNode PIDnode(string name, int index, SASPreset preset)
 {
     ConfigNode node = new ConfigNode(name);
     node.AddValue(pGain, preset.PIDGains[index, 0]);
     node.AddValue(iGain, preset.PIDGains[index, 1]);
     node.AddValue(dGain, preset.PIDGains[index, 2]);
     node.AddValue(scalar, preset.PIDGains[index, 3]);
     return node;
 }
Ejemplo n.º 17
0
        public static void loadPresetsFromFile()
        {
            AsstPreset asstDefault = null;
            SASPreset  SASDefault  = null;
            SSASPreset SSASDefault = null;
            RSASPreset RSASDefault = null;

            foreach (ConfigNode node in GameDatabase.Instance.GetConfigNodes(asstPresetNodeName))
            {
                if (ReferenceEquals(node, null))
                {
                    continue;
                }

                List <double[]> gains = new List <double[]>();
                gains.Add(controllerGains(node.GetNode(hdgCtrlr), AsstList.HdgBank));
                gains.Add(controllerGains(node.GetNode(yawCtrlr), AsstList.BankToYaw));
                gains.Add(controllerGains(node.GetNode(aileronCtrlr), AsstList.Aileron));
                gains.Add(controllerGains(node.GetNode(rudderCtrlr), AsstList.Rudder));
                gains.Add(controllerGains(node.GetNode(altCtrlr), AsstList.Altitude));
                gains.Add(controllerGains(node.GetNode(vertCtrlr), AsstList.VertSpeed));
                gains.Add(controllerGains(node.GetNode(elevCtrlr), AsstList.Elevator));
                gains.Add(controllerGains(node.GetNode(speedCtrlr), AsstList.Speed));
                gains.Add(controllerGains(node.GetNode(accelCtrlr), AsstList.Acceleration));

                string name = node.GetValue("name");
                if (name == asstDefaultName)
                {
                    asstDefault = new AsstPreset(gains, name);
                }
                else if (!instance.AsstPresetList.Any(p => p.name == name))
                {
                    instance.AsstPresetList.Add(new AsstPreset(gains, name));
                }
            }

            foreach (ConfigNode node in GameDatabase.Instance.GetConfigNodes(sasPresetNodeName))
            {
                if (ReferenceEquals(node, null) || node.GetValue("stock") == "false")
                {
                    continue;
                }

                List <double[]> gains = new List <double[]>();
                gains.Add(controllerSASGains(node.GetNode(elevCtrlr), SASList.Pitch));
                gains.Add(controllerSASGains(node.GetNode(aileronCtrlr), SASList.Bank));
                gains.Add(controllerSASGains(node.GetNode(rudderCtrlr), SASList.Hdg));

                string name = node.GetValue("name");
                if (name == SASDefaultName)
                {
                    SASDefault = new SASPreset(gains, name);
                }
                else if (!instance.SASPresetList.Any(p => p.name == name))
                {
                    instance.SASPresetList.Add(new SASPreset(gains, name));
                }
            }

            foreach (ConfigNode node in GameDatabase.Instance.GetConfigNodes(ssasPresetNodeName))
            {
                if (ReferenceEquals(node, null))
                {
                    continue;
                }

                List <double[]> gains = new List <double[]>();
                gains.Add(controllerSASGains(node.GetNode(elevCtrlr), SASList.Pitch));
                gains.Add(controllerSASGains(node.GetNode(aileronCtrlr), SASList.Bank));
                gains.Add(controllerSASGains(node.GetNode(rudderCtrlr), SASList.Hdg));

                string name = node.GetValue("name");
                if (name == ssasDefaultName)
                {
                    SSASDefault = new SSASPreset(gains, name);
                }
                else if (!instance.SSASPresetList.Any(p => p.name == name))
                {
                    instance.SSASPresetList.Add(new SSASPreset(gains, name));
                }
            }

            foreach (ConfigNode node in GameDatabase.Instance.GetConfigNodes(rsasPresetNodeName))
            {
                if (ReferenceEquals(node, null))
                {
                    continue;
                }

                List <double[]> gains = new List <double[]>();
                gains.Add(controllerSASGains(node.GetNode(elevCtrlr), SASList.Pitch));
                gains.Add(controllerSASGains(node.GetNode(aileronCtrlr), SASList.Bank));
                gains.Add(controllerSASGains(node.GetNode(rudderCtrlr), SASList.Hdg));

                string name = node.GetValue("name");
                if (name == RSASDefaultName)
                {
                    RSASDefault = new RSASPreset(gains, name);
                }
                else if (!instance.RSASPresetList.Any(p => p.name == name))
                {
                    instance.RSASPresetList.Add(new RSASPreset(gains, name));
                }
            }

            foreach (ConfigNode node in GameDatabase.Instance.GetConfigNodes(craftPresetNodeName))
            {
                if (ReferenceEquals(node, null) || instance.craftPresetDict.ContainsKey(node.GetValue("name")))
                {
                    continue;
                }

                string name = node.GetValue("name");
                if (name == craftDefaultName)
                {
                    instance.craftPresetDict.Add(craftDefaultName, new CraftPreset(craftDefaultName, asstDefault, SSASDefault, SASDefault, RSASDefault));
                }
                else
                {
                    CraftPreset cP = new CraftPreset(name,
                                                     instance.AsstPresetList.FirstOrDefault(p => p.name == node.GetValue(craftAsstKey)),
                                                     instance.SSASPresetList.FirstOrDefault(p => p.name == node.GetValue(craftSSASKey)),
                                                     instance.SASPresetList.FirstOrDefault(p => p.name == node.GetValue(craftSASKey)),
                                                     instance.RSASPresetList.FirstOrDefault(p => p.name == node.GetValue(craftRSASKey)));

                    instance.craftPresetDict.Add(cP.Name, cP);
                }
            }
        }
Ejemplo n.º 18
0
 public static void updateCraftPreset(SASPreset p, Vessel v)
 {
     initCraftPreset(v);
     Instance.craftPresetDict[v.vesselName].SASPreset = p;
 }
Ejemplo n.º 19
0
        public static ConfigNode SASPresetNode(SASPreset preset)
        {
            ConfigNode node = new ConfigNode(sasPresetNodeName);
            node.AddValue("name", preset.name);
            node.AddNode(PIDnode(aileronCtrlr, (int)SASList.Bank, preset));
            node.AddNode(PIDnode(rudderCtrlr, (int)SASList.Hdg, preset));
            node.AddNode(PIDnode(elevCtrlr, (int)SASList.Pitch, preset));

            return node;
        }
Ejemplo n.º 20
0
        public static void loadPresetsFromFile()
        {
            AsstPreset asst = null;
            SASPreset  SSAS = null, stock = null;

            foreach (ConfigNode node in GameDatabase.Instance.GetConfigNodes(asstPreset))
            {
                if (node == null)
                {
                    continue;
                }

                List <double[]> gains = new List <double[]>();
                gains.Add(controllerGains(node.GetNode(hdgCtrlr), PIDList.HdgBank));
                gains.Add(controllerGains(node.GetNode(yawCtrlr), PIDList.HdgYaw));
                gains.Add(controllerGains(node.GetNode(aileronCtrlr), PIDList.Aileron));
                gains.Add(controllerGains(node.GetNode(rudderCtrlr), PIDList.Rudder));
                gains.Add(controllerGains(node.GetNode(altCtrlr), PIDList.Altitude));
                gains.Add(controllerGains(node.GetNode(vertCtrlr), PIDList.VertSpeed));
                gains.Add(controllerGains(node.GetNode(elevCtrlr), PIDList.Elevator));
                gains.Add(controllerGains(node.GetNode(throttleCtrlr), PIDList.Throttle));

                if (node.GetValue("name") != craftDefault && !instance.PAPresetList.Any(p => p.name == node.GetValue("name")))
                {
                    instance.PAPresetList.Add(new AsstPreset(gains, node.GetValue("name")));
                }
                else if (node.GetValue("name") == asstDefault)
                {
                    asst = new AsstPreset(gains, node.GetValue("name"));
                }
            }

            foreach (ConfigNode node in GameDatabase.Instance.GetConfigNodes(sasPreset))
            {
                if (node == null)
                {
                    continue;
                }

                List <double[]> gains = new List <double[]>();
                gains.Add(controllerSASGains(node.GetNode(elevCtrlr), SASList.Pitch));
                gains.Add(controllerSASGains(node.GetNode(aileronCtrlr), SASList.Roll));
                gains.Add(controllerSASGains(node.GetNode(rudderCtrlr), SASList.Yaw));

                if ((node.GetValue("name") != ssasDefault && node.GetValue("name") != stockDefault) && !instance.SASPresetList.Any(p => p.name == node.GetValue("name")))
                {
                    instance.SASPresetList.Add(new SASPreset(gains, node.GetValue("name"), bool.Parse(node.GetValue("stock"))));
                }
                else
                {
                    if (node.GetValue("name") == ssasDefault)
                    {
                        SSAS = new SASPreset(gains, node.GetValue("name"), false);
                    }
                    else if (node.GetValue("name") == stockDefault)
                    {
                        stock = new SASPreset(gains, node.GetValue("name"), true);
                    }
                }
            }

            foreach (ConfigNode node in GameDatabase.Instance.GetConfigNodes(craftPreset))
            {
                if (node == null || instance.craftPresetList.ContainsKey(node.GetValue("name")))
                {
                    continue;
                }

                bool bStock;
                bool.TryParse(node.GetValue(craftSasMode), out bStock);

                if (node.GetValue("name") == craftDefault)
                {
                    instance.craftPresetList.Add(craftDefault, new CraftPreset(craftDefault, asst, SSAS, stock, bStock));
                }
                else
                {
                    CraftPreset cP = new CraftPreset(node.GetValue("name"),
                                                     instance.PAPresetList.FirstOrDefault(p => p.name == node.GetValue(craftAsst)),
                                                     instance.SASPresetList.FirstOrDefault(p => p.name == node.GetValue(craftSSAS)),
                                                     instance.SASPresetList.FirstOrDefault(p => p.name == node.GetValue(craftStock)),
                                                     bStock);

                    instance.craftPresetList.Add(cP.Name, cP);
                }
            }
        }
Ejemplo n.º 21
0
        public static void deleteSASPreset(SASPreset p)
        {
            GeneralUI.postMessage("Deleted preset " + p.name);
            if (Instance.activeSASPreset == p)
                Instance.activeSASPreset = null;
            Instance.SASPresetList.Remove(p);

            foreach (KeyValuePair<string, CraftPreset> cp in instance.craftPresetDict)
            {
                if (!ReferenceEquals(cp.Value, null) && cp.Value.SASPreset == p)
                    cp.Value.SASPreset = null;
            }
            p = null;
            saveToFile();
        }