LuaVoxelManip: Add option to allocate blank data
[oweals/minetest.git] / src / mg_ore.cpp
index de3f6b0e5dcb1a3bc601a782f908199e5706fbf0..8681b5782cca4359cc05a5d93661aa1608604cb6 100644 (file)
@@ -64,11 +64,7 @@ void OreManager::clear()
 {
        for (size_t i = 0; i < m_elements.size(); i++) {
                Ore *ore = (Ore *)m_elements[i];
-               if (!ore)
-                       continue;
-
-               m_resolver->cancelNodeList(&ore->c_wherein);
-               m_resolver->cancelNode(&ore->c_ore);
+               delete ore;
        }
        m_elements.clear();
 }
@@ -84,6 +80,19 @@ Ore::Ore()
 }
 
 
+Ore::~Ore()
+{
+       delete noise;
+}
+
+
+void Ore::resolveNodeNames(NodeResolveInfo *nri)
+{
+       m_ndef->getIdFromResolveInfo(nri, "", CONTENT_AIR, c_ore);
+       m_ndef->getIdsFromResolveInfo(nri, c_wherein);
+}
+
+
 size_t Ore::placeOre(Mapgen *mg, u32 blockseed, v3s16 nmin, v3s16 nmax)
 {
        int in_range = 0;
@@ -113,6 +122,9 @@ size_t Ore::placeOre(Mapgen *mg, u32 blockseed, v3s16 nmin, v3s16 nmax)
 }
 
 
+///////////////////////////////////////////////////////////////////////////////
+
+
 void OreScatter::generate(ManualMapVoxelManipulator *vm, int seed,
        u32 blockseed, v3s16 nmin, v3s16 nmax)
 {
@@ -151,6 +163,9 @@ void OreScatter::generate(ManualMapVoxelManipulator *vm, int seed,
 }
 
 
+///////////////////////////////////////////////////////////////////////////////
+
+
 void OreSheet::generate(ManualMapVoxelManipulator *vm, int seed,
        u32 blockseed, v3s16 nmin, v3s16 nmax)
 {