private void OnMouseDown()
    {
        bool validPlacementTile = false;

        currentlyPlacingTile = QueueScript.currentlyPlacingTile;
        GameObject currentlyPlacingTileObject = Resources.Load("Prefabs/" + currentlyPlacingTile) as GameObject;

        foreach (string tileCheck in currentlyPlacingTileObject.GetComponent <tileAttributes>().canBePlacedOn)
        {
            if (tileCheck == tileName)
            {
                validPlacementTile = true;
            }
            if (tileCheck == "delete")
            {
                validPlacementTile = checkIfTileCanBeDeleted();
            }
        }

        if (validPlacementTile == true && EventSystem.current.IsPointerOverGameObject() == false)
        {
            validPlacementTile = false;

            GameObject checkingTile = MapScript.findTileAtLocation((int)Xaxis, (int)Yaxis + 1);
            if (checkingTile != null)
            {
                if (checkingTile.GetComponent <tileAttributes>().tileType == "transport")
                {
                    validPlacementTile = true;
                }
            }

            checkingTile = MapScript.findTileAtLocation((int)Xaxis, (int)Yaxis - 1);
            if (checkingTile != null)
            {
                if (checkingTile.GetComponent <tileAttributes>().tileType == "transport")
                {
                    validPlacementTile = true;
                }
            }

            checkingTile = MapScript.findTileAtLocation((int)Xaxis + 1, (int)Yaxis);
            if (checkingTile != null)
            {
                if (checkingTile.GetComponent <tileAttributes>().tileType == "transport")
                {
                    validPlacementTile = true;
                }
            }

            checkingTile = MapScript.findTileAtLocation((int)Xaxis - 1, (int)Yaxis);
            if (checkingTile != null)
            {
                if (checkingTile.GetComponent <tileAttributes>().tileType == "transport")
                {
                    validPlacementTile = true;
                }
            }

            if (validPlacementTile == true)
            {
                if (currentlyPlacingTile == "BridgeTile")
                {
                    if (MapScript.checkIfValidBridgeLocation(null, (int)Xaxis, (int)Yaxis) == true)
                    {
                        MapScript.SwapTiles(null, (int)Xaxis, (int)Yaxis, currentlyPlacingTile);
                        if (MapScript.findTileAtLocation((int)Xaxis, (int)Yaxis + 1).GetComponent <tileAttributes>().tileName == "river")
                        {
                            MapScript.findTileAtLocation((int)Xaxis, (int)Yaxis).GetComponent <SpriteRenderer>().sprite = Resources.Load("Sprites/BridgeHor", typeof(Sprite)) as Sprite;
                        }
                        QueueScript.tileJustPlaced = true;
                    }
                }

                if (tileName == "bridge")
                {
                    MapScript.SwapTiles(null, (int)Xaxis, (int)Yaxis, "RiverTile");
                    QueueScript.tileJustPlaced     = true;
                    GameManager.transportFixNeeded = true;
                    MapScript.fixRivers();
                }

                else
                {
                    MapScript.SwapTiles(null, (int)Xaxis, (int)Yaxis, currentlyPlacingTile);
                    QueueScript.tileJustPlaced = true;
                }

                if (currentlyPlacingTileObject.GetComponent <tileAttributes>().tileType == "transport" ||
                    currentlyPlacingTileObject.GetComponent <tileAttributes>().tileName == "ground")
                {
                    GameManager.transportFixNeeded = true;
                }
            }
        }
    }