try placing the bones farther up first before escalating to drop the items

this should solve most cases of protection related deaths in which players dig straight down
This commit is contained in:
Tim 2014-12-30 05:07:14 +01:00
parent b8f088a00e
commit 97d73f7358

View file

@ -139,6 +139,12 @@ minetest.register_on_dieplayer(function(player)
local player_inv = player:get_inventory() local player_inv = player:get_inventory()
if (not may_replace(pos, player)) then if (not may_replace(pos, player)) then
if (may_replace({x=pos.x, y=pos.y+1, z=pos.z}, player)) then
-- drop one node above if there's space
-- this should solve most cases of protection related deaths in which players dig straight down
-- yet keeps the bones reachable
pos.y = pos.y+1
else
-- drop items instead of delete -- drop items instead of delete
for i=1,player_inv:get_size("main") do for i=1,player_inv:get_size("main") do
minetest.add_item(pos, player_inv:get_stack("main", i)) minetest.add_item(pos, player_inv:get_stack("main", i))
@ -151,6 +157,7 @@ minetest.register_on_dieplayer(function(player)
player_inv:set_list("craft", {}) player_inv:set_list("craft", {})
return return
end end
end
minetest.set_node(pos, {name="bones:bones", param2=param2}) minetest.set_node(pos, {name="bones:bones", param2=param2})