diff --git a/mods/butterflies/init.lua b/mods/butterflies/init.lua index 49240eea..0fee374f 100644 --- a/mods/butterflies/init.lua +++ b/mods/butterflies/init.lua @@ -75,14 +75,20 @@ for i in ipairs (butter_list) do on_place = function(itemstack, placer, pointed_thing) local player_name = placer:get_player_name() local pos = pointed_thing.above + local node = minetest.get_node(pointed_thing.under) if not minetest.is_protected(pos, player_name) and - not minetest.is_protected(pointed_thing.under, player_name) and - minetest.get_node(pos).name == "air" then - minetest.set_node(pos, {name = "butterflies:hidden_butterfly_"..name}) - minetest.get_node_timer(pos):start(1) - itemstack:take_item() - end + not minetest.is_protected(pointed_thing.under, player_name) and + minetest.get_node(pos).name == "air" then + if minetest.registered_nodes[node.name] and minetest.registered_nodes[node.name].on_rightclick then + if placer and placer:get_player_control().sneak then + minetest.set_node(pos, {name = "butterflies:hidden_butterfly_"..name}) + minetest.get_node_timer(pos):start(1) + itemstack:take_item() + else + return minetest.registered_nodes[node.name].on_rightclick(pointed_thing.under, node, placer, itemstack) + end + end return itemstack end, on_timer = function(pos, elapsed)