public void Handle(ICollidable player, ICollidable brickBlock, CollisionDirection.DirectionTag direction)
        {
            if (typeof(IMario).IsInstanceOfType(player) && typeof(NormalBrickBlock).IsInstanceOfType(brickBlock))
            {
                mario           = (IMario)player;
                this.brickBlock = (NormalBrickBlock)brickBlock;
                Console.WriteLine(brickBlock.GetHitBox().X + " " + brickBlock.GetHitBox().Y);
                switch (direction)
                {
                case CollisionDirection.DirectionTag.Top:
                    mario.SetYPosition(brickBlock.GetTopSide() - player.GetHeight());
                    mario.Ground();
                    break;

                case CollisionDirection.DirectionTag.Bottom:
                    mario.SetYPosition(this.brickBlock.GetBottomSide() + 1);
                    this.brickBlock.Bump();
                    this.brickBlock.EndBump();
                    if (!mario.IsSmall())
                    {
                        this.brickBlock.Break();
                    }
                    break;

                case CollisionDirection.DirectionTag.Left:
                    mario.SetXPosition(this.brickBlock.GetLeftSide() - player.GetWidth());
                    break;

                case CollisionDirection.DirectionTag.Right:
                    mario.SetXPosition(this.brickBlock.GetRightSide() + 1);
                    break;

                default:
                    Console.WriteLine("Unexpected Direction Received in Collision.PlayerWithBrickBlockResponse");
                    break;
                }
            }
        }
        public void Handle(ICollidable player, ICollidable brickBlock, CollisionDirection.DirectionTag direction)
        {
            if (typeof(IMario).IsInstanceOfType(player) && typeof(NormalBrickBlock).IsInstanceOfType(brickBlock))
            {
                mario           = (IMario)player;
                this.brickBlock = (NormalBrickBlock)brickBlock;
                switch (direction)
                {
                case CollisionDirection.DirectionTag.Top:
                    mario.SetYPosition(brickBlock.GetTopSide() - player.GetHeight());
                    mario.Ground();
                    break;

                case CollisionDirection.DirectionTag.Bottom:
                    mario.StopJumping();
                    mario.SetYPosition(this.brickBlock.GetBottomSide() + 1);
                    this.brickBlock.Bump();
                    this.brickBlock.EndBump();
                    if (!mario.IsSmall())
                    {
                        this.brickBlock.Break();
                    }
                    break;

                case CollisionDirection.DirectionTag.Left:
                    mario.SetXPosition(this.brickBlock.GetLeftSide() - player.GetWidth());
                    break;

                case CollisionDirection.DirectionTag.Right:
                    mario.SetXPosition(this.brickBlock.GetRightSide() + 1);
                    break;

                default:
                    Console.WriteLine(Config.GetCollisionResolutionException() + GetType().ToString());
                    break;
                }
            }
        }