Example #1
0
        /// <summary>
        /// Initializes a new instance of the <see cref="Tileset" /> class.
        /// </summary>
        /// <param name="tmxTileset">The TMX parsed tileset</param>
        /// <param name="tiledMap">The tiled map</param>
        public Tileset(TmxTileset tmxTileset, TiledMap tiledMap)
        {
            this.tiledMap = tiledMap;

            this.Name = tmxTileset.Name;
            this.TileWidth = tmxTileset.TileWidth;
            this.TileHeight = tmxTileset.TileHeight;
            this.Spacing = tmxTileset.Spacing;
            this.Margin = tmxTileset.Margin;
            this.XTilesCount = (int)(tmxTileset.Image.Width - (2 * this.Margin) + this.Spacing) / (this.TileWidth + this.Spacing);
            this.YTilesCount = (int)(tmxTileset.Image.Height - (2 * this.Margin) + this.Spacing) / (this.TileHeight + this.Spacing);

            this.FirstGid = tmxTileset.FirstGid;
            this.LastGid = tmxTileset.FirstGid + (this.XTilesCount * this.YTilesCount) - 1;

            this.terrains = new Dictionary<string, TilesetTerrain>();
            this.Terrains = new ReadOnlyDictionary<string, TilesetTerrain>(this.terrains);
            foreach (var tmxTerrain in tmxTileset.Terrains)
            {
                this.terrains.Add(tmxTerrain.Name, new TilesetTerrain(tmxTerrain));
            }

            this.tiles = new List<TilesetTile>();
            this.TilesTable = new TilesetTile[this.XTilesCount * this.YTilesCount];
            foreach (var tmxTilesetTile in tmxTileset.Tiles)
            {
                var tilesetTile = new TilesetTile(tmxTilesetTile, this);

                this.tiles.Add(tilesetTile);
                this.TilesTable[tilesetTile.ID] = tilesetTile;
            }

            this.Image = this.tiledMap.Owner.Scene.Assets.LoadAsset<Texture2D>(tmxTileset.Image.Source);
        }
Example #2
0
        protected override void CreateScene()
        {
            this.Load(@"Content/Scenes/MainScene.wscene");

            var map = EntityManager.Find("Map");

                map.AddComponent(this.tiledMap = new TiledMap("Content/Assets/hexagonalMap.tmx")
                {
                    MinLayerDrawOrder = -10,
                    MaxLayerDrawOrder = -0
                })
                .AddComponent(new PlayerControllerBehavior())
                .RefreshDependencies();

                var player = EntityManager.Find("Player");

            map.FindComponent<PlayerControllerBehavior>().TileSelected += (s, tile) =>
                {
                    var pathFollower = player.FindComponent<PathFollowerBehavior>();
                    pathFollower.MoveToTile(tile);
                };

            #if DEBUG
            this.AddSceneBehavior(new DebugSceneBehavior(), SceneBehavior.Order.PostUpdate);
            #endif
        }
Example #3
0
        protected override void Start()
        {
            base.Start();

            this.tiledMap = this.EntityManager.Find("Map").FindComponent <WaveEngine.TiledMap.TiledMap>();

            this.AddCoins();
            this.AddCrates();
            this.AddTraps();
            this.AddSceneColliders();
            this.AddEnd();
            this.StartMusic();
            this.AddSceneBehavior(new GameplaySceneBehavior(), SceneBehavior.Order.PostUpdate);
        }
Example #4
0
        protected override void Start()
        {
            base.Start();

            this.tiledMap = this.EntityManager.Find("Map").FindComponent<WaveEngine.TiledMap.TiledMap>();

            this.AddCoins();
            this.AddCrates();
            this.AddTraps();
            this.AddSceneColliders();
            this.AddEnd();
            this.StartMusic();
            this.AddSceneBehavior(new GameplaySceneBehavior(), SceneBehavior.Order.PostUpdate);
        }
