static ConfigNode orbit(Orbit orb) { var snap = new OrbitSnapshot(orb); var node = new ConfigNode(); snap.Save(node); return(node); }
virtual public void Save(ConfigNode node) { try { ConfigNode.CreateConfigFromObject(this, node); } catch (Exception e) { Utils.Log("Exception while saving {}\n{}\n{}\n{}", GetType().Name, e.Message, e.StackTrace, node); } foreach (var fi in get_fields()) { if (not_persistant(fi)) { continue; } //save all IConfigNode if (fi.FieldType.GetInterface(cnode_name) != null) { var f = fi.GetValue(this) as IConfigNode; if (f != null) { f.Save(get_field_node(fi, node)); } } //save ConfigNode else if (typeof(ConfigNode).IsAssignableFrom(fi.FieldType)) { var f = fi.GetValue(this) as ConfigNode; if (f != null) { get_field_node(fi, node).AddData(f); } } //save some often used types else if (fi.FieldType == typeof(Guid)) { node.AddValue(fi.Name, ((Guid)fi.GetValue(this)).ToString("N")); } else if (fi.FieldType == typeof(Vector3d)) { node.AddValue(fi.Name, KSPUtil.WriteVector((Vector3d)fi.GetValue(this))); } else if (fi.FieldType == typeof(Orbit)) { var f = fi.GetValue(this) as Orbit; if (f != null) { var obt = new OrbitSnapshot(f); obt.Save(get_field_node(fi, node)); } } } }
static ConfigNode orbit (Orbit orb) { var snap = new OrbitSnapshot (orb); var node = new ConfigNode (); snap.Save (node); return node; }