Dispensers now support spawn eggs
This commit is contained in:
parent
7c3bf9715a
commit
5df8579e88
|
@ -2826,7 +2826,7 @@ function mobs:register_egg(mob, desc, background, addegg, no_creative)
|
|||
|
||||
if pos
|
||||
and within_limits(pos, 0)
|
||||
and not minetest.is_protected(pos, placer:get_player_name()) then
|
||||
and (not placer or not minetest.is_protected(pos, placer:get_player_name())) then
|
||||
|
||||
pos.y = pos.y + 1
|
||||
|
||||
|
@ -2840,9 +2840,11 @@ function mobs:register_egg(mob, desc, background, addegg, no_creative)
|
|||
|
||||
if ent.type ~= "monster" then
|
||||
-- set owner and tame if not monster
|
||||
if placer then
|
||||
ent.owner = placer:get_player_name()
|
||||
ent.tamed = true
|
||||
end
|
||||
end
|
||||
|
||||
-- if not in creative then take item
|
||||
if not creative then
|
||||
|
|
|
@ -298,6 +298,17 @@ local dispenserdef = {
|
|||
end
|
||||
end
|
||||
|
||||
elseif igroups.spawn_egg then
|
||||
-- Place spawn egg
|
||||
if not dropnodedef.walkable then
|
||||
pointed_thing = { above = droppos, under = { x=droppos.x, y=droppos.y-1, z=droppos.z } }
|
||||
|
||||
minetest.registered_items[iname].on_place(ItemStack(iname), nil, pointed_thing)
|
||||
|
||||
stack:take_item()
|
||||
inv:set_stack("main", stack_id, stack)
|
||||
end
|
||||
|
||||
-- TODO: Many other dispenser actions
|
||||
else
|
||||
-- Drop item
|
||||
|
|
Loading…
Reference in New Issue