aboutsummaryrefslogtreecommitdiff
path: root/src/server/luaentity_sao.cpp
diff options
context:
space:
mode:
authorElias Fleckenstein <eliasfleckenstein@web.de>2021-01-07 12:35:04 +0100
committerElias Fleckenstein <eliasfleckenstein@web.de>2021-01-07 12:35:04 +0100
commitcca4254f7c502b3e75691c6a3087da7cfcd72e28 (patch)
treee71b47442e77e09ca17e2c9c121a455f9deeace2 /src/server/luaentity_sao.cpp
parent4fedc3a31ee20813e4c81377b3bd2af05a26b858 (diff)
parent58a709096ef8ff17644cf201f25b1831d9506514 (diff)
downloaddragonfireclient-cca4254f7c502b3e75691c6a3087da7cfcd72e28.tar.xz
Merge branch 'master' of https://github.com/minetest/minetest
Diffstat (limited to 'src/server/luaentity_sao.cpp')
-rw-r--r--src/server/luaentity_sao.cpp13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/server/luaentity_sao.cpp b/src/server/luaentity_sao.cpp
index b39797531..c7277491a 100644
--- a/src/server/luaentity_sao.cpp
+++ b/src/server/luaentity_sao.cpp
@@ -112,6 +112,15 @@ void LuaEntitySAO::addedToEnvironment(u32 dtime_s)
}
}
+void LuaEntitySAO::dispatchScriptDeactivate()
+{
+ // Ensure that this is in fact a registered entity,
+ // and that it isn't already gone.
+ // The latter also prevents this from ever being called twice.
+ if (m_registered && !isGone())
+ m_env->getScriptIface()->luaentity_Deactivate(m_id);
+}
+
void LuaEntitySAO::step(float dtime, bool send_recommended)
{
if(!m_properties_sent)
@@ -302,7 +311,7 @@ u16 LuaEntitySAO::punch(v3f dir,
{
if (!m_registered) {
// Delete unknown LuaEntities when punched
- m_pending_removal = true;
+ markForRemoval();
return 0;
}
@@ -335,7 +344,7 @@ u16 LuaEntitySAO::punch(v3f dir,
clearParentAttachment();
clearChildAttachments();
m_env->getScriptIface()->luaentity_on_death(m_id, puncher);
- m_pending_removal = true;
+ markForRemoval();
}
actionstream << puncher->getDescription() << " (id=" << puncher->getId() <<