Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function homedecor_register_fence_with_sign(fencename, 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
- fences_with_sign[fencename] = fencewithsignname
- local on_place = def.on_place
- def.on_place = function(itemstack, placer, pointed_thing, ...)
- if on_place then
- itemstack = on_place(itemstack, placer, pointed_thing, ...) or itemstack
- end
- if not homedecor_node_is_owned(pointed_thing.under, placer) 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()
- placer:set_wielded_item(itemstack)
- return itemstack
- end
- end
- local on_construct = def_sign.on_construct
- def_sign.on_construct = function(pos, ...)
- if on_construct then on_construct(pos, ...) end
- homedecor_construct_sign(pos, ...)
- end
- local on_destruct = def_sign.on_destruct
- def_sign.on_destruct = function(pos, ...)
- if on_destruct then on_destruct(pos) end
- homedecor_destruct_sign(pos, ...)
- end
- local on_receive_fields = def_sign.on_receive_fields
- def_sign.on_receive_fields = function(pos, formname, fields, sender, ...)
- if on_receive_fields then on_receive_fields(pos, formname, fields, sender, ...) end
- homedecor_update_sign(pos, fields)
- end
- local on_punch = def_sign.on_punch
- def_sign.on_punch = function(pos, node, puncher, ...)
- if on_punch then on_punch(pos, node, puncher, ...) end
- homedecor_update_sign(pos)
- end
- local after_dig_node = def_sign.after_dig_node
- def_sign.after_dig_node = function(pos, node, digger, ...)
- print("FUCK YOU AFTER_DIG!!!")
- if after_dig_node then after_dig_node(pos, node, digger, ...) end
- node.name = fencename
- minetest.env:add_node(pos, node)
- end
- def_sign.drop = "default:sign_wall"
- minetest.register_node(":"..fencename, def);
- minetest.register_node(":"..fencewithsignname, def_sign);
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement