summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--api.lua36
-rw-r--r--api.txt3
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)