forked from Mineclonia/Mineclonia
do not spawn too many book entities
This commit is contained in:
parent
f432458ccc
commit
6ca6da2da0
|
@ -149,19 +149,22 @@ minetest.register_craftitem("mcl_enchanting:book_enchanted", {
|
||||||
minetest.register_alias("mcl_books:book_enchanted", "mcl_enchanting:book_enchanted")
|
minetest.register_alias("mcl_books:book_enchanted", "mcl_enchanting:book_enchanted")
|
||||||
|
|
||||||
local spawn_book_entity = function(pos, respawn)
|
local spawn_book_entity = function(pos, respawn)
|
||||||
if respawn then
|
local cnt=0
|
||||||
-- Check if we already have a book
|
-- Check if we already have books within 5 nodes distance to avoid too many entities
|
||||||
local objs = minetest.get_objects_inside_radius(pos, 1)
|
local objs = minetest.get_objects_inside_radius(pos, 5)
|
||||||
for o=1, #objs do
|
for o=1, #objs do
|
||||||
local obj = objs[o]
|
local obj = objs[o]
|
||||||
local lua = obj:get_luaentity()
|
local lua = obj:get_luaentity()
|
||||||
if lua and lua.name == "mcl_enchanting:book" then
|
if lua and lua.name == "mcl_enchanting:book" then
|
||||||
if lua._table_pos and vector.equals(pos, lua._table_pos) then
|
if respawn and lua._table_pos and vector.equals(pos, lua._table_pos) then
|
||||||
return
|
return
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
cnt=cnt+1
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
if cnt > 10 then return end
|
||||||
|
|
||||||
local obj = minetest.add_entity(vector.add(pos, mcl_enchanting.book_offset), "mcl_enchanting:book")
|
local obj = minetest.add_entity(vector.add(pos, mcl_enchanting.book_offset), "mcl_enchanting:book")
|
||||||
if obj then
|
if obj then
|
||||||
local lua = obj:get_luaentity()
|
local lua = obj:get_luaentity()
|
||||||
|
|
Loading…
Reference in New Issue