Example #5
0
        /// <summary>
        /// Initializes a new instance of the <see cref="Tileset" /> class.
        /// </summary>
        /// <param name="tmxTileset">The TMX parsed tileset</param>
        /// <param name="tiledMap">The tiled map</param>
        public Tileset(TmxTileset tmxTileset, TiledMap tiledMap)
        {
            this.tiledMap = tiledMap;

            this.Name           = tmxTileset.Name;
            this.TileWidth      = tmxTileset.TileWidth;
            this.TileHeight     = tmxTileset.TileHeight;
            this.Spacing        = tmxTileset.Spacing;
            this.Margin         = tmxTileset.Margin;
            this.XTilesCount    = (int)(tmxTileset.Image.Width - (2 * this.Margin) + this.Spacing) / (this.TileWidth + this.Spacing);
            this.YTilesCount    = (int)(tmxTileset.Image.Height - (2 * this.Margin) + this.Spacing) / (this.TileHeight + this.Spacing);
            this.XDrawingOffset = (int)tmxTileset.TileOffset.X;
            this.YDrawingOffset = (int)tmxTileset.TileOffset.Y;

            if (tmxTileset.Colums.HasValue)
            {
                this.Colums = tmxTileset.Colums.Value;
            }

            this.FirstGid = tmxTileset.FirstGid;
            this.LastGid  = tmxTileset.FirstGid + (this.XTilesCount * this.YTilesCount) - 1;

            this.terrains = new Dictionary <string, TilesetTerrain>();
            this.Terrains = new ReadOnlyDictionary <string, TilesetTerrain>(this.terrains);
            foreach (var tmxTerrain in tmxTileset.Terrains)
            {
                this.terrains.Add(tmxTerrain.Name, new TilesetTerrain(tmxTerrain));
            }

            this.tiles      = new List <TilesetTile>();
            this.TilesTable = new TilesetTile[this.XTilesCount * this.YTilesCount];
            foreach (var tmxTilesetTile in tmxTileset.Tiles)
            {
                var tilesetTile = new TilesetTile(tmxTilesetTile, this);

                this.tiles.Add(tilesetTile);
                this.TilesTable[tilesetTile.ID] = tilesetTile;
            }

            string fullPath     = tmxTileset.Image.Source;
            string relativePath = fullPath.Substring(fullPath.IndexOf("Content"));

            this.Image = this.tiledMap.Owner.Scene.Assets.LoadAsset <Texture2D>(relativePath);
        }
Example #6
0
        /// <summary>
        /// Initializes a new instance of the <see cref="Tileset" /> class.
        /// </summary>
        /// <param name="tmxTileset">The TMX parsed tileset</param>
        /// <param name="tiledMap">The tiled map</param>
        public Tileset(TmxTileset tmxTileset, TiledMap tiledMap)
        {
            this.tiledMap = tiledMap;

            this.Name = tmxTileset.Name;
            this.TileWidth = tmxTileset.TileWidth;
            this.TileHeight = tmxTileset.TileHeight;
            this.Spacing = tmxTileset.Spacing;
            this.Margin = tmxTileset.Margin;
            this.XTilesCount = (int)(tmxTileset.Image.Width - (2 * this.Margin) + this.Spacing) / (this.TileWidth + this.Spacing);
            this.YTilesCount = (int)(tmxTileset.Image.Height - (2 * this.Margin) + this.Spacing) / (this.TileHeight + this.Spacing);
            this.XDrawingOffset = (int)tmxTileset.TileOffset.X;
            this.YDrawingOffset = (int)tmxTileset.TileOffset.Y;

            if (tmxTileset.Colums.HasValue)
            {
                this.Colums = tmxTileset.Colums.Value;
            }

            this.FirstGid = tmxTileset.FirstGid;
            this.LastGid = tmxTileset.FirstGid + (this.XTilesCount * this.YTilesCount) - 1;

            this.terrains = new Dictionary<string, TilesetTerrain>();
            this.Terrains = new ReadOnlyDictionary<string, TilesetTerrain>(this.terrains);
            foreach (var tmxTerrain in tmxTileset.Terrains)
            {
                this.terrains.Add(tmxTerrain.Name, new TilesetTerrain(tmxTerrain));
            }

            this.tiles = new List<TilesetTile>();
            this.TilesTable = new TilesetTile[this.XTilesCount * this.YTilesCount];
            foreach (var tmxTilesetTile in tmxTileset.Tiles)
            {
                var tilesetTile = new TilesetTile(tmxTilesetTile, this);

                this.tiles.Add(tilesetTile);
                this.TilesTable[tilesetTile.ID] = tilesetTile;
            }

            string fullPath = tmxTileset.Image.Source;
            string relativePath = fullPath.Substring(fullPath.IndexOf("Content"));
            this.Image = this.tiledMap.Owner.Scene.Assets.LoadAsset<Texture2D>(relativePath);
        }
