private void SellBuilding()
    {
        Cell clickedCell = grid.GetCell(GetMouseWorldPosition());

        if (clickedCell == null)
        {
            return;
        }
        Building clickedBuilding = clickedCell.GetBuilding();

        if (clickedBuilding != null)
        {
            //Selling a road
            if (clickedBuilding.Type.type == BuildingTypeSO.Type.Road)
            {
                int posX, posZ;
                posX = clickedCell.GetX();
                posZ = clickedCell.GetY();

                List <Vector2Int> destroyedCoordinates = clickedBuilding.GetGridPositionList();
                foreach (Vector2Int gridPos in destroyedCoordinates)
                {
                    grid.GetCell(gridPos.x, gridPos.y).ClearBuilding();
                }

                placedBuildings.Remove(clickedBuilding);
                GameManager.instance.SellBuilding(clickedBuilding);
                clickedBuilding.Destroy();
                foreach (Cell cell in grid.GetCell(posX, posZ).Neighbours)
                {
                    if (cell.GetBuilding() != null && cell.GetBuilding().Type.type == BuildingTypeSO.Type.Road)
                    {
                        UpdateRoad(cell.GetX(), cell.GetY());
                    }
                }
            }
            // Selling an attraction
            else if (clickedBuilding.Type.type == BuildingTypeSO.Type.Attraction)
            {
                Attraction clicked = (Attraction)clickedBuilding;
                if (clicked.Broke)
                {
                    EventManager.instance.BrokeBuildingSold();
                    lastX = -1;
                    lastZ = -1;
                }
                else
                {
                    clicked.SendOutVisitors();
                    List <Vector2Int> destroyedCoordinates = clickedBuilding.GetGridPositionList();
                    foreach (Vector2Int gridPos in destroyedCoordinates)
                    {
                        grid.GetCell(gridPos.x, gridPos.y).ClearBuilding();
                    }

                    placedBuildings.Remove(clickedBuilding);
                    placedAttractions.Remove((Attraction)clickedBuilding);
                    GameManager.instance.SellBuilding(clickedBuilding);
                    clickedBuilding.Destroy();
                }
            }
            else
            {
                List <Vector2Int> destroyedCoordinates = clickedBuilding.GetGridPositionList();
                foreach (Vector2Int gridPos in destroyedCoordinates)
                {
                    grid.GetCell(gridPos.x, gridPos.y).ClearBuilding();
                }

                placedBuildings.Remove(clickedBuilding);
                GameManager.instance.SellBuilding(clickedBuilding);
                clickedBuilding.Destroy();
            }
        }
    }