Exemplo n.º 1
0
        public override bool LoadFromConfig(ConfigNode configNode)
        {
            // Load base class
            bool valid = base.LoadFromConfig(configNode);

            // Check on active contracts too
            checkOnActiveContract = configNode.HasValue("checkOnActiveContract") ? checkOnActiveContract : true;

            valid &= ConfigNodeUtil.ParseValue <List <string> >(configNode, "tech", x => techs = x, this, new List <string>());

            if (configNode.HasValue("part"))
            {
                List <AvailablePart> parts = new List <AvailablePart>();
                valid &= ConfigNodeUtil.ParseValue <List <AvailablePart> >(configNode, "part", x => parts = x, this);

                foreach (AvailablePart part in parts)
                {
                    techs.AddUnique(part.TechRequired);
                }
            }

            valid &= ConfigNodeUtil.ParseValue <List <string> >(configNode, "partModule", x => partModules = x, this, new List <string>(), x => x.All(Validation.ValidatePartModule));
            valid &= ConfigNodeUtil.ParseValue <List <string> >(configNode, "partModuleType", x => partModuleTypes = x, this, new List <string>(), x => x.All(Validation.ValidatePartModuleType));

            valid &= ConfigNodeUtil.OnlyOne(configNode, new string[] { "tech", "part", "partModule", "partModuleType" }, this);

            return(valid);
        }