1
0
mirror of https://github.com/luanti-org/luanti.git synced 2025-10-16 09:55:22 +02:00

Add on_deactivate callback for luaentities (#10723)

This commit is contained in:
hecks
2021-01-02 15:14:29 +01:00
committed by GitHub
parent ad58fb2206
commit dd5a732fa9
12 changed files with 106 additions and 27 deletions

View File

@@ -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