5 using System.Collections.Generic;
14 public string Name {
get;
private set;}
18 public int Margin {
get;
private set;}
22 public TmxList<TmxTerrain>
Terrains {
get;
private set;}
23 public List<TmxTilesetTile>
Tiles {
get;
private set;}
28 this(xDoc.Element(
"tileset"), tmxDir) { }
33 var xFirstGid = xTileset.Attribute(
"firstgid");
34 var source = (string)xTileset.Attribute(
"source");
39 source = Path.Combine(tmxDir, source);
45 var xDocTileset =
ReadXml(source);
62 if (xFirstGid != null)
65 Name = (string)xTileset.Attribute(
"name");
66 TileWidth = (int)xTileset.Attribute(
"tilewidth");
67 TileHeight = (int)xTileset.Attribute(
"tileheight");
68 Spacing = (
int?)xTileset.Attribute(
"spacing") ?? 0;
69 Margin = (
int?)xTileset.Attribute(
"margin") ?? 0;
74 Terrains =
new TmxList<TmxTerrain>();
75 var xTerrainType = xTileset.Element(
"terraintypes");
76 if (xTerrainType != null) {
77 foreach (var e
in xTerrainType.Elements(
"terrain"))
81 Tiles =
new List<TmxTilesetTile>();
82 foreach (var xTile
in xTileset.Elements(
"tile"))
95 public int X {
get;
private set;}
96 public int Y {
get;
private set;}
100 if (xTileOffset == null) {
104 X = (int)xTileOffset.Attribute(
"x");
105 Y = (int)xTileOffset.Attribute(
"y");
112 public string Name {
get;
private set;}
113 public int Tile {
get;
private set;}
119 Name = (string)xTerrain.Attribute(
"name");
120 Tile = (int)xTerrain.Attribute(
"tile");
127 public int Id {
get;
private set;}
153 Id = (int)xTile.Attribute(
"id");
160 var strTerrain = (string)xTile.Attribute(
"terrain") ??
",,,";
161 foreach (var v
in strTerrain.Split(
',')) {
162 var success = int.TryParse(v, out result);
164 edge = Terrains[result];
167 TerrainEdges.Add(edge);
170 Probability = (
double?)xTile.Attribute(
"probability") ?? 1.0;
Terrain tile information.
PropertyDict Properties
User-defined tile properties.
TmxTerrain(XElement xTerrain)
Terrain constructor.
string TmxDirectory
Parent directory of TMX file.
List< TmxTerrain > TerrainEdges
Active terrain generation corners.
TmxList< TmxTerrain > Terrains
Terrain generation definitions.
int Spacing
The pixel spacing between tiles (excluding the margin)
int X
X (rightward) tile offset.
TmxImage Image
Tileset image source.
PropertyDict Properties
User-defined tileset properties.
XDocument ReadXml(string filepath)
Parse XML content of TMX file.
Pixel offset when drawing a tile from a related tileset.
int Y
Y (downward) tile offset.
int FirstGid
The global ID of the first tile in the tileset.
TmxTerrain TopLeft
Top-left terrain generation.
Tiled terrain generation tool.
int TileHeight
The (maximum) pixel height of the tiles.
double Probability
Terrain selection probability.
int Tile
Local ID of tile used to represent the terrain.
TmxTileOffset(XElement xTileOffset)
Tile offset constructor.
PropertyDict Properties
User-defiend terrain properties.
TmxTileset(XDocument xDoc, string tmxDir)
Tileset constructor for external TSX file.
TmxTerrain BottomRight
Bottom-right terrain generation.
string Name
Name of the tileset.
TmxTileset(XElement xTileset, string tmxDir="")
Tileset constructor for TMX source element.
TmxTilesetTile(XElement xTile, TmxList< TmxTerrain > Terrains, string tmxDir="")
Terrain tile constructor.
TmxTerrain TopRight
Top-right terrain generation.
List< TmxTilesetTile > Tiles
Terrain generation tiles.
int TileWidth
The (maximum) pixel width of the tiles.
TmxTerrain BottomLeft
Bottom-left terrain generation.
TmxImage Image
External tile image reference.
User-defined property list.
TmxTileOffset TileOffset
Pixel offset when drawing a tile from a related tileset.
int Margin
The pixel margin (or border) of the tileset.