示例#1
0
        protected override AdventureData ParseXml(XmlDocument doc)
        {
            XmlElement element     = doc.DocumentElement,
                       descriptor  = (XmlElement)element.SelectSingleNode("/game-descriptor"),
                       title       = (XmlElement)descriptor.SelectSingleNode("title"),
                       description = (XmlElement)descriptor.SelectSingleNode("description");

            // Basic attributes
            content.setVersionNumber(ExString.Default(descriptor.GetAttribute("versionNumber"), "0"));
            content.setTitle(title.InnerText ?? "");
            content.setDescription(description.InnerText ?? "");

            // Sub nodes
            XmlElement configuration    = (XmlElement)descriptor.SelectSingleNode("configuration"),
                       contents         = (XmlElement)descriptor.SelectSingleNode("contents"),
                       extensionObjects = (XmlElement)descriptor.SelectSingleNode("extension-objects");

            ParseConfiguration(content, configuration, incidences);
            ParseContents(content, contents, resourceManager, incidences);

            if (extensionObjects != null)
            {
                foreach (var el in extensionObjects.ChildNodes)
                {
                    object parsed = DOMParserUtility.DOMParse(el as XmlElement);
                    if (parsed != null)
                    {
                        var t = GroupableTypeAttribute.GetGroupType(parsed.GetType());
                        content.getObjects(t).Add(parsed);
                    }
                }
            }

            return(base.content);
        }
 private static void ParseContent(Chapter chapter, List <XmlNode> restNodes)
 {
     foreach (var el in restNodes)
     {
         object parsed = DOMParserUtility.DOMParse(el as XmlElement, chapter);
         if (parsed != null)
         {
             var t = GroupableTypeAttribute.GetGroupType(parsed.GetType());
             chapter.getObjects(t).Add(parsed);
         }
     }
 }
        public void deleteId(Type t, string id)
        {
            if (globalIdentifiers.ContainsKey(id))
            {
                globalIdentifiers.Remove(id);

                t = GroupableTypeAttribute.GetGroupType(t);

                if (typeGroups.ContainsKey(t) && typeGroups[t].Contains(id))
                {
                    typeGroups[t].Remove(id);
                }
            }
        }
        public void addId(System.Type t, string id)
        {
            if (!globalIdentifiers.ContainsKey(id))
            {
                globalIdentifiers.Add(id, t);
            }

            t = GroupableTypeAttribute.GetGroupType(t);

            if (!typeGroups.ContainsKey(t))
            {
                typeGroups.Add(t, new List <string>());
            }

            if (!typeGroups [t].Contains(id))
            {
                typeGroups[t].Add(id);
            }
        }