| 
						
					 | 
				
			
			 | 
			 | 
			
				@@ -6,217 +6,210 @@
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				local door_bottom = {-0.5, -0.5, -0.5, 0.5, 0.5, -0.4}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				local door_top = {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    {-0.5, -0.5, -0.5, -0.3, 0.5, -0.4},
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    {0.3, -0.5, -0.5, 0.5, 0.5, -0.4},
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    {-0.3, 0.3, -0.5, 0.3, 0.5, -0.4},
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    {-0.3, -0.5, -0.5, 0.3, -0.4, -0.4},
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    {-0.05, -0.4, -0.5, 0.05, 0.3, -0.4},
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    {-0.3, -0.1, -0.5, -0.05, 0, -0.4},
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    {0.05, -0.1, -0.5, 0.3, 0, -0.4}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					{-0.5, -0.5, -0.5, -0.3, 0.5, -0.4},
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					{0.3, -0.5, -0.5, 0.5, 0.5, -0.4},
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					{-0.3, 0.3, -0.5, 0.3, 0.5, -0.4},
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					{-0.3, -0.5, -0.5, 0.3, -0.4, -0.4},
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					{-0.05, -0.4, -0.5, 0.05, 0.3, -0.4},
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					{-0.3, -0.1, -0.5, -0.05, 0, -0.4},
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					{0.05, -0.1, -0.5, 0.3, 0, -0.4}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				local is_top = function(name)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    return name:sub(12, 12) == "t"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					return name:sub(12, 12) == "t"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				end
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				local xdoors2_transform = function(pos, node, puncher)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    if( not( locks:lock_allow_use( pos, puncher ))) then
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      minetest.chat_send_player( puncher:get_player_name(), "This door is locked. It can only be opened by its owner or people with a key that fits.");
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      return;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    end
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					if is_top(node.name) then
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						pos = {x = pos.x, y = pos.y - 1, z = pos.z}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					end
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    if is_top(node.name) then
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        pos = {x = pos.x, y = pos.y - 1, z = pos.z}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    end
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    local t = 3 - node.name:sub(-1)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    local p2 = 0
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    if t == 2 then
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        p2 = (node.param2 + 1) % 4
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					minetest.sound_play("doors_door_open", { pos = pos, gain = 0.3, max_hear_distance = 10})
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    else
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        p2 = (node.param2 + 3) % 4
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					minetest.sound_play("doors_door_close", { pos = pos, gain = 0.3, max_hear_distance = 10})
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    end
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					if( not( locks:lock_allow_use( pos, puncher ))) then
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      minetest.chat_send_player( puncher:get_player_name(), "This door is locked. It can only be opened by its owner or people with a key that fits.")
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      return
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					end
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					local t = 3 - node.name:sub(-1)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					local p2 = 0
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					if t == 2 then
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						p2 = (node.param2 + 1) % 4
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						minetest.sound_play("doors_door_open", { pos = pos, gain = 0.3, max_hear_distance = 10})
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					else
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						p2 = (node.param2 + 3) % 4
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						minetest.sound_play("doors_door_close", { pos = pos, gain = 0.3, max_hear_distance = 10})
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					end
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    local olddata = locks:get_lockdata( pos );
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    minetest.add_node(pos, {name = "locks:door_bottom_"..t, param2 = p2})
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    minetest.add_node({x = pos.x, y = pos.y + 1, z = pos.z}, {name = "locks:door_top_"..t, param2 = p2})
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    -- remember who owns the door, what passwords are set etc.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    locks:set_lockdata( pos, olddata );
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    locks:set_lockdata( {x = pos.x, y = pos.y + 1, z = pos.z}, olddata );
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					-- No need to remember who owns the door, what passwords are set etc.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					-- because minetest.swap_node() keeps metadata at pos
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					minetest.swap_node(pos, {name = "locks:door_bottom_"..t, param2 = p2})
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					minetest.swap_node({x = pos.x, y = pos.y + 1, z = pos.z}, {name = "locks:door_top_"..t, param2 = p2})
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				end
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				local xdoors2_destruct = function(pos, oldnode)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    if is_top(oldnode.name) then
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        pos = {x = pos.x, y = pos.y - 1, z = pos.z}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    end
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    minetest.remove_node(pos)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    minetest.remove_node({x = pos.x, y = pos.y + 1, z = pos.z})
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					if is_top(oldnode.name) then
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						pos = {x = pos.x, y = pos.y - 1, z = pos.z}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					end
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					minetest.remove_node(pos)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					minetest.remove_node({x = pos.x, y = pos.y + 1, z = pos.z})
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				end
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				for i = 1, 2 do
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    minetest.register_node("locks:door_top_"..i, {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        tiles = {"xdoors2_side.png", "xdoors2_side.png", "xdoors2_top.png", "xdoors2_bottom.png", "xdoors2_top_"..(3 - i)..".png", "xdoors2_top_"..i..".png"},
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        paramtype = "light",
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        paramtype2 = "facedir",
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        drawtype = "nodebox",
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        drop = "locks:door",
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2},
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        node_box = {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            type = "fixed",
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            fixed = door_top
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        selection_box = {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            type = "fixed",
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            fixed = door_bottom
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        on_punch = xdoors2_transform,
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        after_dig_node = xdoors2_destruct,
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					minetest.register_node("locks:door_top_"..i, {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						tiles = {"xdoors2_side.png", "xdoors2_side.png", "xdoors2_top.png", "xdoors2_bottom.png", "xdoors2_top_"..(3 - i)..".png", "xdoors2_top_"..i..".png"},
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						paramtype = "light",
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						paramtype2 = "facedir",
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						drawtype = "nodebox",
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						drop = "locks:door",
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2},
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						node_box = {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							type = "fixed",
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							fixed = door_top
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						},
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						selection_box = {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							type = "fixed",
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							fixed = door_bottom
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						},
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						on_punch = xdoors2_transform,
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						after_dig_node = xdoors2_destruct,
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        on_construct = function(pos)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                locks:lock_init( pos,
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                               "size[8,2]"..
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
								locks.uniform_background..
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                               "button_exit[6.3,1.2;1.7,1;locks_sent_input;Proceed]" );
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        end,
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						on_construct = function(pos)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							locks:lock_init( pos,
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
								"size[8,2]"..locks.uniform_background..
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									"button_exit[6.3,1.2;1.7,1;locks_sent_input;Proceed]" )
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						end,
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        on_receive_fields = function(pos, formname, fields, sender)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                locks:lock_handle_input( pos, formname, fields, sender );
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        end,
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						on_receive_fields = function(pos, formname, fields, sender)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							locks:lock_handle_input( {x=pos.x, y=pos.y-1, z=pos.z}, formname, fields, sender )
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						end,
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        can_dig = function(pos,player)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                return locks:lock_allow_dig( pos, player );
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        end
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    })
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    minetest.register_node("locks:door_bottom_"..i, {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        tiles = {"xdoors2_side.png", "xdoors2_side.png", "xdoors2_top.png", "xdoors2_bottom.png", "locks_xdoors2_bottom_"..(3 - i)..".png", "locks_xdoors2_bottom_"..i..".png"},
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        paramtype = "light",
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        paramtype2 = "facedir",
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        drawtype = "nodebox",
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        drop = "locks:door",
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2},
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        node_box = {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            type = "fixed",
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            fixed = door_bottom
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        selection_box = {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            type = "fixed",
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            fixed = door_bottom
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        on_punch = xdoors2_transform,
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        after_dig_node = xdoors2_destruct,
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						can_dig = function(pos,player)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							return locks:lock_allow_dig( {x=pos.x, y=pos.y-1, z=pos.z}, player )
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						end
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					})
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					minetest.register_node("locks:door_bottom_"..i, {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						tiles = {"xdoors2_side.png", "xdoors2_side.png", "xdoors2_top.png", "xdoors2_bottom.png", "locks_xdoors2_bottom_"..(3 - i)..".png", "locks_xdoors2_bottom_"..i..".png"},
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						paramtype = "light",
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						paramtype2 = "facedir",
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						drawtype = "nodebox",
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						drop = "locks:door",
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2},
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						node_box = {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							type = "fixed",
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							fixed = door_bottom
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						},
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						selection_box = {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							type = "fixed",
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							fixed = door_bottom
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						},
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						on_punch = xdoors2_transform,
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						after_dig_node = xdoors2_destruct,
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        on_construct = function(pos)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                locks:lock_init( pos,
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                               "size[8,2]"..
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
								locks.uniform_background..
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                               "button_exit[6.3,1.2;1.7,1;locks_sent_input;Proceed]" );
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        end,
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						on_construct = function(pos)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							locks:lock_init( pos,
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
								"size[8,2]"..locks.uniform_background..
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									"button_exit[6.3,1.2;1.7,1;locks_sent_input;Proceed]" )
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						end,
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        on_receive_fields = function(pos, formname, fields, sender)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                locks:lock_handle_input( pos, formname, fields, sender );
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        end,
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						on_receive_fields = function(pos, formname, fields, sender)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							locks:lock_handle_input( pos, formname, fields, sender )
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						end,
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        can_dig = function(pos,player)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                return locks:lock_allow_dig( pos, player );
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        end
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    })
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						can_dig = function(pos,player)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							return locks:lock_allow_dig( pos, player )
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						end
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					})
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				end
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				local delta = {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    {x = -1, z = 0},
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    {x = 0, z = 1},
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    {x = 1, z = 0},
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    {x = 0, z = -1}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					{x = -1, z = 0},
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					{x = 0, z = 1},
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					{x = 1, z = 0},
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					{x = 0, z = -1}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				minetest.register_node("locks:door", {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    description = "Shared locked Wooden Door",
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    node_placement_prediction = "",
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    inventory_image = 'locks_xdoors2_door.png',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    wield_image = 'locks_xdoors2_door.png',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    stack_max = 1,
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    sunlight_propogates = true,
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    on_place = function(itemstack, placer, pointed_thing)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        local above = pointed_thing.above
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					local above1 = {x = above.x, y = above.y + 1, z = above.z};
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        if (minetest.is_protected(above,  placer:get_player_name())
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				         or minetest.is_protected(above1, placer:get_player_name())) then
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					    minetest.chat_send_player(placer:get_player_name(), "This area is protected!")
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					    return itemstack
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					else
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            -- there should be 2 empty nodes
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            if minetest.get_node(above1).name ~= "air" then
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                return itemstack
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            end
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            local fdir = 0
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            local placer_pos = placer:get_pos()
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            if placer_pos then
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                dir = {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                    x = above.x - placer_pos.x,
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                    y = above.y - placer_pos.y,
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                    z = above.z - placer_pos.z
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                fdir = minetest.dir_to_facedir(dir)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            end
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					description = "Shared locked Wooden Door",
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					node_placement_prediction = "",
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					inventory_image = 'locks_xdoors2_door.png',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					wield_image = 'locks_xdoors2_door.png',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					stack_max = 1,
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					sunlight_propogates = true,
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					on_place = function(itemstack, placer, pointed_thing)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						local pname = placer:get_player_name()
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						local above = pointed_thing.above
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						local above1 = {x = above.x, y = above.y + 1, z = above.z}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						if (minetest.is_protected(above,  pname)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							 or minetest.is_protected(above1, pname)) then
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							minetest.chat_send_player(pname, "This area is protected!")
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							return itemstack
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						else
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							-- there should be 2 empty nodes
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							if minetest.get_node(above1).name ~= "air" then
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
								return itemstack
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							end
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							local fdir = 0
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							local placer_pos = placer:get_pos()
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							if placer_pos then
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
								fdir = minetest.dir_to_facedir({
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									x = above.x - placer_pos.x,
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									y = above.y - placer_pos.y,
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									z = above.z - placer_pos.z
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
								})
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							end
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            local t = 1
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            local another_door = minetest.get_node({x = above.x + delta[fdir + 1].x, y = above.y, z = above.z + delta[fdir + 1].z})
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            if (another_door.name:sub(-1) == "1" and another_door.param2 == fdir)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                or (another_door.name:sub(-1) == "2" and another_door.param2 == (fdir + 1) % 4) then
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                t = 2
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            end
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							local t = 1
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							local another_door = minetest.get_node({x = above.x + delta[fdir + 1].x, y = above.y, z = above.z + delta[fdir + 1].z})
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							if (another_door.name:sub(-1) == "1" and another_door.param2 == fdir)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							or (another_door.name:sub(-1) == "2" and another_door.param2 == (fdir + 1) % 4) then
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
								t = 2
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							end
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            minetest.add_node(above, {name = "locks:door_bottom_"..t, param2 = fdir})
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            minetest.add_node({x = above.x, y = above.y + 1, z = above.z}, {name = "locks:door_top_"..t, param2 = fdir})
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							minetest.add_node(above, {name = "locks:door_bottom_"..t, param2 = fdir})
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							minetest.add_node(above1, {name = "locks:door_top_"..t, param2 = fdir})
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            -- store who owns the door; the other data can be default for now
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            locks:lock_set_owner( above, placer:get_player_name() or "", "Shared locked door");
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            locks:lock_set_owner( {x = above.x, y = above.y + 1, z = above.z}, placer:get_player_name() or "", "Shared locked door");
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							-- store who owns the door; the other data can be default for now
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							locks:lock_set_owner( above, pname or "", "Shared locked door")
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							locks:lock_set_owner( above1, pname or "", "Shared locked door")
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            return ItemStack("")
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							return ItemStack("")
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						end
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					end
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    end
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				})
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				local ing = minetest.get_modpath("basic_materials") and 'basic_materials:ic' or ''
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				-- if xdoors2 is installed
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				if( minetest.get_modpath("xdoors2") ~= nil ) then
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				   minetest.register_craft({
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      output = 'locks:door',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      recipe = {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				         { 'xdoors2:door', 'locks:lock', '' },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				   });
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				-- if the normal doors are installed
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				else if( minetest.get_modpath("doors") ~= nil ) then
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				   minetest.register_craft({
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      output = 'locks:door',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      recipe = {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				         { 'doors:door_wood', 'locks:lock', '' },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						output = 'locks:door',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						recipe = {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							{ 'locks: lock', 'xdoors2:door', ing},
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						},
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				   })
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				-- fallback if no doors can be found
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					-- if the normal doors are installed
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				elseif( minetest.get_modpath("doors") ~= nil ) then
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					minetest.register_craft({
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						output = 'locks:door',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						recipe = {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							{ 'locks:lock', 'doors:door_wood', ing},
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						},
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					})
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					-- fallback if no doors can be found
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				else
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				   minetest.register_craft({
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      output = 'locks:door',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      recipe = {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				         { 'default:wood', 'default:wood', '' },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				         { 'default:wood', 'default:wood', 'locks:lock' },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				         { 'default:wood', 'default:wood', '' },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				   });
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					minetest.register_craft({
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						output = 'locks:door',
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						recipe = {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							{ 'default:wood', 'default:wood', '' },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							{ 'default:wood', 'default:wood', 'locks:lock' },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							{ 'default:wood', 'default:wood', ing },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						},
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					})
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				end
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				end -- of previous else
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				print( "[Mod] locks: loading locks:door");
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				print( "[Mod] locks: loading locks:door")
 | 
			
		
		
	
	
		
			
				
					
					| 
						 
							
							
							
						 
					 | 
				
			
			 | 
			 | 
			
				 
 |