- minetest.swap_node(pos, { name = node.name, param2 = newparam2 })
- signs_lib.delete_objects(pos)
- signs_lib.update_sign(pos)
+ minetest.set_node(tpos, {name = node.name, param2 = newparam2})
+ minetest.get_meta(tpos):from_table(minetest.get_meta(pos):to_table())
+ minetest.remove_node(pos)
+ signs_lib.delete_objects(pos)
+
+ elseif string.match(node.name, "_hanging") or string.match(node.name, "yard") then
+ minetest.swap_node(tpos, { name = node.name, param2 = signs_lib.rotate_facedir_simple[node.param2] or 0 })
+ elseif minetest.registered_items[node.name].paramtype2 == "wallmounted" then
+ minetest.swap_node(tpos, { name = node.name, param2 = signs_lib.rotate_walldir[node.param2] or 0 })
+ else
+ minetest.swap_node(tpos, { name = node.name, param2 = signs_lib.rotate_facedir[node.param2] or 0 })
+ end
+
+ signs_lib.delete_objects(tpos)
+ signs_lib.update_sign(tpos)