From dd04be9749ff59b1d0b9e5285d34ce7c63fd67ce Mon Sep 17 00:00:00 2001 From: TenPlus1 Date: Fri, 2 Dec 2016 20:42:05 +0000 Subject: [PATCH] added die animation (thx npxcoot) --- api.lua | 36 +++++++++++++++++++++++++++++++++--- api.txt | 3 +++ 2 files changed, 36 insertions(+), 3 deletions(-) diff --git a/api.lua b/api.lua index 3d633fe..5bd62e1 100644 --- a/api.lua +++ b/api.lua @@ -1,5 +1,5 @@ --- Mobs Api (1st December 2016) +-- Mobs Api (2nd December 2016) mobs = {} mobs.mod = "redo" @@ -195,6 +195,19 @@ set_animation = function(self, type) self.animation.current = "shoot" end + elseif type == "die" + and self.animation.current ~= "die" then + + if self.animation.die_start + and self.animation.die_end then + + self.object:set_animation({ + x = self.animation.die_start, + y = self.animation.die_end}, + (self.animation.speed_die or self.animation.speed_normal), 0) + + self.animation.current = "die" + end end end @@ -370,8 +383,25 @@ function check_for_death(self) return true end - -- default death function - self.object:remove() + -- default death function and die animation (if defined) + if self.animation.die_start + and self.animation.die_end then + + self.attack = nil + self.v_start = false + self.timer = 0 + self.blinktimer = 0 + self.passive = true + self.state = "die" + set_velocity(self, 0) + set_animation(self, "die") + + minetest.after(1, function(self) + self.object:remove() + end, self) + else + self.object:remove() + end effect(pos, 20, "tnt_smoke.png") diff --git a/api.txt b/api.txt index 3473b38..5310ef8 100644 --- a/api.txt +++ b/api.txt @@ -115,11 +115,14 @@ This functions registers a new mob as a Minetest entity. 'punch2_end' end frame of alt.punch animation 'shoot_start' start frame of shoot animation 'shoot_end' end frame of shoot animation + 'die_start' start frame of die animation + 'die_end' end frame of die animation 'speed_normal' normal animation speed 'speed_run' running animation speed 'speed_punch' punching animation speed 'speed_punch2' alternative punching animation speed 'speed_shoot' shooting animation speed + 'speed_die' die animation speed 'replace_what' group if items to replace e.g. {"farming:wheat_8", "farming:carrot_8"} 'replace_with' replace with what e.g. "air" or in chickens case "mobs:egg" 'replace_rate' how random should the replace rate be (typically 10)