private void Load(XmlElement tilesetElement) { Name = tilesetElement.GetAttribute("name"); TileSize = new Size(int.Parse(tilesetElement.GetAttribute("tilewidth")), int.Parse(tilesetElement.GetAttribute("tileheight"))); Spacing = tilesetElement.HasAttribute("spacing") ? float.Parse(tilesetElement.GetAttribute("spacing"), System.Globalization.CultureInfo.InvariantCulture) : 0f; Margin = tilesetElement.HasAttribute("margin") ? float.Parse(tilesetElement.GetAttribute("margin"), System.Globalization.CultureInfo.InvariantCulture) : 0f; Count = int.Parse(tilesetElement.GetAttribute("tilecount")); Columns = int.Parse(tilesetElement.GetAttribute("columns")); if (tilesetElement.HasAttribute("firstgid")) { FirstGid = int.Parse(tilesetElement.GetAttribute("firstgid")); } XmlElement e = tilesetElement["tileoffset"]; if (e != null) { Offset = new Vector2(float.Parse(e.GetAttribute("x"), System.Globalization.CultureInfo.InvariantCulture), float.Parse(e.GetAttribute("y"), System.Globalization.CultureInfo.InvariantCulture)); } e = tilesetElement["properties"]; if (e != null) { foreach (XmlElement propertyElement in e) { Properties.Add(propertyElement.GetAttribute("name"), new TiledProperty(propertyElement)); } } e = tilesetElement["image"]; if (e != null) { SpriteSheet = new TiledImage(Path, e); } e = tilesetElement["terraintypes"]; if (e != null) { foreach (XmlElement terrainTypeElement in e) { TerrainTypes.Add(new TiledTerrainType(terrainTypeElement)); } } foreach (XmlElement tileElement in tilesetElement.GetElementsByTagName("tile")) { Tiles.Add(uint.Parse(tileElement.GetAttribute("id")), new TiledTilesetTile(Path, tileElement)); } }
public TiledImageLayer(string tmxPath, XmlElement layerElement) { Name = layerElement.GetAttribute("name"); Opacity = layerElement.HasAttribute("opacity") ? float.Parse(layerElement.GetAttribute("opacity"), System.Globalization.CultureInfo.InvariantCulture) : 1f; Visible = layerElement.HasAttribute("visible") ? (int.Parse(layerElement.GetAttribute("visible")) != 0) : true; Offset = new Vector2(layerElement.HasAttribute("offsetx") ? float.Parse(layerElement.GetAttribute("offsetx"), System.Globalization.CultureInfo.InvariantCulture) : 0f, layerElement.HasAttribute("offsety") ? float.Parse(layerElement.GetAttribute("offsety"), System.Globalization.CultureInfo.InvariantCulture) : 0f); Properties = new Dictionary <string, TiledProperty>(); XmlElement e = layerElement["properties"]; if (e != null) { foreach (XmlElement propertyElement in e) { Properties.Add(propertyElement.GetAttribute("name"), new TiledProperty(propertyElement)); } } e = layerElement["image"]; if (e != null) { Image = new TiledImage(tmxPath, e); } }
public TiledTilesetTile(string tsxPath, XmlElement tileElement) { Properties = new Dictionary <string, TiledProperty>(); Id = int.Parse(tileElement.GetAttribute("id")); Probability = tileElement.HasAttribute("probability") ? float.Parse(tileElement.GetAttribute("probability"), System.Globalization.CultureInfo.InvariantCulture) : 1f; TerrainCorners = new int?[4] { null, null, null, null }; if (tileElement.HasAttribute("terrain")) { string[] terrainCorners = tileElement.GetAttribute("terrain").Split(','); if (terrainCorners[0].Length > 0) { TerrainTopLeftCorner = int.Parse(terrainCorners[0]); } if (terrainCorners[1].Length > 0) { TerrainTopRightCorner = int.Parse(terrainCorners[1]); } if (terrainCorners[2].Length > 0) { TerrainBottomLeftCorner = int.Parse(terrainCorners[2]); } if (terrainCorners[3].Length > 0) { TerrainBottomRightCorner = int.Parse(terrainCorners[3]); } } XmlElement e = tileElement["animation"]; if (e != null) { Animation = new TiledAnimation(e); } e = tileElement["objectgroup"]; if (e != null) { ObjectGroup = new TiledObjectGroup(e); } e = tileElement["image"]; if (e != null) { Image = new TiledImage(tsxPath, e); } e = tileElement["properties"]; if (e != null) { foreach (XmlElement propertyElement in e) { Properties.Add(propertyElement.GetAttribute("name"), new TiledProperty(propertyElement)); } } }