From d20dfa0b412e728bf22956eea69dae8135a3d05f Mon Sep 17 00:00:00 2001 From: tenplus1 Date: Fri, 26 Apr 2024 07:44:39 +0100 Subject: [PATCH] added check for on_death() function before api's own on_die() --- api.lua | 13 ++++++++++++- api.txt | 1 + readme.MD | 1 + 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/api.lua b/api.lua index 0dcdd71..7da9061 100644 --- a/api.lua +++ b/api.lua @@ -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, diff --git a/api.txt b/api.txt index b202ca3..1a04959 100644 --- a/api.txt +++ b/api.txt @@ -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. diff --git a/readme.MD b/readme.MD index aed0801..0e3d3e9 100644 --- a/readme.MD +++ b/readme.MD @@ -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