diff --git a/mods/ENTITIES/mcl_minecarts/carts.lua b/mods/ENTITIES/mcl_minecarts/carts.lua index 6731c05fc..9254cf955 100644 --- a/mods/ENTITIES/mcl_minecarts/carts.lua +++ b/mods/ENTITIES/mcl_minecarts/carts.lua @@ -468,12 +468,13 @@ local function register_minecart_craftitem(itemstring, def) end -- Call on_rightclick if the pointed node defines it - local node = minetest.get_node(pointed_thing.under) - if placer and not placer:get_player_control().sneak then - if minetest.registered_nodes[node.name] and minetest.registered_nodes[node.name].on_rightclick then - return minetest.registered_nodes[node.name].on_rightclick(pointed_thing.under, node, placer, itemstack) or itemstack - end - end + local called + itemstack, called = mcl_util.handle_node_rightclick(itemstack, placer, pointed_thing) + if called then return itemstack end + + -- Don't place minecarts over air + local below = core.get_node(vector.offset(pointed_thing.above,0,-1,0)) + if below.name == "air" then return itemstack end return mod.place_minecart(itemstack, pointed_thing, placer) end,