]> git.lizzy.rs Git - dragonfireclient.git/blobdiff - src/map.cpp
Add API for mods to hook liquid transformation events (#11405)
[dragonfireclient.git] / src / map.cpp
index aff545921895d75908f31db297cf9b1160d232ac..30ce064d6a00410edfee53d2b6c01ef1e557f016 100644 (file)
@@ -829,7 +829,7 @@ void Map::transformLiquids(std::map<v3s16, MapBlock*> &modified_blocks,
                m_transforming_liquid.push_back(iter);
 
        voxalgo::update_lighting_nodes(this, changed_nodes, modified_blocks);
-
+       env->getScriptIface()->on_liquid_transformed(changed_nodes);
 
        /* ----------------------------------------------------------------------
         * Manage the queue so that it does not grow indefinately
@@ -1184,7 +1184,7 @@ bool Map::isBlockOccluded(MapBlock *block, v3s16 cam_pos_nodes)
 ServerMap::ServerMap(const std::string &savedir, IGameDef *gamedef,
                EmergeManager *emerge, MetricsBackend *mb):
        Map(gamedef),
-       settings_mgr(g_settings, savedir + DIR_DELIM + "map_meta.txt"),
+       settings_mgr(savedir + DIR_DELIM + "map_meta.txt"),
        m_emerge(emerge)
 {
        verbosestream<<FUNCTION_NAME<<std::endl;
@@ -1549,6 +1549,11 @@ MapBlock *ServerMap::getBlockOrEmerge(v3s16 p3d)
        return block;
 }
 
+bool ServerMap::isBlockInQueue(v3s16 pos)
+{
+       return m_emerge && m_emerge->isBlockInQueue(pos);
+}
+
 // N.B.  This requires no synchronization, since data will not be modified unless
 // the VoxelManipulator being updated belongs to the same thread.
 void ServerMap::updateVManip(v3s16 pos)