summaryrefslogtreecommitdiff
path: root/grapes.lua
diff options
context:
space:
mode:
Diffstat (limited to 'grapes.lua')
-rw-r--r--grapes.lua25
1 files changed, 23 insertions, 2 deletions
diff --git a/grapes.lua b/grapes.lua
index baedb4e..f13b4a1 100644
--- a/grapes.lua
+++ b/grapes.lua
@@ -92,11 +92,32 @@ minetest.register_node("farming:trellis", {
on_place = function(itemstack, placer, pointed_thing)
- if minetest.is_protected(pointed_thing.under, placer:get_player_name()) then
+ local pt = pointed_thing
+
+ -- check if pointing at a node
+ if not pt or pt.type ~= "node" then
+ return
+ end
+
+ local under = minetest.get_node(pt.under)
+
+ -- return if any of the nodes are not registered
+ if not minetest.registered_nodes[under.name] then
+ return
+ end
+
+ -- am I right-clicking on something that has a custom on_place set?
+ -- thanks to Krock for helping with this issue :)
+ local def = minetest.registered_nodes[under.name]
+ if def and def.on_rightclick then
+ return def.on_rightclick(pt.under, under, placer, itemstack)
+ end
+
+ if minetest.is_protected(pt.under, placer:get_player_name()) then
return
end
- local nodename = minetest.get_node(pointed_thing.under).name
+ local nodename = under.name
if minetest.get_item_group(nodename, "soil") < 2 then
return