forked from VoxeLibre/VoxeLibre
Merge pull request 'Zombie piglin no longer prevent sleep unless hostile.' (#3731) from allow_sleep_near_ziglin into master
Reviewed-on: MineClone2/MineClone2#3731
This commit is contained in:
commit
681ea9b515
|
@ -117,19 +117,23 @@ local function lay_down(player, pos, bed_pos, state, skip)
|
|||
end
|
||||
|
||||
-- No sleeping if monsters nearby.
|
||||
-- The exceptions above apply.
|
||||
-- Zombie piglin only prevent sleep while they are hostle.
|
||||
for _, obj in pairs(minetest.get_objects_inside_radius(bed_pos, 8)) do
|
||||
if obj and not obj:is_player() then
|
||||
local ent = obj:get_luaentity()
|
||||
local mobname = ent.name
|
||||
local def = minetest.registered_entities[mobname]
|
||||
-- Approximation of monster detection range
|
||||
if def.is_mob and ((mobname ~= "mobs_mc:pigman" and def.type == "monster" and not monster_exceptions[mobname]) or (mobname == "mobs_mc:pigman" and ent.state == "attack")) then
|
||||
if math.abs(bed_pos.y - obj:get_pos().y) <= 5 then
|
||||
return false, S("You can't sleep now, monsters are nearby!")
|
||||
if def.is_mob and (def.type == "monster" or mobname == "mobs_mc:zombified_piglin") then
|
||||
if monster_exceptions[mobname] or
|
||||
(mobname == "mobs_mc:zombified_piglin" and ent.state ~= "attack") then
|
||||
-- Some exceptions do not prevent sleep. Zombie piglin only prevent sleep while they are hostile.
|
||||
else
|
||||
if math.abs(bed_pos.y - obj:get_pos().y) <= 5 then
|
||||
return false, S("You can't sleep now, monsters are nearby!")
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue