private List <FomodPattern> GetMatchingPatterns(FomodFlag flag) { List <FomodPattern> results = new List <FomodPattern>(); foreach (FomodPattern pattern in Patterns) { if (pattern.Dependencies != null) { foreach (FomodFlagDependency dependency in pattern.Dependencies) { if (flag.Matches(dependency)) { results.Add(pattern); } } } } return(results); }
public FomodPlugin(XmlNode node) { XmlAttribute nameAttribute = node.Attributes["name"]; if (nameAttribute != null) { Name = nameAttribute.Value; } GetVisibleNode(node); XmlNode groupNode = node.ParentNode.ParentNode; if (groupNode != null) { // parse group information for determining whether or not the mod option is default XmlAttribute typeAttribute = groupNode.Attributes["type"]; if (typeAttribute != null) { GroupType = typeAttribute.Value; } SiblingCount = node.ParentNode.ChildNodes.Count - 1; // append group name to plugin name nameAttribute = groupNode.Attributes["name"]; if (nameAttribute != null) { Name = nameAttribute.Value + " - " + Name; } } XmlNode filesNode = node["files"]; Files = (filesNode == null) ? new List <FomodFile>() : FomodFile.FromNodes(filesNode.ChildNodes); XmlNode flagsNode = node["conditionFlags"]; Flags = (flagsNode == null) ? new List <FomodFlag>() : FomodFlag.FromNodes(flagsNode.ChildNodes); }