Advertisement
Matiboux

ComputerCraft: Door Security System v2 (Controler)

Nov 28th, 2014
32
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 4.49 KB | None | 0 0
  1. password = ''
  2. side = ''
  3. waitTime = 0
  4.  
  5. etat = 0
  6. menuSelectedId = 0
  7.  
  8. function os.pullEvent() -- Anti Ctrl+T (Terminate)
  9.     local event, p1, p2, p3, p4, p5 = os.pullEventRaw()
  10.     if event == 'terminate' then
  11.         term.clear() -- Clear the screen
  12.         term.setCursorPos(1,1)
  13.         print('Sorry Ctrl+T is disabled.') -- Write
  14.         print('Reboot...') -- Write
  15.         sleep(1) -- Wait
  16.         os.reboot()
  17.     end
  18.     return event, p1, p2, p3, p4, p5
  19. end
  20. function restoreEvent() -- Restore Events (disable Anti Ctrl+T)
  21.     function os.pullEvent( _sFilter )
  22.         local event, p1, p2, p3, p4, p5 = os.pullEventRaw( _sFilter )
  23.         if event == 'terminate' then
  24.             term.clear() -- Clear the screen
  25.             term.setTextColor(colors.red) -- Set the color
  26.             print('Terminated.') -- Write
  27.             term.setTextColor(colors.white) -- Set the color
  28.             error() -- Error (quit the program)
  29.         end
  30.         return event, p1, p2, p3, p4, p5
  31.     end
  32. end
  33.  
  34. function menu(menuId, text)
  35.     if menuSelectedId == menuId then
  36.         print('> ' .. text)
  37.     else
  38.         print('- ' .. text)
  39.     end
  40. end
  41.  
  42. function clear()
  43.     term.clear() -- Clear the screen
  44.     term.setCursorPos(1,1)
  45. end
  46. function printTR(text)
  47.     w, h = term.getSize() -- Get Size of the screen
  48.     term.setCursorPos(w - #text, 1)
  49.     write(text) -- Write
  50. end
  51. function printTM(text)
  52.     local w, h = term.getSize() -- Get Size of the screen
  53.     term.setCursorPos((w - #text) / 2, 1)
  54.     write(text) -- Write
  55. end
  56. function printC(text)
  57.     local x, y = term.getSize() -- Get Size of the screen
  58.     term.setCursorPos((x - string.len(text)) / 2, y / 2)
  59.     write(text) -- Write
  60. end
  61. function reset()
  62.     clear() -- Execute clear()
  63.     write('Door Security') -- Write
  64.     printTR('MatiIndustry') -- Write in right
  65.     printTM('Controler') -- Write in middle
  66.     w, h = term.getSize() -- Get Size of the screen
  67.     print(string.rep('-', w)) write('\n') -- Write a separator (line of '-')
  68. end
  69.  
  70. while true do
  71.     -- Launch Message
  72.    
  73.     reset()
  74.     print('This is the first time you launch the controler program.')
  75.     print('Please configure it.')
  76.     os.sleep(2)
  77.    
  78.     -- Set Password
  79.    
  80.     repeat
  81.         reset()
  82.         print('Wanted password:')
  83.         print('(must be longer than four characters')
  84.         write('> ')
  85.         passwordTemp = read('*')
  86.        
  87.         if string.len(passwordTemp) > 4 then
  88.             print('Great !')
  89.             password = passwordTemp
  90.             pass = 1
  91.         elseif string.len(passwordTemp) == 4 then
  92.             print('A bit short but it\'s okay.')
  93.             password = passwordTemp
  94.             pass = 1
  95.         else
  96.             print('It\'s too short !')
  97.             print('It must be longer than four characters !')
  98.         end
  99.         os.sleep(2)
  100.     until password ~= ''
  101.    
  102.     -- Set side
  103.    
  104.     repeat
  105.         reset()
  106.         print('Side where is the redstone: ')
  107.        
  108.         menu(0, 'Top side')
  109.         menu(1, 'Bottom side')
  110.         menu(2, 'Left side')
  111.         menu(3, 'Right side')
  112.         menu(4, 'Front side')
  113.         menu(5, 'Back side')
  114.        
  115.         event, key = os.pullEvent('key')
  116.         if key == 200 then
  117.             if menuSelectedId > 0 then
  118.                 menuSelectedId = menuSelectedId - 1
  119.             end
  120.         elseif key == 208 then
  121.             if  menuSelectedId < 5 then
  122.                 menuSelectedId = menuSelectedId + 1
  123.             end
  124.         elseif key == 28 then
  125.             if menuSelectedId == 0 then
  126.                 print('Great. So we will use top side.')
  127.                 side = 'top'
  128.                 os.sleep(2)
  129.             elseif menuSelectedId == 1 then
  130.                 print('Great. So we will use bbottomack side.')
  131.                 side = 'bottom'
  132.                 os.sleep(2)
  133.             elseif menuSelectedId == 2 then
  134.                 print('Great. So we will use left side.')
  135.                 side = 'left'
  136.                 os.sleep(2)
  137.             elseif menuSelectedId == 3 then
  138.                 print('Great. So we will use right side.')
  139.                 side = 'right'
  140.                 os.sleep(2)
  141.             elseif menuSelectedId == 4 then
  142.                 print('Great. So we will use front side.')
  143.                 side = 'front'
  144.                 os.sleep(2)
  145.             elseif menuSelectedId == 5 then
  146.                 print('Great. So we will use back side.')
  147.                 side = 'back'
  148.                 os.sleep(2)
  149.             end
  150.         end
  151.         os.sleep(0.1)
  152.     until side ~= ''
  153.    
  154.     -- Set Opening Time
  155.  
  156.     repeat
  157.         reset()
  158.         print('Opening time of the door:')
  159.         print('(must be higher than three)')
  160.         waitTimeTemp = tonumber(read())
  161.        
  162.         if waitTimeTemp > 3 then
  163.             print('Great!')
  164.             waitTime = waitTimeTemp
  165.             pass = 1
  166.         elseif waitTimeTemp == 3 then
  167.             print('Three... It\'s okay but be careful.')
  168.             waitTime = waitTimeTemp
  169.             pass = 1
  170.         else
  171.             print('It\'s too low!')
  172.             print('It must be higher than three!')
  173.         end
  174.         os.sleep(2)
  175.     until waitTime ~= 0
  176.    
  177.     -- Message
  178.    
  179.     reset()
  180.     print('Configuration finished.')
  181.     os.sleep(2)
  182.    
  183.     -- Search for requests
  184.     repeat
  185.         reset()
  186.         print('Searching request from autorised computers... (fake)')
  187.         os.sleep(2)
  188.     until false
  189. end
  190.  
  191. os.reboot() -- Reboot (for security)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement