From 37a62970252cb7128900bffb7a07872679738e43 Mon Sep 17 00:00:00 2001 From: paramat Date: Mon, 23 Mar 2015 19:36:00 +0000 Subject: Mgv6: Use heightmap in placeTreesAndJungleGrass() --- src/mapgen_v6.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/mapgen_v6.cpp b/src/mapgen_v6.cpp index 2ecf42a0f..8885c71e5 100644 --- a/src/mapgen_v6.cpp +++ b/src/mapgen_v6.cpp @@ -877,9 +877,10 @@ void MapgenV6::placeTreesAndJungleGrass() for (u32 i = 0; i < grass_count; i++) { s16 x = grassrandom.range(p2d_min.X, p2d_max.X); s16 z = grassrandom.range(p2d_min.Y, p2d_max.Y); - - s16 y = findGroundLevelFull(v2s16(x, z)); ////////////////optimize this! - if (y < water_level || y < node_min.Y || y > node_max.Y) + int mapindex = central_area_size.X * (z - node_min.Z) + + (x - node_min.X); + s16 y = heightmap[mapindex]; + if (y < water_level) continue; u32 vi = vm->m_area.index(x, y, z); @@ -895,7 +896,9 @@ void MapgenV6::placeTreesAndJungleGrass() for (u32 i = 0; i < tree_count; i++) { s16 x = myrand_range(p2d_min.X, p2d_max.X); s16 z = myrand_range(p2d_min.Y, p2d_max.Y); - s16 y = findGroundLevelFull(v2s16(x, z)); ////////////////////optimize this! + int mapindex = central_area_size.X * (z - node_min.Z) + + (x - node_min.X); + s16 y = heightmap[mapindex]; // Don't make a tree under water level // Don't make a tree so high that it doesn't fit if(y < water_level || y > node_max.Y - 6) -- cgit v1.2.3