public TmxTileset(XMLReader xTileset) { FirstGid = xTileset.AttributeInt("firstgid"); Name = xTileset.Attribute("name"); TileWidth = xTileset.AttributeInt("tilewidth"); TileHeight = xTileset.AttributeInt("tileheight"); Spacing = xTileset.AttributeIntN("spacing") ?? 0; Margin = xTileset.AttributeInt("margin"); Columns = xTileset.AttributeIntN("columns"); TileCount = xTileset.AttributeIntN("tilecount"); TileOffset = TmxHelpers.GetVector2(xTileset.Element("tileoffset")); XMLReader image = xTileset.Element("image"); if (image != null) { Source = image.Attribute("source"); } Terrains = new TmxList <TmxTerrain>(); XMLReader xTerrainType = xTileset.Element("terraintypes"); if (xTerrainType != null) { foreach (XMLReader e in xTerrainType.Elements("terrain")) { Terrains.Add(new TmxTerrain(e)); } } Tiles = new Dictionary <int, TmxTilesetTile>(); foreach (XMLReader xTile in xTileset.Elements("tile")) { var tile = new TmxTilesetTile(xTile, Terrains); Tiles[tile.Id] = tile; } Properties = TmxHelpers.GetPropertyDict(xTileset.Element("properties")); }
public TmxText(XMLReader xText) { FontFamily = xText.Attribute("fontfamily") ?? "sans-serif"; PixelSize = xText.AttributeIntN("pixelsize") ?? 16; Wrap = xText.AttributeBool("wrap"); Color = TmxHelpers.ParseTmxColor(xText.Attribute("color")); Bold = xText.AttributeBool("bold"); Italic = xText.AttributeBool("italic"); Underline = xText.AttributeBool("underline"); Strikeout = xText.AttributeBool("strikeout"); Kerning = xText.AttributeBoolN("kerning") ?? true; Alignment = new TmxAlignment(xText.Attribute("halign"), xText.Attribute("valign")); Value = xText.CurrentContents(); }
public TmxMap(XMLReader reader) { XMLReader xMap = reader.Element("map"); Version = xMap.Attribute("version"); TiledVersion = xMap.Attribute("tiledversion"); Width = xMap.AttributeInt("width"); Height = xMap.AttributeInt("height"); TileWidth = xMap.AttributeInt("tilewidth"); TileHeight = xMap.AttributeInt("tileheight"); HexSideLength = xMap.AttributeIntN("hexsidelength"); Orientation = xMap.AttributeEnum <Orientation>("orientation"); StaggerAxis = xMap.AttributeEnum <StaggerAxis>("staggeraxis"); StaggerIndex = xMap.AttributeEnum <StaggerIndex>("staggerindex"); RenderOrder = xMap.AttributeEnum <RenderOrder>("renderorder"); NextObjectId = xMap.AttributeIntN("nextobjectid"); BackgroundColor = TmxHelpers.ParseTmxColor(xMap.Attribute("backgroundcolor")); Properties = TmxHelpers.GetPropertyDict(xMap.Element("properties")); Tilesets = new TmxList <TmxTileset>(); foreach (XMLReader e in xMap.Elements("tileset")) { Tilesets.Add(new TmxTileset(e)); } Layers = new TmxList <TmxLayer>(); TileLayers = new TmxList <TmxLayer>(); ObjectLayers = new TmxList <TmxObjectLayer>(); ImageLayers = new TmxList <TmxImageLayer>(); Groups = new TmxList <TmxGroupedLayers>(); foreach (XMLReader e in xMap.Elements().Where(x => x.Name == "layer" || x.Name == "objectgroup" || x.Name == "imagelayer" || x.Name == "group")) { TmxLayer layer; switch (e.Name) { case "layer": var tileLayer = new TmxLayer(e, Width, Height); layer = tileLayer; TileLayers.Add(tileLayer); break; case "objectgroup": var objectLayer = new TmxObjectLayer(e); layer = objectLayer; ObjectLayers.Add(objectLayer); break; case "imagelayer": var imageLayer = new TmxImageLayer(e); layer = imageLayer; ImageLayers.Add(imageLayer); break; case "group": var group = new TmxGroupedLayers(e, Width, Height); layer = group; Groups.Add(group); break; default: Engine.Log.Warning($"Unknown TMX layer type {e.Name}.", MessageSource.TMX); continue; } Layers.Add(layer); } }