diff options
Diffstat (limited to 'shared_door.lua')
-rw-r--r-- | shared_door.lua | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/shared_door.lua b/shared_door.lua new file mode 100644 index 0000000..a876485 --- /dev/null +++ b/shared_door.lua @@ -0,0 +1,63 @@ +function landrush.on_rightclick(pos, dir, check_name, replace, replace_dir, params) + pos.y = pos.y+dir + if not minetest.get_node(pos).name == check_name then + return + end + local p2 = minetest.get_node(pos).param2 + p2 = params[p2+1] + + local meta = minetest.get_meta(pos):to_table() + minetest.set_node(pos, {name=replace_dir, param2=p2}) + minetest.get_meta(pos):from_table(meta) + + pos.y = pos.y-dir + meta = minetest.get_meta(pos):to_table() + minetest.set_node(pos, {name=replace, param2=p2}) + minetest.get_meta(pos):from_table(meta) + end + +doors:register_door("landrush:shared_door", { + description = "Shared Door", + inventory_image = "shared_door_inv.png", + groups = {snappy=1,bendy=2,cracky=1,melty=2,level=2,door=1}, + tiles_bottom = {"shared_door_b.png", "door_blue.png"}, + tiles_top = {"shared_door_a.png", "door_blue.png"}, +}) + +minetest.register_craft({ + output = 'landrush:shared_door', + recipe = { + {'default:steel_ingot','default:steel_ingot',''}, + {'default:steel_ingot','landrush:landclaim',''}, + {'default:steel_ingot','default:steel_ingot',''} + } +}) + + + +minetest.registered_nodes['landrush:shared_door_b_1'].on_rightclick = function(pos, node, clicker) +if ( landrush.can_interact(clicker:get_player_name(),pos) ) then + landrush.on_rightclick(pos, 1, "landrush:shared_door_t_1", "landrush:shared_door_b_2", "landrush:shared_door_t_2", {1,2,3,0}) +end +end + +minetest.registered_nodes['landrush:shared_door_t_1'].on_rightclick = function(pos, node, clicker) +if ( landrush.can_interact(clicker:get_player_name(),pos) ) then + landrush.on_rightclick(pos, -1, "landrush:shared_door_b_1", "landrush:shared_door_t_2", "landrush:shared_door_b_2", {1,2,3,0}) +end +end + +-- Fix for duplicating Bug! +-- Bug was caused, because the reverse order of the on_rightclick was not taken into account + +minetest.registered_nodes['landrush:shared_door_b_2'].on_rightclick = function(pos, node, clicker) +if ( landrush.can_interact(clicker:get_player_name(),pos) ) then + landrush.on_rightclick(pos, 1, "landrush:shared_door_t_2", "landrush:shared_door_b_1", "landrush:shared_door_t_1", {3,0,1,2}) +end +end + +minetest.registered_nodes['landrush:shared_door_t_2'].on_rightclick = function(pos, node, clicker) +if ( landrush.can_interact(clicker:get_player_name(),pos) ) then + landrush.on_rightclick(pos, -1, "landrush:shared_door_b_2", "landrush:shared_door_t_1", "landrush:shared_door_b_1", {3,0,1,2}) +end +end |