public static AutoCatHoursPlayed LoadFromXmlElement(XmlElement xElement) { string name = XmlUtil.GetStringFromNode(xElement[XmlName_Name], TypeIdString); string filter = XmlUtil.GetStringFromNode(xElement[XmlName_Filter], null); string prefix = XmlUtil.GetStringFromNode(xElement[XmlName_Prefix], string.Empty); bool includeUnknown = XmlUtil.GetBoolFromNode(xElement[XmlName_IncludeUnknown], false); XmlNodeList rulesNodeList = xElement.SelectNodes(XmlName_Rule); List <HoursPlayedRule> rules = new List <HoursPlayedRule>(); if (rulesNodeList != null) { foreach (XmlNode node in rulesNodeList) { string ruleName = XmlUtil.GetStringFromNode(node[XmlName_Rule_Text], string.Empty); float ruleMin = XmlUtil.GetFloatFromNode(node[XmlName_Rule_MinHours], 0); float ruleMax = XmlUtil.GetFloatFromNode(node[XmlName_Rule_MaxHours], 0); rules.Add(new HoursPlayedRule(ruleName, ruleMin, ruleMax)); } } AutoCatHoursPlayed result = new AutoCatHoursPlayed(name, filter, prefix, includeUnknown) { Rules = rules }; return(result); }
public static AutoCatHltb LoadFromXmlElement(XmlElement xElement) { string name = XmlUtil.GetStringFromNode(xElement[XmlName_Name], TypeIdString); string filter = XmlUtil.GetStringFromNode(xElement[XmlName_Filter], null); string prefix = XmlUtil.GetStringFromNode(xElement[XmlName_Prefix], string.Empty); bool includeUnknown = XmlUtil.GetBoolFromNode(xElement[XmlName_IncludeUnknown], false); string unknownText = XmlUtil.GetStringFromNode(xElement[XmlName_UnknownText], string.Empty); XmlNodeList rulesNodeList = xElement.SelectNodes(XmlName_Rule); List <HowLongToBeatRule> rules = new List <HowLongToBeatRule>(); if (rulesNodeList != null) { foreach (XmlNode node in rulesNodeList) { string ruleName = XmlUtil.GetStringFromNode(node[XmlName_Rule_Text], string.Empty); float ruleMin = XmlUtil.GetFloatFromNode(node[XmlName_Rule_MinHours], 0); float ruleMax = XmlUtil.GetFloatFromNode(node[XmlName_Rule_MaxHours], 0); string type = XmlUtil.GetStringFromNode(node[XmlName_Rule_TimeType], string.Empty); TimeType ruleTimeType; switch (type) { case "Extras": ruleTimeType = TimeType.Extras; break; case "Completionist": ruleTimeType = TimeType.Completionist; break; default: ruleTimeType = TimeType.Main; break; } rules.Add(new HowLongToBeatRule(ruleName, ruleMin, ruleMax, ruleTimeType)); } } AutoCatHltb result = new AutoCatHltb(name, filter, prefix, includeUnknown, unknownText) { Rules = rules }; return(result); }