// Vehicle Families

        internal static List <VehicleFamily> LoadConfigurations()
        {
            LoadRootNode();
            List <VehicleFamily> allFamilies = new List <VehicleFamily>();

            try
            {
                if (rootNode != null && rootNode.HasNode(node_families))
                {
                    foreach (var familyNode in rootNode.GetNode(node_families).GetNodes(node_family))
                    {
                        VehicleFamily g = new VehicleFamily(familyNode.GetValue(key_familyName));

                        foreach (var vehicleNode in familyNode.GetNodes(node_vehicle))
                        {
                            string subId = vehicleNode.GetValue(key_subName);
                            string vName = vehicleNode.GetValue(key_vehicleName);
                            double vMass = double.Parse(vehicleNode.GetValue(key_vehicleMass));
                            string vNote = vehicleNode.GetValue(key_vehicleNote);

                            Vehicle v = new Vehicle(subId, vName, vMass, vNote);

                            foreach (var launchConfigNode in vehicleNode.GetNodes(node_launchConfig))
                            {
                                Destination dest = KLVCore.GetDestination(int.Parse(launchConfigNode.GetValue(node_destination)));

                                if (dest != null)
                                {
                                    double payMass = double.Parse(launchConfigNode.GetValue(key_payloadMass));
                                    v.AddLaunchConfig(payMass, dest);
                                }
                            }
                            g.AddVehicle(v);
                        }
                        allFamilies.Add(g);
                    }
                }
            }
            catch (ArgumentNullException)
            {
                Debug.Log("[Kerbal Launch Vehicles] Failed to load Launch configs");
            }

            return(allFamilies);
        }
示例#2
0
 internal void SetParent(VehicleFamily _parent)
 {
     Parent = _parent;
 }