From 670c44c15602a26a62d8dbf87736847451c5e073 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diego=20Mart=C3=ADnez?= Date: Sat, 16 Mar 2013 19:00:41 -0300 Subject: [PATCH] Fixed fences being able to overwrite other nodes --- signs_lib.lua | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/signs_lib.lua b/signs_lib.lua index c273aa94..b68b2cce 100644 --- a/signs_lib.lua +++ b/signs_lib.lua @@ -370,14 +370,18 @@ local function copy ( t ) end function homedecor_register_fence_with_sign(fencename, fencewithsignname) - local def = copy(minetest.registered_nodes[fencename]) - local def_sign = copy(minetest.registered_nodes[fencewithsignname]) + local def = minetest.registered_nodes[fencename] + local def_sign = minetest.registered_nodes[fencewithsignname] if not (def and def_sign) then error("Attempt to register unknown node as fence") end + def = copy(def) + def_sign = copy(def_sign) fences_with_sign[fencename] = fencewithsignname def.on_place = function(itemstack, placer, pointed_thing, ...) - if not homedecor_node_is_owned(pointed_thing.under, placer) then + local def = minetest.registered_nodes[minetest.env:get_node(pointed_thing.above).name] + if (not homedecor_node_is_owned(pointed_thing.under, placer)) + and def.buildable_to then local fdir = minetest.dir_to_facedir(placer:get_look_dir()) minetest.env:add_node(pointed_thing.above, {name = fencename, param2 = fdir}) itemstack:take_item()