]> git.lizzy.rs Git - minetest.git/blobdiff - src/serverenvironment.h
Add callback on_mapblocks_changed
[minetest.git] / src / serverenvironment.h
index 5c4b23f402d6a5e26e36d35f14dcc45fba4eade8..bb40a33ce221c09bbfb5eda439fcc238fa2fab86 100644 (file)
@@ -21,7 +21,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 
 #include "activeobject.h"
 #include "environment.h"
-#include "mapnode.h"
+#include "map.h"
 #include "settings.h"
 #include "server/activeobjectmgr.h"
 #include "util/numeric.h"
@@ -30,9 +30,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 #include <random>
 
 class IGameDef;
-class ServerMap;
 struct GameParams;
-class MapBlock;
 class RemotePlayer;
 class PlayerDatabase;
 class AuthDatabase;
@@ -193,6 +191,16 @@ class ActiveBlockList
        std::set<v3s16> m_forceloaded_list;
 };
 
+/*
+       ServerEnvironment::m_on_mapblocks_changed_receiver
+*/
+struct OnMapblocksChangedReceiver : public MapEventReceiver {
+       std::unordered_set<v3s16> modified_blocks;
+       bool receiving = false;
+
+       void onMapEditEvent(const MapEditEvent &event) override;
+};
+
 /*
        Operation mode for ServerEnvironment::clearObjects()
 */
@@ -455,6 +463,8 @@ class ServerEnvironment final : public Environment
        Server *m_server;
        // Active Object Manager
        server::ActiveObjectMgr m_ao_manager;
+       // on_mapblocks_changed map event receiver
+       OnMapblocksChangedReceiver m_on_mapblocks_changed_receiver;
        // World path
        const std::string m_path_world;
        // Outgoing network message buffer for active objects