mirror of
https://github.com/luanti-org/minetest_game.git
synced 2025-05-21 06:43:17 -04:00
Fixed partial door issue in bones.
https://f.cloud.github.com/assets/950942/44526/bcc65de0-56c7-11e2-905e-d8a82d3e44a6.png When a node's can_dig() function is checked, it only tells if that player can dig the node. However, bones uses this function, then assumes the node can be dug by a nil player, as opposed to having the player himself/herself dig the node. This assumption isn't always accurate, and results in partial doors in some cases, as depicted in the screenshot above. Basically, the player themselves can dig the locked door, but the nil player cannot, resulting in the door's after_dig_node() not getting called This patch fixes this issue by assuming the nil player cannot dig any node that specifies a can_dig() function. This allows nodes that prefer to limit who can dig them to function as usual (such as locked doors) while still allowing bones to remove the majority of nodes (including unlocked doors) with no error.
This commit is contained in:
parent
4bd6bce86e
commit
bf1d0ccfd8
1 changed files with 1 additions and 2 deletions
|
@ -89,8 +89,7 @@ minetest.register_on_dieplayer(function(player)
|
||||||
local param2 = minetest.dir_to_facedir(player:get_look_dir())
|
local param2 = minetest.dir_to_facedir(player:get_look_dir())
|
||||||
|
|
||||||
local nn = minetest.get_node(pos).name
|
local nn = minetest.get_node(pos).name
|
||||||
if minetest.registered_nodes[nn].can_dig and
|
if minetest.registered_nodes[nn].can_dig then
|
||||||
not minetest.registered_nodes[nn].can_dig(pos, player) then
|
|
||||||
local player_inv = player:get_inventory()
|
local player_inv = player:get_inventory()
|
||||||
|
|
||||||
for i=1,player_inv:get_size("main") do
|
for i=1,player_inv:get_size("main") do
|
||||||
|
|
Loading…
Add table
Reference in a new issue