コード例 #1
0
        /// <summary>
        /// this saves the pointer references to thier configfiles.
        /// </summary>
        /// <param name="pathname"></param>
        internal static void SaveInstanceByCfg(string pathname)
        {
            Log.Normal("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/" + firstInstance.configPath, "Generated by Kerbal Konstructs");
        }
コード例 #2
0
        internal static void ExportAllGroups()
        {
            string           basePath     = KSPUtil.ApplicationRootPath + "GameData/KerbalKonstructs/ExportedInstances/" + exportTime;
            HashSet <string> parsedModels = new HashSet <string>();

            foreach (GroupCenter group in StaticDatabase.allGroupCenters)
            {
                parsedModels.Clear();

                if (!System.IO.Directory.Exists(basePath))
                {
                    System.IO.Directory.CreateDirectory(basePath);
                }

                if (!System.IO.Directory.Exists(basePath + group.Group))
                {
                    System.IO.Directory.CreateDirectory(basePath + group.Group);
                }

                if (!group.isBuiltIn)
                {
                    ConfigNode masterNode = new ConfigNode("");
                    ConfigNode childNode  = new ConfigNode("KK_GroupCenter");
                    group.WriteConfig(childNode);
                    masterNode.AddNode(childNode);
                    masterNode.Save(basePath + group.Group + "/" + group.Group + "_center.cfg", "Generated by Kerbal Konstructs");
                }
                foreach (StaticInstance instance in group.childInstances)
                {
                    if (parsedModels.Contains(instance.model.name))
                    {
                        continue;
                    }
                    parsedModels.Add(instance.model.name);
                    StaticInstance[] allInstances = group.childInstances.Where(inst => inst.model.name == instance.model.name).ToArray();

                    ConfigNode instanceConfig = null;
                    ConfigNode staticNode     = new ConfigNode("STATIC");

                    instanceConfig = new ConfigNode("STATIC");
                    instanceConfig.AddValue("pointername", instance.model.name);
                    staticNode.AddNode(instanceConfig);
                    foreach (StaticInstance modelInstance in allInstances)
                    {
                        ConfigNode inst = new ConfigNode("Instances");
                        ConfigParser.WriteInstanceConfig(modelInstance, inst);
                        instanceConfig.nodes.Add(inst);
                    }
                    staticNode.Save(basePath + group.Group + "/" + instance.model.name + ".cfg", "Generated by Kerbal Konstructs");
                }
            }
        }