public TmxMap(string filename) { XDocument xDoc = ReadXml(filename); var xMap = xDoc.Element("map"); Version = (string)xMap.Attribute("version"); Orientation = (OrientationType) Enum.Parse( typeof(OrientationType), xMap.Attribute("orientation").Value, true); Width = (int)xMap.Attribute("width"); Height = (int)xMap.Attribute("height"); TileWidth = (int)xMap.Attribute("tilewidth"); TileHeight = (int)xMap.Attribute("tileheight"); BackgroundColor = new TmxColor(xMap.Attribute("backgroundcolor")); Tilesets = new TmxList<TmxTileset>(); foreach (var e in xMap.Elements("tileset")) Tilesets.Add(new TmxTileset(e, TmxDirectory)); Layers = new TmxList<TmxLayer>(); foreach (var e in xMap.Elements("layer")) Layers.Add(new TmxLayer(e, Width, Height)); ObjectGroups = new TmxList<TmxObjectGroup>(); foreach (var e in xMap.Elements("objectgroup")) ObjectGroups.Add(new TmxObjectGroup(e)); ImageLayers = new TmxList<TmxImageLayer>(); foreach (var e in xMap.Elements("imagelayer")) ImageLayers.Add(new TmxImageLayer(e, TmxDirectory)); Properties = new PropertyDict(xMap.Element("properties")); }
public TmxObjectGroup(XElement xObjectGroup) { Name = (string) xObjectGroup.Attribute("name") ?? String.Empty; Color = new TmxColor(xObjectGroup.Attribute("color")); Opacity = (double?) xObjectGroup.Attribute("opacity") ?? 1.0; Visible = (bool?) xObjectGroup.Attribute("visible") ?? true; OffsetX = (double?) xObjectGroup.Attribute("offsetx") ?? 0.0; OffsetY = (double?) xObjectGroup.Attribute("offsety") ?? 0.0; var drawOrderDict = new Dictionary<string, DrawOrderType> { {"unknown", DrawOrderType.UnknownOrder}, {"topdown", DrawOrderType.IndexOrder}, {"index", DrawOrderType.TopDown} }; var drawOrderValue = (string) xObjectGroup.Attribute("draworder"); if (drawOrderValue != null) DrawOrder = drawOrderDict[drawOrderValue]; Objects = new TmxList<TmxObject>(); foreach (var e in xObjectGroup.Elements("object")) Objects.Add(new TmxObject(e)); Properties = new PropertyDict(xObjectGroup.Element("properties")); }
public TmxMap(Stream stream) { XDocument xDoc = ReadXml(stream); XElement xMap = xDoc.Element("map"); Version = (string) xMap.Attribute("version"); Orientation = (OrientationType) Enum.Parse( typeof (OrientationType), xMap.Attribute("orientation").Value, true); Width = (int) xMap.Attribute("width"); Height = (int) xMap.Attribute("height"); TileWidth = (int) xMap.Attribute("tilewidth"); TileHeight = (int) xMap.Attribute("tileheight"); BackgroundColor = new TmxColor(xMap.Attribute("backgroundcolor")); Tilesets = new TmxList<TmxTileset>(); foreach (XElement e in xMap.Elements("tileset")) Tilesets.Add(new TmxTileset(e, TmxDirectory)); Layers = new TmxList<TmxLayer>(); foreach (XElement e in xMap.Elements("layer")) Layers.Add(new TmxLayer(e, Width, Height)); ObjectGroups = new TmxList<TmxObjectGroup>(); foreach (XElement e in xMap.Elements("objectgroup")) ObjectGroups.Add(new TmxObjectGroup(e)); if (xMap.Elements("imagelayer").Any()) throw new NotSupportedException( "Image layers are not supported in the current implementation. You can disable this warning at your own risk."); Properties = new PropertyDict(xMap.Element("properties")); }
public TmxObjectGroup(XElement xObjectGroup) { Name = (string)xObjectGroup.Attribute("name"); Color = new TmxColor(xObjectGroup.Attribute("color")); Opacity = (double?)xObjectGroup.Attribute("opacity") ?? 1.0; Visible = (bool?)xObjectGroup.Attribute("visible") ?? true; Objects = new TmxList<TmxObject>(); foreach (var e in xObjectGroup.Elements("object")) Objects.Add(new TmxObject(e)); Properties = new PropertyDict(xObjectGroup.Element("properties")); }
public TmxMap(string filename) { XDocument xDoc = ReadXml(filename); var xMap = xDoc.Element("map"); Version = (string) xMap.Attribute("version"); Width = (int) xMap.Attribute("width"); Height = (int) xMap.Attribute("height"); TileWidth = (int) xMap.Attribute("tilewidth"); TileHeight = (int) xMap.Attribute("tileheight"); HexSideLength = (int?) xMap.Attribute("hexsidelength"); // Map orientation type var orientDict = new Dictionary<string, OrientationType> { {"unknown", OrientationType.Unknown}, {"orthogonal", OrientationType.Orthogonal}, {"isometric", OrientationType.Isometric}, {"staggered", OrientationType.Staggered}, {"hexagonal", OrientationType.Hexagonal}, }; var orientValue = (string) xMap.Attribute("orientation"); if (orientValue != null) Orientation = orientDict[orientValue]; // Hexagonal stagger axis var staggerAxisDict = new Dictionary<string, StaggerAxisType> { {"x", StaggerAxisType.X}, {"y", StaggerAxisType.Y}, }; var staggerAxisValue = (string) xMap.Attribute("staggeraxis"); if (staggerAxisValue != null) StaggerAxis = staggerAxisDict[staggerAxisValue]; // Hexagonal stagger index var staggerIndexDict = new Dictionary<string, StaggerIndexType> { {"odd", StaggerIndexType.Odd}, {"even", StaggerIndexType.Even}, }; var staggerIndexValue = (string) xMap.Attribute("staggerindex"); if (staggerIndexValue != null) StaggerIndex = staggerIndexDict[staggerIndexValue]; // Tile render order var renderDict = new Dictionary<string, RenderOrderType> { {"right-down", RenderOrderType.RightDown}, {"right-up", RenderOrderType.RightUp}, {"left-down", RenderOrderType.LeftDown}, {"left-up", RenderOrderType.LeftUp} }; var renderValue = (string) xMap.Attribute("renderorder"); if (renderValue != null) RenderOrder = renderDict[renderValue]; NextObjectID = (int?)xMap.Attribute("nextobjectid"); BackgroundColor = new TmxColor(xMap.Attribute("backgroundcolor")); Properties = new PropertyDict(xMap.Element("properties")); Tilesets = new TmxList<TmxTileset>(); foreach (var e in xMap.Elements("tileset")) Tilesets.Add(new TmxTileset(e, TmxDirectory)); Layers = new TmxList<TmxLayer>(); foreach (var e in xMap.Elements("layer")) Layers.Add(new TmxLayer(e, Width, Height)); ObjectGroups = new TmxList<TmxObjectGroup>(); foreach (var e in xMap.Elements("objectgroup")) ObjectGroups.Add(new TmxObjectGroup(e)); ImageLayers = new TmxList<TmxImageLayer>(); foreach (var e in xMap.Elements("imagelayer")) ImageLayers.Add(new TmxImageLayer(e, TmxDirectory)); }