summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--api.lua10
-rw-r--r--api.txt3
2 files changed, 9 insertions, 4 deletions
diff --git a/api.lua b/api.lua
index ae95ded..894dcac 100644
--- a/api.lua
+++ b/api.lua
@@ -1,5 +1,5 @@
--- Mobs Api (8th October 2016)
+-- Mobs Api (9th October 2016)
mobs = {}
mobs.mod = "redo"
@@ -2411,7 +2411,7 @@ end -- END mobs:register_mob function
-- global functions
function mobs:spawn_specific(name, nodes, neighbors, min_light, max_light,
- interval, chance, aoc, min_height, max_height, day_toggle)
+ interval, chance, aoc, min_height, max_height, day_toggle, on_spawn)
-- chance override in minetest.conf for registered mob
local new_chance = tonumber(minetest.setting_get(name .. "_chance"))
@@ -2526,6 +2526,9 @@ function mobs:spawn_specific(name, nodes, neighbors, min_light, max_light,
-- print ("[mobs] Spawned " .. name .. " at "
-- .. minetest.pos_to_string(pos) .. " on "
-- .. node.name .. " near " .. neighbors[1])
+ if on_spawn and not on_spawn(mob, pos) then
+ return
+ end
else
print (S("[mobs] @1 failed to spawn at @2",
name, minetest.pos_to_string(pos)))
@@ -2556,9 +2559,10 @@ function mobs:spawn(def)
local min_height = def.min_height or -31000
local max_height = def.max_height or 31000
local day_toggle = def.day_toggle or nil
+ local on_spawn = def.on_spawn
mobs:spawn_specific(name, nodes, neighbors, min_light, max_light, interval,
- chance, active_object_count, min_height, max_height, day_toggle)
+ chance, active_object_count, min_height, max_height, day_toggle, on_spawn)
end
-- set content id's
diff --git a/api.txt b/api.txt
index 3c7f100..c49a50f 100644
--- a/api.txt
+++ b/api.txt
@@ -139,7 +139,7 @@ The mob api also has some preset variables and functions that it will remember f
mobs:register_spawn(name, nodes, max_light, min_light, chance, active_object_count, max_height, day_toggle)
-mobs:spawn_specfic(name, nodes, neighbors, min_light, max_light, interval, chance, active_object_count, min_height, max_height, day_toggle)
+mobs:spawn_specfic(name, nodes, neighbors, min_light, max_light, interval, chance, active_object_count, min_height, max_height, day_toggle, on_spawn)
These functions register a spawn algorithm for the mob. Without this function the call the mobs won't spawn.
@@ -154,6 +154,7 @@ These functions register a spawn algorithm for the mob. Without this function th
'min_height' is the maximum height the mob can spawn
'max_height' is the maximum height the mob can spawn
'day_toggle' true for day spawning, false for night or nil for anytime
+ 'on_spawn' is a custom function which runs after mob has spawned and gives self and pos values.
... also a simpler way to handle mob spawns has been added with the mobs:spawn(def) command which uses above names to make settings clearer: