void positionNode()
    {
        int xOffset = 0;
        int zOffset = 0;
        switch(RPTP)
        {
            case RelativePosToParent.LEFT:
                xOffset = -300;
            break;
            case RelativePosToParent.LEFT_TOP:
                xOffset = -300;
            //	zOffset = 300;
            break;
            case RelativePosToParent.LEFT_BOT:

                xOffset = -300;
            //	zOffset = -300;
            break;
            case RelativePosToParent.RIGHT:
                xOffset = 300;
            break;
            case RelativePosToParent.RIGHT_TOP:
                xOffset = 300;
            //	zOffset = 300;
            break;
            case RelativePosToParent.RIGHT_BOT:
                xOffset = 300;
            //	zOffset = -300;
            break;
            case RelativePosToParent.TOP:
                zOffset = 300;
            break;
            case RelativePosToParent.BOTTOM:
                zOffset = -300;
            break;
        };
        Vector3 newPos = new Vector3(parent.leafData.roomHolder.transform.position.x +xOffset, 0,  parent.leafData.roomHolder.transform.position.z + zOffset);

        leafData.roomHolder.transform.position = newPos;
        takenPositions.Add(newPos);
        if(parent.left != this)
        {
            if(parent.left.leafData.roomHolder.transform.position == this.leafData.roomHolder.transform.position)
            {
                RPTP = (RelativePosToParent)Mathf.CeilToInt(Random.value* (int)RelativePosToParent.RIGHT_BOT);
                positionNode();

            }

        }
        else
        {

        }
    }
 public LeafData()
 {
     RPTP = (RelativePosToParent)Mathf.CeilToInt(Random.value* (int)RelativePosToParent.BOTTOM);
 }