summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--api.lua21
-rw-r--r--api.txt11
2 files changed, 21 insertions, 11 deletions
diff --git a/api.lua b/api.lua
index 8fa2149..359325c 100644
--- a/api.lua
+++ b/api.lua
@@ -1,9 +1,9 @@
--- Mobs Api (9th July 2017)
+-- Mobs Api (13th July 2017)
mobs = {}
mobs.mod = "redo"
-mobs.version = "20170709"
+mobs.version = "20170713"
-- Intllib
@@ -1694,7 +1694,8 @@ local do_states = function(self, dtime)
self.object:remove()
- if minetest.get_modpath("tnt") and tnt and tnt.boom then
+ if minetest.get_modpath("tnt") and tnt and tnt.boom
+ and not minetest.is_protected(pos, "") then
tnt.boom(pos, {
radius = radius,
@@ -2973,14 +2974,24 @@ function mobs:register_arrow(name, def)
end
+-- compatibility function
function mobs:explosion(pos, radius)
+ local self = {sounds = {}}
+ self.sounds.explode = "tnt_explode"
+ mobs:boom(self, pos, radius)
+end
+
+
+-- make explosion with protection and tnt mod check
+function mobs:boom(self, pos, radius)
- if minetest.get_modpath("tnt") and tnt and tnt.boom then
+ if minetest.get_modpath("tnt") and tnt and tnt.boom
+ and not minetest.is_protected(pos, "") then
tnt.boom(pos, {
radius = radius,
damage_radius = radius,
--- sound = self.sounds.explode,
+ sound = self.sounds.explode,
})
else
mob_sound(self, self.sounds.explode)
diff --git a/api.txt b/api.txt
index e2498e9..a8a1c04 100644
--- a/api.txt
+++ b/api.txt
@@ -1,5 +1,5 @@
-MOB API (8th July 2017)
+MOB API (13th July 2017)
The mob api is a function that can be called on by other mods to add new animals or monsters into minetest.
@@ -229,15 +229,14 @@ This function registers a spawn egg which can be used by admin to properly spawn
'no_creative' when set to true this stops spawn egg appearing in creative mode for destructive mobs like Dungeon Masters
-mobs:explosion(pos, radius, fire, smoke) -- DEPRECATED!!! use tnt mod's tnt.boom function instead
+mobs:explosion(pos, radius) -- DEPRECATED!!! use mobs:boom() instead
-This function generates an explosion which removes nodes in a specific radius and replace them with fire or air. Protection nodes, obsidian and locked chests will not be destroyed although a normal chest will drop it's contents.
+mobs:boom(self, pos, radius)
+This function generates an explosion which removes nodes in a specific radius and damages any entity caught inside the blast radius. Protection will limit node destruction but not entity damage.
+ 'self' mob entity
'pos' centre position of explosion
'radius' radius of explosion (typically set to 3)
- 'fire' should fire appear in explosion (1=yes, 0=no)
- 'smoke' should smoke appear in explosion (1=yes, 0=no)
- 'sound' sound played when mob explodes
mobs:capture_mob(self, clicker, chance_hand, chance_net, chance_lasso, force_take, replacewith)