Catch SendFailedException when replying back in Connection::Receive()
[oweals/minetest.git] / src / farmesh.cpp
index b46d84151833ef653e30616e6019ef3cbb8a44fc..8f91e3a1ab4ddc427cf05a3032acb04e16549d1c 100644 (file)
@@ -29,15 +29,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 #include "map.h"
 #include "client.h"
 
-/*
-       Temporarily exposed map generator stuff
-       Should only be used for testing
-*/
-extern double base_rock_level_2d(u64 seed, v2s16 p);
-extern double get_mud_add_amount(u64 seed, v2s16 p);
-extern bool get_have_sand(u64 seed, v2s16 p2d);
-extern double tree_amount_2d(u64 seed, v2s16 p);
-
+#include "mapgen.h"
 
 FarMesh::FarMesh(
                scene::ISceneNode* parent,
@@ -126,17 +118,20 @@ HeightPoint ground_height(u64 seed, v2s16 p2d)
        if(n)
                return n->getValue();
        HeightPoint hp;
-       hp.gh = BS*base_rock_level_2d(seed, p2d);
-       hp.ma = BS*get_mud_add_amount(seed, p2d);
-       hp.have_sand = get_have_sand(seed, p2d);
+       s16 level = mapgen::find_ground_level_from_noise(seed, p2d, 3);
+       hp.gh = (level-4)*BS;
+       hp.ma = (4)*BS;
+       /*hp.gh = BS*base_rock_level_2d(seed, p2d);
+       hp.ma = BS*get_mud_add_amount(seed, p2d);*/
+       hp.have_sand = mapgen::get_have_sand(seed, p2d);
        if(hp.gh > BS*WATER_LEVEL)
-               hp.tree_amount = tree_amount_2d(seed, p2d);
+               hp.tree_amount = mapgen::tree_amount_2d(seed, p2d);
        else
                hp.tree_amount = 0;
        // No mud has been added if mud amount is less than 1
        if(hp.ma < 1.0*BS)
                hp.ma = 0.0;
-       hp.gh -= BS*3; // Lower a bit so that it is not that much in the way
+       //hp.gh -= BS*3; // Lower a bit so that it is not that much in the way
        g_heights[p2d] = hp;
        return hp;
 }
@@ -284,7 +279,8 @@ void FarMesh::render()
                if(h_avg < WATER_LEVEL*BS && h_max < (WATER_LEVEL+5)*BS)
                {
                        //c = video::SColor(255,59,86,146);
-                       c = video::SColor(255,82,120,204);
+                       //c = video::SColor(255,82,120,204);
+                       c = video::SColor(255,74,105,170);
 
                        /*// Set to water level
                        for(u32 i=0; i<4; i++)