mirror of
https://github.com/minetest/minetest.git
synced 2024-12-04 13:33:44 +01:00
52128ae11e
Add API for mods to hook liquid transformation events Without this API, there is no reliable way for mods to be notified when liquid transform modifies nodes and mods are forced to poll for changes. This allows mods to detect changes to flowing liquid nodes and liquid renewal using event-driven logic.
51 lines
1.6 KiB
C++
51 lines
1.6 KiB
C++
/*
|
|
Minetest
|
|
Copyright (C) 2013 celeron55, Perttu Ahola <celeron55@gmail.com>
|
|
|
|
This program is free software; you can redistribute it and/or modify
|
|
it under the terms of the GNU Lesser General Public License as published by
|
|
the Free Software Foundation; either version 2.1 of the License, or
|
|
(at your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU Lesser General Public License for more details.
|
|
|
|
You should have received a copy of the GNU Lesser General Public License along
|
|
with this program; if not, write to the Free Software Foundation, Inc.,
|
|
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include "cpp_api/s_base.h"
|
|
#include "irr_v3d.h"
|
|
#include "mapnode.h"
|
|
#include <vector>
|
|
|
|
class ServerEnvironment;
|
|
struct ScriptCallbackState;
|
|
|
|
class ScriptApiEnv : virtual public ScriptApiBase
|
|
{
|
|
public:
|
|
// Called on environment step
|
|
void environment_Step(float dtime);
|
|
|
|
// 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);
|
|
|
|
// Called after liquid transform changes
|
|
void on_liquid_transformed(const std::vector<std::pair<v3s16, MapNode>> &list);
|
|
|
|
void initializeEnvironment(ServerEnvironment *env);
|
|
};
|