public override bool Load(ConfigNode configNode) { // Load base class bool valid = base.Load(configNode); IEnumerable <ConfigNode> nodes = ConfigNodeUtil.GetChildNodes(configNode, "RESOURCE"); if (configNode.HasValue("resource")) { nodes = nodes.Concat(new ConfigNode[] { configNode }); } foreach (ConfigNode childNode in nodes) { HasResource.Filter filter = new HasResource.Filter(); valid &= ConfigNodeUtil.ParseValue <double>(childNode, "minQuantity", x => filter.minQuantity = x, this, 0.01, x => Validation.GE(x, 0.0)); valid &= ConfigNodeUtil.ParseValue <double>(childNode, "maxQuantity", x => filter.maxQuantity = x, this, double.MaxValue, x => Validation.GE(x, 0.0)); valid &= ConfigNodeUtil.ParseValue <Resource>(childNode, "resource", x => filter.resource = x.res, this); filters.Add(filter); } return(valid); }
protected override void OnParameterLoad(ConfigNode node) { try { base.OnParameterLoad(node); capacity = ConfigNodeUtil.ParseValue <bool?>(node, "capacity", (bool?)false).Value; foreach (ConfigNode childNode in node.GetNodes("RESOURCE")) { HasResource.Filter filter = new HasResource.Filter(); filter.resource = ConfigNodeUtil.ParseValue <PartResourceDefinition>(childNode, "resource"); filter.minQuantity = ConfigNodeUtil.ParseValue <double>(childNode, "minQuantity"); filter.maxQuantity = ConfigNodeUtil.ParseValue <double>(childNode, "maxQuantity", double.MaxValue); filters.Add(filter); } // Legacy if (node.HasValue("resource")) { HasResource.Filter filter = new HasResource.Filter(); filter.resource = ConfigNodeUtil.ParseValue <PartResourceDefinition>(node, "resource"); filter.minQuantity = ConfigNodeUtil.ParseValue <double>(node, "minQuantity"); filter.maxQuantity = ConfigNodeUtil.ParseValue <double>(node, "maxQuantity", double.MaxValue); filters.Add(filter); } CreateDelegates(); } finally { ParameterDelegate <Part> .OnDelegateContainerLoad(node); } }