]> git.lizzy.rs Git - minetest.git/blobdiff - src/mg_ore.cpp
Do not allow the m_transforming_liquid queue to increase until all RAM is consumed
[minetest.git] / src / mg_ore.cpp
index 1aac59ddb0efe71f9f869e7d43e5c5c685db2da2..de3f6b0e5dcb1a3bc601a782f908199e5706fbf0 100644 (file)
@@ -37,6 +37,12 @@ FlagDesc flagdesc_ore[] = {
 ///////////////////////////////////////////////////////////////////////////////
 
 
+OreManager::OreManager(IGameDef *gamedef) :
+       GenElementManager(gamedef)
+{
+}
+
+
 size_t OreManager::placeAllOres(Mapgen *mg, u32 seed, v3s16 nmin, v3s16 nmax)
 {
        size_t nplaced = 0;
@@ -54,9 +60,30 @@ size_t OreManager::placeAllOres(Mapgen *mg, u32 seed, v3s16 nmin, v3s16 nmax)
 }
 
 
+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);
+       }
+       m_elements.clear();
+}
+
+
 ///////////////////////////////////////////////////////////////////////////////
 
 
+Ore::Ore()
+{
+       flags = 0;
+       noise = NULL;
+}
+
+
 size_t Ore::placeOre(Mapgen *mg, u32 blockseed, v3s16 nmin, v3s16 nmax)
 {
        int in_range = 0;
@@ -162,4 +189,3 @@ void OreSheet::generate(ManualMapVoxelManipulator *vm, int seed,
                }
        }
 }
-