on_place = function(itemstack, placer, pointed_thing)
local under = pointed_thing.under
+ local node = minetest.get_node(under)
+ local udef = minetest.registered_nodes[node.name]
+ if udef and udef.on_rightclick and
+ not (placer and placer:get_player_control().sneak) then
+ return udef.on_rightclick(under, node, placer, itemstack,
+ pointed_thing) or itemstack
+ end
+
local pos
if minetest.registered_items[minetest.get_node(under).name].buildable_to then
pos = under
groups = {flammable = 2},
on_place = function(itemstack, placer, pointed_thing)
+ local under = pointed_thing.under
+ local node = minetest.get_node(under)
+ local udef = minetest.registered_nodes[node.name]
+ if udef and udef.on_rightclick and
+ not (placer and placer:get_player_control().sneak) then
+ return udef.on_rightclick(under, node, placer, itemstack,
+ pointed_thing) or itemstack
+ end
+
if pointed_thing.type ~= "node" then
return itemstack
end
inventory_image = minetest.inventorycube("carts_cart_top.png", "carts_cart_side.png", "carts_cart_side.png"),
wield_image = "carts_cart_side.png",
on_place = function(itemstack, placer, pointed_thing)
+ local under = pointed_thing.under
+ local node = minetest.get_node(under)
+ local udef = minetest.registered_nodes[node.name]
+ if udef and udef.on_rightclick and
+ not (placer and placer:get_player_control().sneak) then
+ return udef.on_rightclick(under, node, placer, itemstack,
+ pointed_thing) or itemstack
+ end
+
if not pointed_thing.type == "node" then
return
end
inventory_image = "default_key_skeleton.png",
groups = {key = 1},
on_place = function(itemstack, placer, pointed_thing)
+ local under = pointed_thing.under
+ local node = minetest.get_node(under)
+ local def = minetest.registered_nodes[node.name]
+ if def and def.on_rightclick and
+ not (placer and placer:get_player_control().sneak) then
+ return def.on_rightclick(under, node, placer, itemstack,
+ pointed_thing) or itemstack
+ end
+
if pointed_thing.type ~= "node" then
return itemstack
end
local pos = pointed_thing.under
- local node = minetest.get_node(pos)
+ node = minetest.get_node(pos)
if not node then
return itemstack
groups = {key = 1, not_in_creative_inventory = 1},
stack_max = 1,
on_place = function(itemstack, placer, pointed_thing)
+ local under = pointed_thing.under
+ local node = minetest.get_node(under)
+ local def = minetest.registered_nodes[node.name]
+ if def and def.on_rightclick and
+ not (placer and placer:get_player_control().sneak) then
+ return def.on_rightclick(under, node, placer, itemstack,
+ pointed_thing) or itemstack
+ end
if pointed_thing.type ~= "node" then
return itemstack
end
local pos = pointed_thing.under
- local node = minetest.get_node(pos)
+ node = minetest.get_node(pos)
if not node or node.name == "ignore" then
return itemstack
}),
on_place = function(itemstack, placer, pointed_thing)
+ local under = pointed_thing.under
+ local node = minetest.get_node(under)
+ local udef = minetest.registered_nodes[node.name]
+ if udef and udef.on_rightclick and
+ not (placer and placer:get_player_control().sneak) then
+ return udef.on_rightclick(under, node, placer, itemstack,
+ pointed_thing) or itemstack
+ end
+
return farming.place_seed(itemstack, placer, pointed_thing, mname .. ":seed_" .. pname)
end,
next_plant = mname .. ":" .. pname .. "_1",