mirror of
https://github.com/luanti-org/minetest_game.git
synced 2025-05-21 23:03:16 -04:00
take buidable_to into account, and make it the default decision if bones would be about to replace it
This commit is contained in:
parent
fc1df1194f
commit
650c76a90d
1 changed files with 19 additions and 13 deletions
|
@ -103,23 +103,29 @@ local function may_replace(pos, player)
|
||||||
local node_definition = minetest.registered_nodes[node_name]
|
local node_definition = minetest.registered_nodes[node_name]
|
||||||
|
|
||||||
-- if the node is unknown, we let the protection mod decide
|
-- if the node is unknown, we let the protection mod decide
|
||||||
|
-- this is consistent with when a player could dig or not dig it
|
||||||
-- unknown decoration would often be removed
|
-- unknown decoration would often be removed
|
||||||
-- while unknown building materials in use would usually be left
|
-- while unknown building materials in use would usually be left
|
||||||
if node_definition then
|
if not node_definition then
|
||||||
-- allow replacing air and liquids
|
-- only replace nodes that are not protected
|
||||||
if node_name == "air" or node_definition.liquidtype ~= "none" then
|
return not minetest.is_protected(pos, player:get_player_name())
|
||||||
return true
|
|
||||||
end
|
|
||||||
|
|
||||||
-- don't replace filled chests and other nodes that don't allow it
|
|
||||||
local can_dig_func = node_definition.can_dig
|
|
||||||
if can_dig_func and not can_dig_func(pos, player) then
|
|
||||||
return false
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
-- only replace nodes that are not protected
|
-- allow replacing air and liquids
|
||||||
return not minetest.is_protected(pos, player:get_player_name())
|
if node_name == "air" or node_definition.liquidtype ~= "none" then
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
|
||||||
|
-- don't replace filled chests and other nodes that don't allow it
|
||||||
|
local can_dig_func = node_definition.can_dig
|
||||||
|
if can_dig_func and not can_dig_func(pos, player) then
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
|
-- default to each nodes buildable_to; if a placed block would replace it, why shouldn't bones?
|
||||||
|
-- flowers being squished by bones are more realistical than a squished stone, too
|
||||||
|
-- exception are of course any protected buildable_to
|
||||||
|
return node_definition.buildable_to and not minetest.is_protected(pos, player:get_player_name())
|
||||||
end
|
end
|
||||||
|
|
||||||
minetest.register_on_dieplayer(function(player)
|
minetest.register_on_dieplayer(function(player)
|
||||||
|
|
Loading…
Add table
Reference in a new issue