summaryrefslogtreecommitdiff
path: root/api.lua
diff options
context:
space:
mode:
authorTenPlus1 <kinsellaja@yahoo.com>2017-05-28 20:49:50 +0100
committerTenPlus1 <kinsellaja@yahoo.com>2017-05-28 20:49:50 +0100
commit608a5178cf9345dc7c09a10beb457cef2b4dc532 (patch)
tree89488b9e3c64287ec278f8609a16bf41161bfa03 /api.lua
parentd6ff2829178418fda28a2060da378b4e09be88ac (diff)
fix damage_per_sec checks wit some nested if's, add custom on_activate to arrows
Diffstat (limited to 'api.lua')
-rw-r--r--api.lua32
1 files changed, 19 insertions, 13 deletions
diff --git a/api.lua b/api.lua
index 246cf15..0516668 100644
--- a/api.lua
+++ b/api.lua
@@ -1,9 +1,9 @@
--- Mobs Api (27th May 2017)
+-- Mobs Api (28th May 2017)
mobs = {}
mobs.mod = "redo"
-mobs.version = "20170527"
+mobs.version = "20170528"
-- Intllib
@@ -550,7 +550,7 @@ local do_env_damage = function(self)
-- what is mob standing in?
pos.y = pos.y + self.collisionbox[2] + 0.1 -- foot level
self.standing_in = node_ok(pos, "air").name
- --print ("standing in " .. self.standing_in)
+-- print ("standing in " .. self.standing_in)
-- don't fall when on ignore, just stand still
if self.standing_in == "ignore" then
@@ -566,26 +566,30 @@ local do_env_damage = function(self)
pos.y = pos.y + 1
-- water
- if self.water_damage ~= 0
- and nodef.groups.water then
+ if nodef.groups.water then
- self.health = self.health - self.water_damage
+ if self.water_damage ~= 0 then
- effect(pos, 5, "bubble.png", nil, nil, 1, nil)
+ self.health = self.health - self.water_damage
- if check_for_death(self, "water") then return end
+ effect(pos, 5, "bubble.png", nil, nil, 1, nil)
+
+ if check_for_death(self, "water") then return end
+ end
-- lava or fire
- elseif self.lava_damage ~= 0
- and (nodef.groups.lava
+ elseif (nodef.groups.lava
or self.standing_in == "fire:basic_flame"
or self.standing_in == "fire:permanent_flame") then
- self.health = self.health - self.lava_damage
+ if self.lava_damage ~= 0 then
- effect(pos, 5, "fire_basic_flame.png", nil, nil, 1, nil)
+ self.health = self.health - self.lava_damage
- if check_for_death(self, "lava") then return end
+ effect(pos, 5, "fire_basic_flame.png", nil, nil, 1, nil)
+
+ if check_for_death(self, "lava") then return end
+ end
-- damage_per_second node check
elseif minetest.registered_nodes[self.standing_in].damage_per_second ~= 0 then
@@ -2879,6 +2883,8 @@ function mobs:register_arrow(name, def)
automatic_face_movement_dir = def.rotate
and (def.rotate - (pi / 180)) or false,
+ on_activate = def.on_activate or nil,
+
on_step = def.on_step or function(self, dtime)
self.timer = self.timer + 1