forked from VoxeLibre/VoxeLibre
Fix mob spawner icon not shown in gen'd spawners
This commit is contained in:
parent
f676a2fc2c
commit
0d6b57c9c4
|
@ -23,6 +23,10 @@ local function find_doll(pos)
|
||||||
return nil
|
return nil
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local function spawn_doll(pos)
|
||||||
|
return minetest.add_entity({x=pos.x, y=pos.y-0.3, z=pos.z}, "mcl_mobspawners:doll")
|
||||||
|
end
|
||||||
|
|
||||||
local function set_doll_properties(doll, mob)
|
local function set_doll_properties(doll, mob)
|
||||||
local mobinfo = minetest.registered_entities[mob]
|
local mobinfo = minetest.registered_entities[mob]
|
||||||
local prop = {
|
local prop = {
|
||||||
|
@ -69,9 +73,10 @@ function mcl_mobspawners.setup_spawner(pos, Mob, MinLight, MaxLight, MaxMobsInAr
|
||||||
meta:set_int("YOffset", YOffset)
|
meta:set_int("YOffset", YOffset)
|
||||||
|
|
||||||
-- Create doll
|
-- Create doll
|
||||||
local doll = minetest.add_entity({x=pos.x, y=pos.y-0.3, z=pos.z}, "mcl_mobspawners:doll")
|
local doll = spawn_doll(pos)
|
||||||
set_doll_properties(doll, Mob)
|
set_doll_properties(doll, Mob)
|
||||||
|
|
||||||
|
|
||||||
-- Start spawning very soon
|
-- Start spawning very soon
|
||||||
local t = minetest.get_node_timer(pos)
|
local t = minetest.get_node_timer(pos)
|
||||||
t:start(2)
|
t:start(2)
|
||||||
|
@ -135,6 +140,19 @@ local spawn_monsters = function(pos, elapsed)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--[[ HACK!
|
||||||
|
The doll may not stay spawned if the monster spawner is placed far away from
|
||||||
|
players, so we will check for its existance periodically when a player is nearby.
|
||||||
|
This would happen almost always when the monster spawner is placed by the mapgen.
|
||||||
|
FIXME: Find out why the doll does not seem to spawn / despawns immediately when
|
||||||
|
monster spawner is placed by mapgen.
|
||||||
|
]]
|
||||||
|
local doll = find_doll(pos)
|
||||||
|
if not doll then
|
||||||
|
doll = spawn_doll(pos)
|
||||||
|
set_doll_properties(doll, mob)
|
||||||
|
end
|
||||||
|
|
||||||
-- count mob objects of same type in area
|
-- count mob objects of same type in area
|
||||||
for k, obj in ipairs(objs) do
|
for k, obj in ipairs(objs) do
|
||||||
|
|
||||||
|
|
Reference in New Issue