RemoteTech.FlightComputer.FlightComputer.Save C# (CSharp) Method

Save() public method

Saves all values for the flight computer to the persistent.
public Save ( ConfigNode n ) : void
n System.ConfigNode Node to save in
return void
        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);
        }