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 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 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_ */