public static void SetLoader(ICustomLoader customLoader)
 {
     throw new System.NotImplementedException();
 }
 public TmxDocument(ICustomLoader customLoader)
 {
     CustomLoader = customLoader;
     TmxDirectory = string.Empty;
 }
 public static void Init(ICustomLoader customLoader)
 {
 }
Beispiel #4
0
        // TMX tileset element constructor
        public TmxTileset(XElement xTileset, string tmxDir = "", ICustomLoader customLoader = null) : base(customLoader)
        {
            var xFirstGid = xTileset.Attribute("firstgid");
            var source    = (string)xTileset.Attribute("source");

            if (source != null)
            {
                // Prepend the parent TMX directory if necessary
                source = Path.Combine(tmxDir, source);

                // source is always preceded by firstgid
                FirstGid = (int)xFirstGid;

                // Everything else is in the TSX file
                var xDocTileset = ReadXml(source);
                var ts          = new TmxTileset(xDocTileset, TmxDirectory, CustomLoader);
                Name       = ts.Name;
                TileWidth  = ts.TileWidth;
                TileHeight = ts.TileHeight;
                Spacing    = ts.Spacing;
                Margin     = ts.Margin;
                Columns    = ts.Columns;
                TileCount  = ts.TileCount;
                TileOffset = ts.TileOffset;
                Image      = ts.Image;
                Terrains   = ts.Terrains;
                Tiles      = ts.Tiles;
                Properties = ts.Properties;
            }
            else
            {
                // firstgid is always in TMX, but not TSX
                if (xFirstGid != null)
                {
                    FirstGid = (int)xFirstGid;
                }

                Name       = (string)xTileset.Attribute("name");
                TileWidth  = (int)xTileset.Attribute("tilewidth");
                TileHeight = (int)xTileset.Attribute("tileheight");
                Spacing    = (int?)xTileset.Attribute("spacing") ?? 0;
                Margin     = (int?)xTileset.Attribute("margin") ?? 0;
                Columns    = (int?)xTileset.Attribute("columns");
                TileCount  = (int?)xTileset.Attribute("tilecount");
                TileOffset = new TmxTileOffset(xTileset.Element("tileoffset"));
                Image      = new TmxImage(xTileset.Element("image"), tmxDir);

                Terrains = new TmxList <TmxTerrain>();
                var xTerrainType = xTileset.Element("terraintypes");
                if (xTerrainType != null)
                {
                    foreach (var e in xTerrainType.Elements("terrain"))
                    {
                        Terrains.Add(new TmxTerrain(e));
                    }
                }

                Tiles = new Dictionary <int, TmxTilesetTile>();
                foreach (var xTile in xTileset.Elements("tile"))
                {
                    var tile = new TmxTilesetTile(xTile, Terrains, tmxDir);
                    Tiles[tile.Id] = tile;
                }

                Properties = new PropertyDict(xTileset.Element("properties"));
            }
        }
Beispiel #5
0
 // TSX file constructor
 public TmxTileset(XContainer xDoc, string tmxDir, ICustomLoader customLoader = null) :
     this(xDoc.Element("tileset"), tmxDir, customLoader)
 {
 }
Beispiel #6
0
 public TmxMap(XDocument xDoc, ICustomLoader customLoader = null) : base(customLoader)
 {
     Load(xDoc);
 }
Beispiel #7
0
        public TmxMap(Stream inputStream, ICustomLoader customLoader = null) : base(customLoader)
        {
            XmlReader xmlReader = XmlReader.Create(inputStream);

            Load(XDocument.Load(xmlReader));
        }
Beispiel #8
0
 public TmxMap(string filename, ICustomLoader customLoader = null) : base(customLoader)
 {
     Load(ReadXml(filename));
 }