Example #7
0
        /// <summary>
        /// Initializes the layer renderer
        /// </summary>
        protected override void Initialize()
        {
            base.Initialize();

            this.tiledMap = this.tiledMapLayer.TiledMap;
        }
Example #8
0
        /// <summary>
        /// Initializes the layer renderer
        /// </summary>
        protected override void Initialize()
        {
            base.Initialize();

            this.tiledMap = this.Owner.Parent.FindComponent <TiledMap>();
        }
        /// <summary>
        /// Initializes this component
        /// </summary>
        protected override void Initialize()
        {
            base.Initialize();
            this.tiledMap = this.Owner.Parent.FindComponent<TiledMap>();

            this.tileTable = new LayerTile[this.tiledMap.Width, this.tiledMap.Height];

            for (int i = 0; i < this.tmxLayer.Tiles.Count; i++)
            {
                var tmxTile = this.tmxLayer.Tiles[i];

                Tileset selectedTileset = null;

                if (tmxTile.Gid > 0)
                {
                    foreach (var tileset in this.tiledMap.Tilesets)
                    {
                        if (tmxTile.Gid <= tileset.LastGid)
                        {
                            selectedTileset = tileset;
                            break;
                        }

                    }
                }

                LayerTile tile = new LayerTile(tmxTile, selectedTileset);
                this.tiles.Add(tile);

                int x = i % this.tiledMap.Width;
                int y = i / this.tiledMap.Width;
                this.tileTable[x, y] = tile;
            }
        }
        /// <summary>
        /// Initializes the layer renderer
        /// </summary>
        protected override void Initialize()
        {
            base.Initialize();

            this.tiledMap = this.Owner.Parent.FindComponent<TiledMap>();
        }
Example #11
0
        /// <summary>
        /// Unload layer
        /// </summary>
        private void UnloadLayer()
        {
            this.tiledMap = null;
            this.tileTable = null;
            this.tiles = null;
            this.tmxLayer = null;

            this.isLayerLoaded = false;
        }
Example #12
0
        /// <summary>
        /// Initialize Layer
        /// </summary>
        private void LoadLayer()
        {
            this.tiles = new List<LayerTile>();

            if(this.Owner.Parent == null)
            {
                return;
            }

            this.tiledMap = this.Owner.Parent.FindComponent<TiledMap>();

            if (this.tiledMap != null && this.tiledMap.TmxMap != null)
            {
                this.tmxLayer = this.tiledMap.TmxMap.Layers.FirstOrDefault(l => l.Name == this.tmxLayerName);

                if (this.tmxLayer != null)
                {
                    this.tileTable = new LayerTile[this.tiledMap.Width, this.tiledMap.Height];

                    for (int i = 0; i < this.tmxLayer.Tiles.Count; i++)
                    {
                        var tmxTile = this.tmxLayer.Tiles[i];

                        Tileset selectedTileset = null;

                        if (tmxTile.Gid > 0)
                        {
                            foreach (var tileset in this.tiledMap.Tilesets)
                            {
                                if (tmxTile.Gid <= tileset.LastGid)
                                {
                                    selectedTileset = tileset;
                                    break;
                                }
                            }
                        }

                        LayerTile tile = new LayerTile(tmxTile, selectedTileset);
                        this.tiles.Add(tile);

                        Vector2 tileLocalPosition;
                        this.tiledMap.GetTilePosition(tile.X, tile.Y, selectedTileset, out tileLocalPosition);
                        tile.LocalPosition = tileLocalPosition;

                        int x = i % this.tiledMap.Width;
                        int y = i / this.tiledMap.Width;
                        this.tileTable[x, y] = tile;
                    }

                    this.isLayerLoaded = true;
                    this.NeedRefresh = true;
                }
            }
        }
Example #13
0
        public PathFollowerBehavior(TiledMap tiledMap)
        {
            this.tiledMap = tiledMap;

            this.pathToFollow = new List<LayerTile>();
        }
Example #14
0
        private void CreateTiledMap()
        {
            var map = new Entity("map")
            .AddComponent(new Transform2D())
            .AddComponent(this.tiledMap = new TiledMap("Content/map.tmx")
            {
                MinLayerDrawOrder = -10,
                MaxLayerDrawOrder = -0
            });

            this.EntityManager.Add(map);
        }
        /// <summary>
        /// Initializes the layer renderer
        /// </summary>
        protected override void Initialize()
        {
            base.Initialize();

            this.tiledMap = this.tiledMapLayer.TiledMap;
        }