public void Save(ConfigNode n)
{
if (n.HasNode("FlightComputer"))
n.RemoveNode("FlightComputer");
var activeCommands = new ConfigNode("ActiveCommands");
var commands = new ConfigNode("Commands");
// save active commands
foreach (var cmd in _activeCommands)
{
// Save each active command on his own node
var activeCommandNode = new ConfigNode(cmd.Value.GetType().Name);
cmd.Value.Save(activeCommandNode, this);
activeCommands.AddNode(activeCommandNode);
}
// save commands
foreach (var cmd in _commandQueue)
{
// Save each command on his own node
var commandNode = new ConfigNode(cmd.GetType().Name);
cmd.Save(commandNode, this);
commands.AddNode(commandNode);
}
var flightNode = new ConfigNode("FlightComputer");
flightNode.AddValue("TotalDelay", TotalDelay);
flightNode.AddNode(activeCommands);
flightNode.AddNode(commands);
n.AddNode(flightNode);
}