]> git.lizzy.rs Git - minetest.git/blobdiff - src/script/cpp_api/s_env.h
Add callback on_mapblocks_changed
[minetest.git] / src / script / cpp_api / s_env.h
index 180cfabd063560489de4d8e9c9fd2d0393b462a6..bc4c4cd4d40db3f081a2dfd389839e43b36fd5f9 100644 (file)
@@ -17,28 +17,43 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
-#ifndef S_ENV_H_
-#define S_ENV_H_
+#pragma once
 
 #include "cpp_api/s_base.h"
 #include "irr_v3d.h"
+#include "mapnode.h"
+#include <unordered_set>
+#include <vector>
 
 class ServerEnvironment;
-struct MapgenParams;
+struct ScriptCallbackState;
 
-class ScriptApiEnv
-               : virtual public ScriptApiBase
+class ScriptApiEnv : virtual public ScriptApiBase
 {
 public:
-       // On environment step
+       // Called on environment step
        void environment_Step(float dtime);
-       // After generating a piece of map
-       void environment_OnGenerated(v3s16 minp, v3s16 maxp,u32 blockseed);
 
-       //called on player event
-       void player_event(ServerActiveObject* player, std::string type);
+       // Called after generating a piece of map
+       void environment_OnGenerated(v3s16 minp, v3s16 maxp, u32 blockseed);
+
+       // Called on player event
+       void player_event(ServerActiveObject *player, const std::string &type);
+
+       // Called after emerge of a block queued from core.emerge_area()
+       void on_emerge_area_completion(v3s16 blockpos, int action,
+               ScriptCallbackState *state);
+
+       void check_for_falling(v3s16 p);
+
+       // Called after liquid transform changes
+       void on_liquid_transformed(const std::vector<std::pair<v3s16, MapNode>> &list);
+
+       // Called after mapblock changes
+       void on_mapblocks_changed(const std::unordered_set<v3s16> &set);
+
+       // Determines whether there are any on_mapblocks_changed callbacks
+       bool has_on_mapblocks_changed();
 
        void initializeEnvironment(ServerEnvironment *env);
 };
-
-#endif /* S_ENV_H_ */