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); }
private TilesetXmlLoader() { this.m_Current = XmlLoadMode.Root; }
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; }
private TilesetXmlLoader() { this.m_Current = XmlLoadMode.Root; }