prevent infinite spawning of mobs - added max value of mobs spawned
This commit is contained in:
parent
3a2f617b92
commit
f93f266fff
@ -172,11 +172,31 @@ function spawners_mobs.start_spawning(random_pos, how_many, mob_name, mod_prefix
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
function spawners_mobs.check_around_radius(pos)
|
function spawners_mobs.check_around_radius(pos, mob)
|
||||||
local player_near = false
|
local player_near = false
|
||||||
local radius = 21
|
local radius = 21
|
||||||
|
local mobs = {}
|
||||||
|
|
||||||
for _,obj in ipairs(minetest.get_objects_inside_radius(pos, radius)) do
|
for _,obj in ipairs(minetest.get_objects_inside_radius(pos, radius)) do
|
||||||
|
|
||||||
|
local luae = obj:get_luaentity()
|
||||||
|
|
||||||
|
-- check for number of mobs near by
|
||||||
|
if luae ~= nil and luae.name ~= nil and mob ~= nil then
|
||||||
|
local mob_name = string.split(luae.name, ":")
|
||||||
|
mob_name = mob_name[2]
|
||||||
|
|
||||||
|
if mob_name == mob then
|
||||||
|
table.insert(mobs, mob)
|
||||||
|
end
|
||||||
|
|
||||||
|
if #mobs >= 8 then
|
||||||
|
player_near = false
|
||||||
|
return player_near
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
-- check for player near by
|
||||||
if obj:is_player() then
|
if obj:is_player() then
|
||||||
player_near = true
|
player_near = true
|
||||||
end
|
end
|
||||||
@ -186,7 +206,7 @@ function spawners_mobs.check_around_radius(pos)
|
|||||||
end
|
end
|
||||||
|
|
||||||
function spawners_mobs.check_node_status(pos, mob, night_only)
|
function spawners_mobs.check_node_status(pos, mob, night_only)
|
||||||
local player_near = spawners_mobs.check_around_radius(pos)
|
local player_near = spawners_mobs.check_around_radius(pos, mob)
|
||||||
|
|
||||||
if player_near then
|
if player_near then
|
||||||
local random_pos = false
|
local random_pos = false
|
||||||
|
@ -305,4 +305,4 @@ for i, mob_table in ipairs(spawners_mobs.mob_tables) do
|
|||||||
|
|
||||||
spawners_mobs.create(mob_table.name, mob_table.mod_prefix, mob_table.dummy_size, mob_table.dummy_offset, mob_table.dummy_mesh, mob_table.dummy_texture, mob_table.night_only, mob_table.sound_custom)
|
spawners_mobs.create(mob_table.name, mob_table.mod_prefix, mob_table.dummy_size, mob_table.dummy_offset, mob_table.dummy_mesh, mob_table.dummy_texture, mob_table.night_only, mob_table.sound_custom)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
Loading…
Reference in New Issue
Block a user