示例#1
0
        private Tileset LoadXml(string mode, string filename)
        {
            Tileset tileset = new Tileset();

            using (XmlReader reader = XmlReader.Create(filename))
            {
                while (reader.Read())
                {
                    switch (reader.NodeType)
                    {
                    case XmlNodeType.Element:
                        if (reader.Name.ToLower() == "level")
                        {
                            this.m_Current = XmlLoadMode.Root;
                        }
                        else if (reader.Name.ToLower() == mode.ToLower() + "solids")
                        {
                            this.m_Current = XmlLoadMode.Solids;
                        }
                        else if (reader.Name.ToLower() == mode.ToLower() + "tiles")
                        {
                            this.m_Current     = XmlLoadMode.Tiles;
                            this.m_TilesetType = reader.GetAttribute("tileset").ToLower();
                        }
                        else if (reader.Name.ToLower() == mode.ToLower() + "entities")
                        {
                            this.m_Current = XmlLoadMode.Entities;
                        }
                        else if (reader.Name.ToLower().EndsWith("solids") ||
                                 reader.Name.ToLower().EndsWith("tiles") ||
                                 reader.Name.ToLower().EndsWith("entities"))
                        {
                            this.m_Current = XmlLoadMode.Ignore;
                        }
                        else if (this.m_Current != XmlLoadMode.Ignore)
                        {
                            this.ProcessNode(reader, tileset);
                        }
                        break;

                    case XmlNodeType.EndElement:
                        if (reader.Name.ToLower() == "level" || reader.Name.ToLower() == mode.ToLower() + "solids" ||
                            reader.Name.ToLower() == mode.ToLower() + "tiles" || reader.Name.ToLower() == mode.ToLower() + "entities" ||
                            reader.Name.ToLower().EndsWith("solids") || reader.Name.ToLower().EndsWith("tiles") ||
                            reader.Name.ToLower().EndsWith("entities"))
                        {
                            this.m_Current = XmlLoadMode.Root;
                        }
                        break;
                    }
                }
            }
            return(tileset);
        }
示例#2
0
 private TilesetXmlLoader()
 {
     this.m_Current = XmlLoadMode.Root;
 }
示例#3
0
 private Tileset LoadXml(string mode, string filename)
 {
     Tileset tileset = new Tileset();
     using (XmlReader reader = XmlReader.Create(filename))
     {
         while (reader.Read())
         {
             switch (reader.NodeType)
             {
                 case XmlNodeType.Element:
                     if (reader.Name.ToLower() == "level")
                         this.m_Current = XmlLoadMode.Root;
                     else if (reader.Name.ToLower() == mode.ToLower() + "solids")
                         this.m_Current = XmlLoadMode.Solids;
                     else if (reader.Name.ToLower() == mode.ToLower() + "tiles")
                     {
                         this.m_Current = XmlLoadMode.Tiles;
                         this.m_TilesetType = reader.GetAttribute("tileset").ToLower();
                     } else if (reader.Name.ToLower() == mode.ToLower() + "entities")
                         this.m_Current = XmlLoadMode.Entities;
                     else if (reader.Name.ToLower().EndsWith("solids") ||
                         reader.Name.ToLower().EndsWith("tiles") ||
                         reader.Name.ToLower().EndsWith("entities"))
                         this.m_Current = XmlLoadMode.Ignore;
                     else if (this.m_Current != XmlLoadMode.Ignore)
                         this.ProcessNode(reader, tileset);
                     break;
                 case XmlNodeType.EndElement:
                     if (reader.Name.ToLower() == "level" || reader.Name.ToLower() == mode.ToLower() + "solids" ||
                         reader.Name.ToLower() == mode.ToLower() + "tiles" || reader.Name.ToLower() == mode.ToLower() + "entities" ||
                         reader.Name.ToLower().EndsWith("solids") || reader.Name.ToLower().EndsWith("tiles") ||
                         reader.Name.ToLower().EndsWith("entities"))
                         this.m_Current = XmlLoadMode.Root;
                     break;
             }
         }
     }
     return tileset;
 }
示例#4
0
 private TilesetXmlLoader()
 {
     this.m_Current = XmlLoadMode.Root;
 }