Fix sapling placement handling of on_rightclick and CONTENT_IGNORE
authorTim <t4im@users.noreply.github.com>
Tue, 4 Oct 2016 17:18:45 +0000 (19:18 +0200)
committerparamat <mat.gregory@virginmedia.com>
Wed, 5 Oct 2016 21:22:15 +0000 (22:22 +0100)
mods/default/trees.lua

index 5cd7e156ae65df6f13cbd36f08422bc611a9ff32..0b95742cb19fee2f9fee129314326a931d5e7253 100644 (file)
@@ -435,12 +435,17 @@ function default.sapling_on_place(itemstack, placer, pointed_thing,
                sapling_name, minp_relative, maxp_relative, interval)
        -- Position of sapling
        local pos = pointed_thing.under
-       local node = minetest.get_node(pos)
-       local pdef = minetest.registered_nodes[node.name]
+       local node = minetest.get_node_or_nil(pos)
+       local pdef = node and minetest.registered_nodes[node.name]
+
+       if pdef and pdef.on_rightclick and not placer:get_player_control().sneak then
+               return pdef.on_rightclick(pos, node, placer, itemstack, pointed_thing)
+       end
+
        if not pdef or not pdef.buildable_to then
                pos = pointed_thing.above
-               node = minetest.get_node(pos)
-               pdef = minetest.registered_nodes[node.name]
+               node = minetest.get_node_or_nil(pos)
+               pdef = node and minetest.registered_nodes[node.name]
                if not pdef or not pdef.buildable_to then
                        return itemstack
                end