added check for on_death() function before api's own on_die()

This commit is contained in:
tenplus1 2024-04-26 07:44:39 +01:00
parent e9180febc6
commit d20dfa0b41
3 changed files with 14 additions and 1 deletions

13
api.lua
View File

@ -14,7 +14,7 @@ local use_vh1 = minetest.get_modpath("visual_harm_1ndicators")
-- Global
mobs = {
mod = "redo",
version = "20240425",
version = "20240426",
translate = S,
invis = minetest.global_exists("invisibility") and invisibility or {},
node_snow = minetest.registered_aliases["mapgen_snow"]
@ -879,6 +879,16 @@ function mob_class:check_for_death(cmi_cause)
local pos = self.object:get_pos()
-- execute official engine on_death function if found
if self.on_death then
self:on_death(self, cmi_cause)
remove_mob(self, true)
return true
end
-- execute custom death function
if pos and self.on_die then
@ -3713,6 +3723,7 @@ minetest.register_entity(":" .. name, setmetatable({
on_rightclick = def.on_rightclick,
on_die = def.on_die,
on_death = def.on_death, -- engine function for entity death
on_flop = def.on_flop,
do_custom = def.do_custom,
on_replace = def.on_replace,

View File

@ -336,6 +336,7 @@ enhance mob functionality and have them do many interesting things:
is returned normal attack function continued.
'on_die' a function that is called when mob is killed (self, pos), also
has access to self.cause_of_death table.
'on_death' Official engine version of above when mob killed (self, cause).
'on_flop' function called when flying or swimmimng mob is no longer in
air/water, (self) paramater and return true to skip the built
in api flop feature.

View File

@ -32,6 +32,7 @@ https://forum.minetest.net/viewtopic.php?f=11&t=9917
* Added self.homing so that arrows follow player when visible
* Added support for Visual Harm 1ndicators mod to show health bars
* Added self.node_damage flag which is true by default to enable damage_per_second node damage
* Added check for on_death() function before using mob api's own on_die() one
### Version 1.60