-
Notifications
You must be signed in to change notification settings - Fork 3
/
Character.cs
83 lines (77 loc) · 3.37 KB
/
Character.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml;
using System.Windows.Forms;
namespace SpaceEditor
{
class Character : EntityBase
{
public string parent = ""; //either 'sector' or entity id of the cockpit this character is controlling
public string CharacterModel = "";
public string Inventory = ""; //we don't parse this yet
public string Battery = ""; //nor this
public string LightEnabled = ""; //true or false
public string JetpackMode = "";
public string UsingLadder = "";
public coord HeadAngle = new coord();
public coord LinearVelocity = new coord();
public string AutoenableJetPackDelay = "0";
public void loadFromXML(XmlNode node, string parent)
{
base.loadFromXML(node);
Console.WriteLine("loading character");
this.parent = parent;
Console.WriteLine("set parent");
this.displayType = "Character";
this.actualType = "Character";
Console.WriteLine("set types");
CharacterModel = node.SelectSingleNode("CharacterModel").InnerText;
Console.WriteLine("got model");
Inventory = node.SelectSingleNode("Inventory").InnerXml;
Console.WriteLine("got inventory");
Battery = node.SelectSingleNode("Battery").InnerXml;
Console.WriteLine("got battery");
LightEnabled = node.SelectSingleNode("LightEnabled").InnerText;
Console.WriteLine("got light");
JetpackMode = node.SelectSingleNode("JetpackMode").InnerText;
Console.WriteLine("got jetpackmode");
//UsingLadder = node.SelectSingleNode("UsingLadder").Attributes.GetNamedItem("xsi:nil").Value;
HeadAngle.loadFromXML(node.SelectSingleNode("HeadAngle"));
LinearVelocity.loadFromXML(node.SelectSingleNode("LinearVelocity"));
AutoenableJetPackDelay = node.SelectSingleNode("AutoenableJetpackDelay").InnerText;
Console.WriteLine("Character Loaded");
}
public TreeNode getTreeNode()
{
TreeNode node = base.getTreeNode();
node.Nodes.Add("[parent] " + parent);
node.Nodes.Add("[CharacterModel] " + CharacterModel);
return node;
}
public string getXML()
{
string xml = "";
if (parent == "sector")
xml += "<MyObjectBuilder_EntityBase xsi:type=\"MyObjectBuilder_Character\">\r\n";
else
xml += "<Pilot>\r\n";
xml += base.getXML();
xml += "<CharacterModel>" + CharacterModel + "</CharacterModel>\r\n";
xml += "<Inventory>" + Inventory + "</Inventory>\r\n";
xml += "<Battery>" + Battery + "</Battery>\r\n";
xml += "<LightEnabled>" + LightEnabled + "</LightEnabled>\r\n";
xml += "<JetpackMode>" + JetpackMode + "</JetpackMode>\r\n";
xml += "<UsingLadder xsi:nil=\"true\" />\r\n";
xml += HeadAngle.getXML("HeadAngle");
xml += LinearVelocity.getXML("LinearVelocity");
if (parent == "sector")
xml += "</MyObjectBuilder_EntityBase>\r\n";
else
xml += "</Pilot>\r\n";
return xml;
}
}
}