public void Generate(PlaceVoxelDelegate placeVoxel, int x, int y, int z) { int barkH = y%4 + 6; int rad = Mathf.RoundToInt((x + z)%3 + 5); for (int la = 0; la < barkH; la++) { placeVoxel(x, y + la, z, 2, false); } for(int la=-rad;la<=rad;la++) { for (int lb = -rad; lb <= rad; lb++) { for (int lc = -rad; lc <= rad; lc++) { if (new Vector3(la, lb, lc).magnitude < rad) { placeVoxel(x + la, y + lb + barkH, z + lc, 2048 + y%3, false); } } } } }
public void Generate(PlaceVoxelDelegate placeVoxel, int x, int y, int z) { int barkH = y % 4 + 6; int rad = Mathf.RoundToInt((x + z) % 3 + 5); for (int la = 0; la < barkH; la++) { placeVoxel(x, y + la, z, 2, false); } for (int la = -rad; la <= rad; la++) { for (int lb = -rad; lb <= rad; lb++) { for (int lc = -rad; lc <= rad; lc++) { if (new Vector3(la, lb, lc).magnitude < rad) { placeVoxel(x + la, y + lb + barkH, z + lc, 2048 + y % 3, false); } } } } }