Tune desert beaches
authorPerttu Ahola <celeron55@gmail.com>
Sat, 7 Apr 2012 14:59:24 +0000 (17:59 +0300)
committerPerttu Ahola <celeron55@gmail.com>
Sat, 7 Apr 2012 14:59:24 +0000 (17:59 +0300)
src/mapgen.cpp

index 1d1d663c097306e39ca046295db0e397af3056e3..d227ef835e3f0aa34e86b20c69d65fa4c3c68448 100644 (file)
@@ -1790,11 +1790,6 @@ void make_block(BlockMakeData *data)
                // Node position in 2d
                v2s16 p2d = v2s16(x,z);
                
-               MapNode addnode(c_dirt);
-               BiomeType bt = get_biome(data->seed, p2d);
-               if(bt == BT_DESERT)
-                       addnode = MapNode(c_desert_sand);
-
                // Randomize mud amount
                s16 mud_add_amount = get_mud_add_amount(data->seed, p2d) / 2.0 + 0.5;
 
@@ -1804,7 +1799,15 @@ void make_block(BlockMakeData *data)
                if(surface_y == vmanip.m_area.MinEdge.Y - 1)
                        continue;
 
-               if(mud_add_amount <= 0){
+               MapNode addnode(c_dirt);
+               BiomeType bt = get_biome(data->seed, p2d);
+
+               if(bt == BT_DESERT)
+                       addnode = MapNode(c_desert_sand);
+
+               if(bt == BT_DESERT && surface_y + mud_add_amount <= WATER_LEVEL+1){
+                       addnode = MapNode(c_sand);
+               } else if(mud_add_amount <= 0){
                        mud_add_amount = 1 - mud_add_amount;
                        addnode = MapNode(c_gravel);
                } else if(bt == BT_NORMAL && get_have_beach(data->seed, p2d) &&