/// <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"); }
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"); } } }