예제 #1
0
        public override void OnLoad(ConfigNode node)
        {
            base.OnLoad(node);
            if (userSettings != null)
            {
                userSettings.Load();
            }
            if (bodySettings != null)
            {
                bodySettings.Load();
            }

            InitDataStore();
            if (node.HasValue("saveData"))
            {
                rawSaveData = node.GetValue("saveData");
            }
            else
            {
                rawSaveData = "";
            }
            decodeRawSaveData();

            if (partData == null)
            {
                partData = new Dictionary <String, TestFlightPartData>();
            }
            else
            {
                partData.Clear();
            }
            // TODO: This old method of storing scope specific data is deprecated and needs to be removed in the next major release (Probably 1.4)
            if (node.HasNode("FLIGHTDATA_PART"))
            {
                foreach (ConfigNode partNode in node.GetNodes("FLIGHTDATA_PART"))
                {
                    PartFlightData partFlightData = new PartFlightData();
                    partFlightData.Load(partNode);

                    // migrates old data into new noscope layout
                    TestFlightPartData storedPartData = new TestFlightPartData();
                    storedPartData.PartName = partFlightData.GetPartName();
                    // Add up all the data and time from the old system for each scope, and then save that as the new migrated vales
                    double totalData = 0;
                    double totalTime = 0;
                    List <TestFlightData> allData = partFlightData.GetFlightData();
                    foreach (TestFlightData data in allData)
                    {
                        totalData += data.flightData;
                        totalTime += data.flightTime;
                    }
                    storedPartData.SetValue("flightData", totalData.ToString());
                    storedPartData.SetValue("flightTime", totalTime.ToString());
                    partData.Add(storedPartData.PartName, storedPartData);
                }
            }
            // new noscope
            if (node.HasNode("partData"))
            {
                foreach (ConfigNode partDataNode in node.GetNodes("partData"))
                {
                    TestFlightPartData storedPartData = new TestFlightPartData();
                    storedPartData.Load(partDataNode);
                    partData.Add(storedPartData.PartName, storedPartData);
                }
            }
        }
예제 #2
0
        public override void OnAwake()
        {
            Instance = this;
            if (userSettings == null)
            {
                userSettings = new UserSettings("../settings.cfg");
            }
            if (bodySettings == null)
            {
                bodySettings = new BodySettings("../settings_bodies.cfg");
            }

            if (userSettings.FileExists)
            {
                userSettings.Load();
            }
            else
            {
                userSettings.Save();
            }

            if (bodySettings.FileExists)
            {
                bodySettings.Load();
            }
            else
            {
                bodySettings.bodyAliases.Add("moho", "Moho");
                bodySettings.bodyAliases.Add("eve", "Eve");
                bodySettings.bodyAliases.Add("gilly", "Gilly");
                bodySettings.bodyAliases.Add("kerbin", "Kerbin");
                bodySettings.bodyAliases.Add("mun", "Mun");
                bodySettings.bodyAliases.Add("minmus", "Minmus");
                bodySettings.bodyAliases.Add("duna", "Duna");
                bodySettings.bodyAliases.Add("ike", "Ike");
                bodySettings.bodyAliases.Add("dres", "Dres");
                bodySettings.bodyAliases.Add("jool", "Jool");
                bodySettings.bodyAliases.Add("laythe", "Laythe");
                bodySettings.bodyAliases.Add("vall", "Vall");
                bodySettings.bodyAliases.Add("tylo", "Tylo");
                bodySettings.bodyAliases.Add("bop", "Bop");
                bodySettings.bodyAliases.Add("pol", "Pol");
                bodySettings.bodyAliases.Add("eeloo", "Eeloo");
                bodySettings.Save();
            }

            if (partsFlightData == null)
            {
                partsFlightData = new List <PartFlightData>();
                if (partsPackedStrings != null)
                {
                    foreach (string packedString in partsPackedStrings)
                    {
                        Log(packedString);
                        PartFlightData data = PartFlightData.FromString(packedString);
                        partsFlightData.Add(data);
                    }
                }
            }
            if (partsPackedStrings == null)
            {
                partsPackedStrings = new List <string>();
            }
            base.OnAwake();
        }