Пример #1
0
        static ConfigNode orbit(Orbit orb)
        {
            var snap = new OrbitSnapshot(orb);
            var node = new ConfigNode();

            snap.Save(node);
            return(node);
        }
Пример #2
0
 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;
		}