mirror of
https://github.com/luanti-org/luanti.git
synced 2025-06-27 16:36:03 +00:00
Add on_deactivate callback for luaentities (#10723)
This commit is contained in:
parent
ad58fb2206
commit
dd5a732fa9
12 changed files with 106 additions and 27 deletions
|
@ -103,6 +103,32 @@ void ScriptApiEntity::luaentity_Activate(u16 id,
|
|||
lua_pop(L, 2); // Pop object and error handler
|
||||
}
|
||||
|
||||
void ScriptApiEntity::luaentity_Deactivate(u16 id)
|
||||
{
|
||||
SCRIPTAPI_PRECHECKHEADER
|
||||
|
||||
verbosestream << "scriptapi_luaentity_deactivate: id=" << id << std::endl;
|
||||
|
||||
int error_handler = PUSH_ERROR_HANDLER(L);
|
||||
|
||||
// Get the entity
|
||||
luaentity_get(L, id);
|
||||
int object = lua_gettop(L);
|
||||
|
||||
// Get on_deactivate
|
||||
lua_getfield(L, -1, "on_deactivate");
|
||||
if (!lua_isnil(L, -1)) {
|
||||
luaL_checktype(L, -1, LUA_TFUNCTION);
|
||||
lua_pushvalue(L, object);
|
||||
|
||||
setOriginFromTable(object);
|
||||
PCALL_RES(lua_pcall(L, 1, 0, error_handler));
|
||||
} else {
|
||||
lua_pop(L, 1);
|
||||
}
|
||||
lua_pop(L, 2); // Pop object and error handler
|
||||
}
|
||||
|
||||
void ScriptApiEntity::luaentity_Remove(u16 id)
|
||||
{
|
||||
SCRIPTAPI_PRECHECKHEADER
|
||||
|
|
|
@ -33,6 +33,7 @@ public:
|
|||
bool luaentity_Add(u16 id, const char *name);
|
||||
void luaentity_Activate(u16 id,
|
||||
const std::string &staticdata, u32 dtime_s);
|
||||
void luaentity_Deactivate(u16 id);
|
||||
void luaentity_Remove(u16 id);
|
||||
std::string luaentity_GetStaticdata(u16 id);
|
||||
void luaentity_GetProperties(u16 id,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue