diff options
Diffstat (limited to 'farming/grapes.lua')
-rw-r--r-- | farming/grapes.lua | 26 |
1 files changed, 24 insertions, 2 deletions
diff --git a/farming/grapes.lua b/farming/grapes.lua index baedb4e..9a6ab9e 100644 --- a/farming/grapes.lua +++ b/farming/grapes.lua @@ -60,6 +60,7 @@ minetest.register_craftitem("farming:grapes", { description = S("Grapes"), inventory_image = "farming_grapes.png", on_use = minetest.item_eat(2), + groups = {food_grapes = 1, flammable = 3}, on_place = function(itemstack, placer, pointed_thing) return place_grapes(itemstack, placer, pointed_thing, "farming:grapes_1") @@ -92,11 +93,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 |