]> git.lizzy.rs Git - dragonfireclient.git/blobdiff - src/mapgen_v6.cpp
Add initial Decoration support, many misc. improvements & modifications
[dragonfireclient.git] / src / mapgen_v6.cpp
index e5ff72a609e725200313d7e191884bba9afe3ad5..a411f966b6038231986c098589d99a81700909c9 100644 (file)
@@ -79,7 +79,7 @@ MapgenV6::MapgenV6(int mapgenid, MapgenV6Params *params, EmergeManager *emerge)
        this->freq_beach  = params->freq_beach;
 
        this->ystride = csize.X; //////fix this
-
+       
        np_cave        = &params->np_cave;
        np_humidity    = &params->np_humidity;
        np_trees       = &params->np_trees;
@@ -108,23 +108,6 @@ MapgenV6::~MapgenV6() {
 
 //////////////////////// Some helper functions for the map generator
 
-// Returns Y one under area minimum if not found
-s16 MapgenV6::find_ground_level(v2s16 p2d) {
-       v3s16 em = vm->m_area.getExtent();
-       s16 y_nodes_max = vm->m_area.MaxEdge.Y;
-       s16 y_nodes_min = vm->m_area.MinEdge.Y;
-       u32 i = vm->m_area.index(p2d.X, y_nodes_max, p2d.Y);
-       s16 y;
-       
-       for (y = y_nodes_max; y >= y_nodes_min; y--) {
-               MapNode &n = vm->m_data[i];
-               if(ndef->get(n).walkable)
-                       break;
-
-               vm->m_area.add_y(em, i, -1);
-       }
-       return (y >= y_nodes_min) ? y : y_nodes_min - 1;
-}
 
 // Returns Y one under area minimum if not found
 s16 MapgenV6::find_stone_level(v2s16 p2d) {
@@ -375,8 +358,6 @@ void MapgenV6::makeChunk(BlockMakeData *data) {
        v3s16 blockpos = data->blockpos_requested;
        v3s16 blockpos_min = data->blockpos_min;
        v3s16 blockpos_max = data->blockpos_max;
-       v3s16 blockpos_full_min = blockpos_min - v3s16(1,1,1);
-       v3s16 blockpos_full_max = blockpos_max + v3s16(1,1,1);
 
        // Area of central chunk
        node_min = blockpos_min*MAP_BLOCKSIZE;
@@ -851,7 +832,7 @@ void MapgenV6::placeTreesAndJungleGrass() {
                                s16 x = grassrandom.range(p2d_min.X, p2d_max.X);
                                s16 z = grassrandom.range(p2d_min.Y, p2d_max.Y);
                                
-                               s16 y = find_ground_level(v2s16(x, z)); ////////////////optimize this!
+                               s16 y = findGroundLevelFull(v2s16(x, z)); ////////////////optimize this!
                                if (y < water_level || y < node_min.Y || y > node_max.Y)
                                        continue;
                                
@@ -868,7 +849,7 @@ 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 = find_ground_level(v2s16(x, z)); ////////////////////optimize this!
+                       s16 y = findGroundLevelFull(v2s16(x, z)); ////////////////////optimize this!
                        // 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)