String SavePreset(String s) { ConfigNode rootNode; if (!File.Exists(KSPUtil.ApplicationRootPath + "GameData/AGpanel/PluginsData/Presets.txt")) { rootNode = new ConfigNode(); } else { rootNode = ConfigNode.Load(KSPUtil.ApplicationRootPath + "GameData/AGpanel/PluginsData/Presets.txt"); } if (rootNode.HasNode(s)) { ScreenMessages.PostScreenMessage("Preset " + s + " already exists!"); } else { ConfigNode preset = new ConfigNode(s); foreach (LabelRec rec in labelList) { preset.AddValue("AG" + rec.ActionGroup, rec.Serialise()); } rootNode.AddNode(preset); rootNode.Save(KSPUtil.ApplicationRootPath + "GameData/AGpanel/PluginsData/Presets.txt"); ScreenMessages.PostScreenMessage("Preset " + s + " Saved"); PopupDialog.ClearPopUps(); } // Using JSON. Not working really b/c JsonUtility has issues with Lists and Arrays both of which I need when Saving and Loading //Preset preset = new Preset(s, labelList); //try //{ // StreamWriter writer = new StreamWriter(KSPUtil.ApplicationRootPath + "GameData/AGpanel/PluginsData/Presets.json", true); // // writer.WriteLine(JsonUtility.ToJson(preset, true)); // writer.Close(); //} //catch (Exception exp) //{ // Debug.LogError(exp.Message); //} return(s); }