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); } } }
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(); }