ToolDefManager serialization
[oweals/minetest.git] / src / mapgen.cpp
index a07f4cac897b95cc1f15786201c40e37230b7da1..2b8050260666718f15a1d2e8062eaaceaf91c24e 100644 (file)
@@ -26,6 +26,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 #include "mineral.h"
 //#include "serverobject.h"
 #include "content_sao.h"
+#include "nodedef.h"
 
 namespace mapgen
 {
@@ -80,7 +81,7 @@ static s16 find_ground_level_clever(VoxelManipulator &vmanip, v2s16 p2d)
 }
 #endif
 
-static void make_tree(VoxelManipulator &vmanip, v3s16 p0, bool is_apple_tree)
+void make_tree(ManualMapVoxelManipulator &vmanip, v3s16 p0, bool is_apple_tree)
 {
        MapNode treenode(CONTENT_TREE);
        MapNode leavesnode(CONTENT_LEAVES);
@@ -1405,6 +1406,7 @@ bool get_have_sand(u64 seed, v2s16 p2d)
 */
 void add_random_objects(MapBlock *block)
 {
+#if 0
        for(s16 z0=0; z0<MAP_BLOCKSIZE; z0++)
        for(s16 x0=0; x0<MAP_BLOCKSIZE; x0++)
        {
@@ -1415,9 +1417,9 @@ void add_random_objects(MapBlock *block)
                        MapNode n = block->getNodeNoEx(p);
                        if(n.getContent() == CONTENT_IGNORE)
                                continue;
-                       if(content_features(n).liquid_type != LIQUID_NONE)
+                       if(data->nodemgr->get(n)->liquid_type != LIQUID_NONE)
                                continue;
-                       if(content_features(n).walkable)
+                       if(data->nodemgr->get(n)->walkable)
                        {
                                last_node_walkable = true;
                                continue;
@@ -1465,6 +1467,7 @@ void add_random_objects(MapBlock *block)
                }
        }
        block->setChangedFlag();
+#endif
 }
 
 void make_block(BlockMakeData *data)
@@ -1475,6 +1478,9 @@ void make_block(BlockMakeData *data)
                return;
        }
 
+       assert(data->vmanip);
+       assert(data->nodemgr);
+
        v3s16 blockpos = data->blockpos;
        
        /*dstream<<"makeBlock(): ("<<blockpos.X<<","<<blockpos.Y<<","
@@ -2182,7 +2188,7 @@ void make_block(BlockMakeData *data)
                                {
                                        u32 i = data->vmanip->m_area.index(p);
                                        MapNode *n = &data->vmanip->m_data[i];
-                                       if(content_features(*n).is_ground_content
+                                       if(data->nodemgr->get(*n).is_ground_content
                                                        || n->getContent() == CONTENT_JUNGLETREE)
                                        {
                                                found = true;
@@ -2281,7 +2287,8 @@ void make_block(BlockMakeData *data)
 BlockMakeData::BlockMakeData():
        no_op(false),
        vmanip(NULL),
-       seed(0)
+       seed(0),
+       nodemgr(NULL)
 {}
 
 BlockMakeData::~BlockMakeData()