diff --git a/crafts.lua b/crafts.lua index b4b03471..1d8d1bda 100644 --- a/crafts.lua +++ b/crafts.lua @@ -1321,27 +1321,6 @@ minetest.register_craft( { }, }) --- the version of brass/wrought iron fences with signs attached - - -minetest.register_craft( { - type = "shapeless", - output = 'homedecor:fence_brass_with_sign', - recipe = { - 'homedecor:fence_brass', - 'default:sign_wall', - }, -}) - -minetest.register_craft( { - type = "shapeless", - output = 'homedecor:fence_wrought_iron_with_sign', - recipe = { - 'homedecor:fence_wrought_iron', - 'default:sign_wall', - }, -}) - -- other types of fences/gates minetest.register_craft( { diff --git a/fences.lua b/fences.lua index 382d70e0..764083d8 100644 --- a/fences.lua +++ b/fences.lua @@ -14,8 +14,27 @@ minetest.register_node("homedecor:fence_brass", { groups = {snappy=3}, sounds = default.node_sound_wood_defaults(), walkable = true, -}) + on_rightclick = function(pos, node, clicker) + local fdir = minetest.dir_to_facedir(clicker:get_look_dir()) + local itemstack = clicker:get_wielded_item() + if itemstack:get_name() == "default:sign_wall" then + minetest.env:add_node(pos, {name = "homedecor:fence_brass_with_sign", param2 = fdir}) + itemstack:take_item() + return itemstack + else + print("want to simply place the wielded item like usual.") + -- What goes here if I want to just place the wielded node (dirt, cobble, etc) normally? + end + end, + on_place = function(itemstack, placer, pointed_thing) + local fdir = minetest.dir_to_facedir(placer:get_look_dir()) + minetest.env:add_node(pointed_thing.above, {name = "homedecor:fence_brass", param2 = fdir}) + itemstack:take_item() + placer:set_wielded_item(itemstack) + return itemstack + end +}) minetest.register_node("homedecor:fence_wrought_iron", { description = "Wrought Iron Fence/railing", @@ -31,6 +50,27 @@ minetest.register_node("homedecor:fence_wrought_iron", { groups = {snappy=3}, sounds = default.node_sound_wood_defaults(), walkable = true, + on_rightclick = function(pos, node, clicker) + local fdir = minetest.dir_to_facedir(clicker:get_look_dir()) + local itemstack = clicker:get_wielded_item() + if itemstack:get_name() == "default:sign_wall" then + minetest.env:add_node(pos, {name = "homedecor:fence_wrought_iron_with_sign", param2 = fdir}) + itemstack:take_item() + clicker:set_wielded_item(itemstack) + return itemstack + else + print("want to simply place the wielded item like usual.") + -- What goes here if I want to just place the wielded node (dirt, cobble, etc) normally? + end + end, + + on_place = function(itemstack, placer, pointed_thing) + local fdir = minetest.dir_to_facedir(placer:get_look_dir()) + minetest.env:add_node(pointed_thing.above, {name = "homedecor:fence_wrought_iron", param2 = fdir}) + itemstack:take_item() + placer:set_wielded_item(itemstack) + return itemstack + end }) -- brass/wrought iron with signs: