public TiledMapTileObject(int identifier, string name, TiledMapTileset tileset, TiledMapTilesetTile tile,
                           SizeF size, Vector2 position, float rotation = 0, float opacity = 1, bool isVisible = true, string type = null)
     : base(identifier, name, size, position, rotation, opacity, isVisible, type)
 {
     Tileset = tileset;
     Tile    = tile;
 }
Example #2
0
        internal TiledMapTileset(ContentReader input)
        {
            Name = input.GetRelativeAssetName(input.ReadString());
            var animatedTiles = new List <TiledMapTilesetAnimatedTile>();
            var tiles         = new List <TiledMapTilesetTile>();

            _animatedTilesByLocalTileIdentifier = new Dictionary <int, TiledMapTilesetAnimatedTile>();

            try
            {
                Texture = input.ContentManager.Load <Texture2D>(Name);
            }
            catch (ContentLoadException)
            {
                // ignore error, texture is optional
            }

            FirstGlobalIdentifier = input.ReadInt32();
            TileWidth             = input.ReadInt32();
            TileHeight            = input.ReadInt32();
            TileCount             = input.ReadInt32();
            Spacing    = input.ReadInt32();
            Margin     = input.ReadInt32();
            Columns    = input.ReadInt32();
            Properties = new TiledMapProperties();

            var explicitTileCount = input.ReadInt32();

            for (var tileIndex = 0; tileIndex < explicitTileCount; tileIndex++)
            {
                var localTileIdentifier  = input.ReadInt32();
                var animationFramesCount = input.ReadInt32();

                TiledMapTilesetTile tilesetTile;

                if (animationFramesCount <= 0)
                {
                    tilesetTile = new TiledMapTilesetTile(localTileIdentifier, input);
                }
                else
                {
                    var animatedTilesetTile = new TiledMapTilesetAnimatedTile(this, input, localTileIdentifier, animationFramesCount);
                    animatedTiles.Add(animatedTilesetTile);
                    _animatedTilesByLocalTileIdentifier.Add(localTileIdentifier, animatedTilesetTile);
                    tilesetTile = animatedTilesetTile;
                }

                tiles.Add(tilesetTile);

                input.ReadTiledMapProperties(tilesetTile.Properties);
            }

            input.ReadTiledMapProperties(Properties);

            Tiles         = new ReadOnlyCollection <TiledMapTilesetTile>(tiles);
            AnimatedTiles = new ReadOnlyCollection <TiledMapTilesetAnimatedTile>(animatedTiles);
        }
Example #3
0
        public TiledMapTileObject(ContentReader input, TiledMap map)
            : base(input)
        {
            var globalTileIdentifierWithFlags = input.ReadUInt32();
            var tile                = new TiledMapTile(globalTileIdentifierWithFlags);
            var tileset             = map.GetTilesetByTileGlobalIdentifier(tile.GlobalIdentifier);
            var localTileIdentifier = tile.GlobalIdentifier - tileset.FirstGlobalIdentifier;

            TilesetTile = tileset.Tiles.FirstOrDefault(x => x.LocalTileIdentifier == localTileIdentifier);
        }