Example #1
0
        public Field(Tile parentTile, Rectangle rect, TerrainEnum terrain, bool openLeft = true, bool openRight = true, bool openTop = true, bool openBottom = true)
        {
            ParentTile = parentTile;
            Rect = rect;
            OriginRect = rect;
            Terrain = terrain;
            OpenBottom = openBottom;
            OpenLeft = openLeft;
            OpenRight = openRight;
            OpenTop = openTop;

            ObjectsOnField = new Collection<object>();
        }
Example #2
0
        public void MoveOffsetY(int y, Tile startingTile = null, bool recursive = true)
        {
            OffsetY += y;

            if (!recursive)
            {
                return;
            }

            if (TileOnRight != null && startingTile != TileOnRight)
            {
                TileOnRight.MoveOffsetY(y);
            }
        }
Example #3
0
        public void ConnectTileToTop(Tile tile)
        {
            if (TopConnectionPoint == null)
            {
                return;
            }

            TileOnTop = tile;
            tile.TileOnBottom = this;

            var diffX = (int)(TopConnectionPoint.Value.X - tile.BottomConnectionPoint.Value.X);
            tile.MoveOffsetY((int)TopConnectionPoint.Value.Y + OffsetY - tile.Height);
            tile.MoveOffsetX(diffX + OffsetX, this);
        }
Example #4
0
        public void MoveOffsetX(int x, Tile startingTile = null, bool recursive = true)
        {
            OffsetX += x;

            if (!recursive)
            {
                return;
            }

            if (TileOnRight != null && startingTile != TileOnRight)
            {
                TileOnRight.MoveOffsetX(x, this);
            }

            if (TileOnBottom != null && startingTile != TileOnBottom)
            {
                TileOnBottom.MoveOffsetX(x, this);
            }
        }
Example #5
0
        public void ConnectTileToBottom(Tile tile)
        {
            if (BottomConnectionPoint == null)
            {
                return;
            }

            TileOnBottom = tile;
            tile.TileOnTop = this;

            var diffX = (int)(BottomConnectionPoint.Value.X - tile.TopConnectionPoint.Value.X);
            tile.MoveOffsetY((int)BottomConnectionPoint.Value.Y + OffsetY);
            tile.MoveOffsetX(diffX + OffsetX);
        }
Example #6
0
        public void ConnectTileToLeft(Tile tile)
        {
            if (LeftConnectionPoint == null)
            {
                return;
            }

            TileOnLeft = tile;
            tile.TileOnRight = this;

            var diffY = (int)(LeftConnectionPoint.Value.Y - tile.RightConnectionPoint.Value.Y);
            tile.MoveOffsetX((int)LeftConnectionPoint.Value.X + OffsetX - tile.Width, this);
            tile.MoveOffsetY(diffY + OffsetY, this);
        }
Example #7
0
        public void ConnectTileToRight(Tile tile)
        {
            if (RightConnectionPoint == null)
            {
                return;
            }

            TileOnRight = tile;
            tile.TileOnLeft = this;

            var diffY = (int)(RightConnectionPoint.Value.Y - tile.LeftConnectionPoint.Value.Y);
            tile.MoveOffsetX((int)RightConnectionPoint.Value.X + OffsetX);
            tile.MoveOffsetY(diffY + OffsetY);
        }
Example #8
0
 protected Tile CreateTile(string key, Tile tile)
 {
     AddTile(key, tile);
     return tile;
 }
Example #9
0
 public void AddTile(string key, Tile tile)
 {
     Width = tile.Image.Width;
     Height = tile.Image.Height;
     tiles.Add(key, tile);
 }