private void drawSpine(int[][] currentBlockArray, String group, int paintRadius, int currentDirection, int x, int z, int minX, int maxX, int minZ, int maxZ) {
        if(x > minX && x < maxX && z > minZ && z < maxZ) {
            if(paintRadius != 0 && gound[x] > z + paintRadius + 10) {
                int directionOffset = Rand.getRange(-20, 20);
                int paintRadiusChange = -1 * Rand.getRange(0, 1);
                int newX = x + (int)(paintRadius * Math.cos(Math.toRadians(currentDirection + directionOffset)));
                int newZ = z + (int)(paintRadius * Math.sin(Math.toRadians(currentDirection + directionOffset)));
                world.PaintAtPoint(currentBlockArray, group, paintRadius + paintRadiusChange, newX, newZ, minX, maxX, minZ, maxZ);
                if(paintRadius > 0) {
                    drawSpine(currentBlockArray, group, paintRadius + paintRadiusChange, currentDirection + directionOffset, newX, newZ, minX, maxX, minZ, maxZ);
                }
            }
        }
        return;
    }