LuaVoxelManip: Add option to allocate blank data
[oweals/minetest.git] / src / mapgen.cpp
index 44ce0c6151fcc9221be6d61a885ef1daf7c082bc..24f9fc556be8f7a845bf39946d40e027d5634d2a 100644 (file)
@@ -20,6 +20,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 #include "mapgen.h"
 #include "voxel.h"
 #include "noise.h"
+#include "gamedef.h"
 #include "mg_biome.h"
 #include "mapblock.h"
 #include "mapnode.h"
@@ -381,6 +382,12 @@ void GenerateNotifier::getEvents(
 ///////////////////////////////////////////////////////////////////////////////
 
 
+GenElementManager::GenElementManager(IGameDef *gamedef)
+{
+       m_ndef = gamedef->getNodeDefManager();
+}
+
+
 GenElementManager::~GenElementManager()
 {
        for (size_t i = 0; i != m_elements.size(); i++)
@@ -419,22 +426,17 @@ GenElement *GenElementManager::get(u32 id)
 }
 
 
-GenElement *GenElementManager::getByName(const char *name)
+GenElement *GenElementManager::getByName(const std::string &name)
 {
        for (size_t i = 0; i != m_elements.size(); i++) {
                GenElement *elem = m_elements[i];
-               if (elem && !strcmp(elem->name.c_str(), name))
+               if (elem && name == elem->name)
                        return elem;
        }
 
        return NULL;
 }
 
-GenElement *GenElementManager::getByName(std::string &name)
-{
-       return getByName(name.c_str());
-}
-
 
 GenElement *GenElementManager::update(u32 id, GenElement *elem)
 {
@@ -451,3 +453,9 @@ GenElement *GenElementManager::remove(u32 id)
 {
        return update(id, NULL);
 }
+
+
+void GenElementManager::clear()
+{
+       m_elements.clear();
+}