From ec4ba73bab1140c9a639df05f83921f7e47e1b94 Mon Sep 17 00:00:00 2001 From: TenPlus1 Date: Wed, 18 Oct 2017 19:56:04 +0100 Subject: [PATCH] added custom after_activate function check --- api.lua | 11 ++++++++--- api.txt | 3 ++- api_new.txt | 52 +++++++++++++++++++++++++++------------------------- 3 files changed, 37 insertions(+), 29 deletions(-) diff --git a/api.lua b/api.lua index 93e0467..b934af7 100644 --- a/api.lua +++ b/api.lua @@ -2099,9 +2099,9 @@ local mob_punch = function(self, hitter, tflp, tool_capabilities, dir) end -- mob health check - if self.health <= 0 then - return - end +-- if self.health <= 0 then +-- return +-- end -- error checking when mod profiling is enabled if not tool_capabilities then @@ -2507,6 +2507,11 @@ local mob_activate = function(self, staticdata, def, dtime) end end + -- run after_activate + if def.after_activate then + def.after_activate(self, staticdata, def, dtime) + end + if use_cmi then self._cmi_components = cmi.activate_components(self.serialized_cmi_components) cmi.notify_activate(self.object, dtime) diff --git a/api.txt b/api.txt index 6a619a1..3ec6908 100644 --- a/api.txt +++ b/api.txt @@ -1,5 +1,5 @@ -MOB API (13th October 2017) +MOB API (18th October 2017) The mob api is a function that can be called on by other mods to add new animals or monsters into minetest. @@ -110,6 +110,7 @@ Custom mob functions inside mob registry: 'on_rightclick' its same as in minetest.register_entity() 'on_blast' is called when an explosion happens near mob when using TNT functions, parameters are (object, damage) and returns (do_damage, do_knockback, drops) 'on_spawn' is a custom function that runs on mob spawn with 'self' as variable, return true at end of function to run only once. + 'after_activate' is a custom function that runs once mob has been activated with the paramaters (self, staticdata, def, dtime) 'on_breed' called when two similar mobs breed, paramaters are (parent1, parent2) objects, return false to stop child from being resized and owner/tamed flags and child textures being applied. 'on_grown' is called when a child mob has grown up, only paramater is (self). 'do_punch' called when mob is punched with paramaters (self, hitter, time_from_last_punch, tool_capabilities, direction), return false to stop punch damage and knockback from taking place. diff --git a/api_new.txt b/api_new.txt index 41a4bc8..15b87a3 100644 --- a/api_new.txt +++ b/api_new.txt @@ -1,5 +1,5 @@ -Mobs Redo API (last updated 13th Oct 2017) +Mobs Redo API (last updated 18th Oct 2017) ========================================== Welcome to the world of mobs in minetest and hopefully an easy guide to defining @@ -228,30 +228,32 @@ Custom Definition Functions Along with the above mob registry settings we can also use custom functions to enhance mob functionality and have them do many interesting things: - 'on_die' a function that is called when the mob is killed the - parameters are (self, pos) - 'on_rightclick' its same as in minetest.register_entity() - 'on_blast' is called when an explosion happens near mob when using TNT - functions, parameters are (object, damage) and returns - (do_damage, do_knockback, drops) - 'on_spawn' is a custom function that runs on mob spawn with 'self' as - variable, return true at end of function to run only once. - 'on_breed' called when two similar mobs breed, paramaters are - (parent1, parent2) objects, return false to stop child from - being resized and owner/tamed flags and child textures being - applied. Function itself must spawn new child mob. - 'on_grown' is called when a child mob has grown up, only paramater is - (self). - 'do_punch' called when mob is punched with paramaters (self, hitter, - time_from_last_punch, tool_capabilities, direction), return - false to stop punch damage and knockback from taking place. - 'custom_attack' when set this function is called instead of the normal mob - melee attack, parameters are (self, to_attack). - 'on_die' a function that is called when mob is killed - 'do_custom' a custom function that is called every tick while mob is - active and which has access to all of the self.* variables - e.g. (self.health for health or self.standing_in for node - status), return with 'false' to skip remainder of mob API. + 'on_die' a function that is called when the mob is killed the + parameters are (self, pos) + 'on_rightclick' its same as in minetest.register_entity() + 'on_blast' is called when an explosion happens near mob when using TNT + functions, parameters are (object, damage) and returns + (do_damage, do_knockback, drops) + 'on_spawn' is a custom function that runs on mob spawn with 'self' as + variable, return true at end of function to run only once. + 'after_activate' is a custom function that runs once mob has been activated + with these paramaters (self, staticdata, def, dtime) + 'on_breed' called when two similar mobs breed, paramaters are + (parent1, parent2) objects, return false to stop child from + being resized and owner/tamed flags and child textures being + applied. Function itself must spawn new child mob. + 'on_grown' is called when a child mob has grown up, only paramater is + (self). + 'do_punch' called when mob is punched with paramaters (self, hitter, + time_from_last_punch, tool_capabilities, direction), return + false to stop punch damage and knockback from taking place. + 'custom_attack' when set this function is called instead of the normal mob + melee attack, parameters are (self, to_attack). + 'on_die' a function that is called when mob is killed + 'do_custom' a custom function that is called every tick while mob is + active and which has access to all of the self.* variables + e.g. (self.health for health or self.standing_in for node + status), return with 'false' to skip remainder of mob API. Internal Variables