示例#1
0
        /// <summary>
        /// this saves the pointer references to thier configfiles.
        /// </summary>
        /// <param name="pathname"></param>
        internal static void SaveInstanceByCfg(string pathname)
        {
            if (string.IsNullOrEmpty(pathname))
            {
                Log.UserWarning("Trying to save a static insance with null configpath. ");
                return;
            }

            Log.Debug("Saving File: " + pathname);
            StaticInstance[] allInstances   = StaticDatabase.allStaticInstances.Where(instance => instance.configPath == pathname).ToArray();
            StaticInstance   firstInstance  = allInstances.First();
            ConfigNode       instanceConfig = null;

            ConfigNode staticNode = new ConfigNode("STATIC");

            if (firstInstance.configUrl == null) //this are newly spawned instances
            {
                instanceConfig = new ConfigNode("STATIC");
                instanceConfig.AddValue("pointername", firstInstance.model.name);
            }
            else
            {
                //instanceConfig = GameDatabase.Instance.GetConfigNode(firstInstance.configUrl.url);
                //instanceConfig.RemoveNodes("Instances");
                //instanceConfig.RemoveValues();
                instanceConfig = new ConfigNode("STATIC");
                instanceConfig.AddValue("pointername", firstInstance.model.name);
            }

            staticNode.AddNode(instanceConfig);
            foreach (StaticInstance instance in allInstances)
            {
                ConfigNode inst = new ConfigNode("Instances");
                ConfigParser.WriteInstanceConfig(instance, inst);
                instanceConfig.nodes.Add(inst);
            }
            staticNode.Save(KSPUtil.ApplicationRootPath + "GameData/" + pathname, "Generated by Kerbal Konstructs");
        }
 internal void SaveConfig()
 {
     ConfigParser.SaveInstanceByCfg(configPath);
 }