示例#1
0
        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);
        }
示例#2
0
        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);
        }