protected override void OnLoad(ConfigNode configNode) { foreach (string node in map.Keys) { foreach (ConfigNode child in ConfigNodeUtil.GetChildNodes(configNode, node)) { foreach (ConfigNode.Value pair in child.values) { ExpVal expVal = new ExpVal(pair.name, pair.value); if (factory != null) { ConfigNodeUtil.ParseValue <string>(child, pair.name, x => expVal.val = x, factory); } // Parse the expression to validate parser.ParseExpression(pair.name, expVal.val, dataNode); // Store it for later map[node].Add(expVal); } } } foreach (ConfigNode child in ConfigNodeUtil.GetChildNodes(configNode, "PARAMETER_COMPLETED")) { string parameter = ConfigNodeUtil.ParseValue <string>(child, "parameter"); foreach (ConfigNode.Value pair in child.values) { if (pair.name != "parameter") { ExpVal expVal = new ExpVal(pair.name, pair.value); if (factory != null) { ConfigNodeUtil.ParseValue <string>(child, pair.name, x => expVal.val = x, factory); } // Parse the expression to validate parser.ParseExpression(pair.name, expVal.val, dataNode); // Store it for later if (!onParameterComplete.ContainsKey(parameter)) { onParameterComplete[parameter] = new List <ExpVal>(); } onParameterComplete[parameter].Add(expVal); } } } }
protected override void OnLoad(ConfigNode configNode) { foreach (string node in map.Keys.Union(new string[] { "PARAMETER_COMPLETED" })) { foreach (ConfigNode child in ConfigNodeUtil.GetChildNodes(configNode, node)) { string parameter = ConfigNodeUtil.ParseValue <string>(child, "parameter", ""); Type type = ConfigNodeUtil.ParseValue <Type>(child, "type", typeof(double)); foreach (ConfigNode.Value pair in child.values) { if (pair.name != "parameter" && pair.name != "type" && !string.IsNullOrEmpty(pair.value)) { ExpVal expVal = new ExpVal(type, pair.name, pair.value); if (factory != null) { ConfigNodeUtil.ParseValue <string>(child, pair.name, x => expVal.val = x, factory, s => { // Parse the expression to validate BaseParser parser = BaseParser.NewParser(expVal.type); parser.ParseExpressionGeneric(pair.name, s, dataNode); return(true); }); } else { // Parse the expression to validate BaseParser parser = BaseParser.NewParser(expVal.type); parser.ParseExpressionGeneric(pair.name, expVal.val, dataNode); } // Store it for later if (child.name == "PARAMETER_COMPLETED") { if (!onParameterComplete.ContainsKey(parameter)) { onParameterComplete[parameter] = new List <ExpVal>(); } onParameterComplete[parameter].Add(expVal); } else { map[node].Add(expVal); } } } } } }
protected override void OnLoad(ConfigNode configNode) { foreach (string node in map.Keys.Union(new string[] {"PARAMETER_COMPLETED"})) { foreach (ConfigNode child in ConfigNodeUtil.GetChildNodes(configNode, node)) { string parameter = ConfigNodeUtil.ParseValue<string>(child, "parameter", ""); Type type = ConfigNodeUtil.ParseValue<Type>(child, "type", typeof(double)); foreach (ConfigNode.Value pair in child.values) { if (pair.name != "parameter" && pair.name != "type") { ExpVal expVal = new ExpVal(type, pair.name, pair.value); if (factory != null) { ConfigNodeUtil.ParseValue<string>(child, pair.name, x => expVal.val = x, factory); } // Parse the expression to validate BaseParser parser = BaseParser.NewParser(expVal.type); parser.ParseExpressionGeneric(pair.name, expVal.val, dataNode); // Store it for later if (child.name == "PARAMETER_COMPLETED") { if (!onParameterComplete.ContainsKey(parameter)) { onParameterComplete[parameter] = new List<ExpVal>(); } onParameterComplete[parameter].Add(expVal); } else { map[node].Add(expVal); } } } } } }
protected override void OnLoad(ConfigNode configNode) { foreach (string node in map.Keys.Union(new string[] {"PARAMETER_COMPLETED"})) { foreach (ConfigNode child in ConfigNodeUtil.GetChildNodes(configNode, node)) { string parameter = ConfigNodeUtil.ParseValue<string>(child, "parameter", ""); Type type = ConfigNodeUtil.ParseValue<Type>(child, "type", typeof(double)); foreach (ConfigNode.Value pair in child.values) { if (pair.name != "parameter" && pair.name != "type") { ExpVal expVal = new ExpVal(type, pair.name, pair.value); if (factory != null) { ConfigNodeUtil.ParseValue<string>(child, pair.name, x => expVal.val = x, factory, s => { // Parse the expression to validate BaseParser parser = BaseParser.NewParser(expVal.type); parser.ParseExpressionGeneric(pair.name, expVal.val, dataNode); return true; }); } else { // Horrible workaround for bugged saves caused by issue in 1.9.3 - remove in a future version if (expVal.val.Contains("@Tourism:touristCount")) { expVal.val = expVal.val.Replace("@Tourism:touristCount", "3"); } // Parse the expression to validate BaseParser parser = BaseParser.NewParser(expVal.type); parser.ParseExpressionGeneric(pair.name, expVal.val, dataNode); } // Store it for later if (child.name == "PARAMETER_COMPLETED") { if (!onParameterComplete.ContainsKey(parameter)) { onParameterComplete[parameter] = new List<ExpVal>(); } onParameterComplete[parameter].Add(expVal); } else { map[node].Add(expVal); } } } } } }