Exemple #1
0
            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);
            }