Advertisement
dezindzer

1. lock

Mar 13th, 2015
251
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 3.72 KB | None | 0 0
  1. os.pullEvent = os.pullEventRaw
  2. shell.openTab("lock2")
  3. sleep(0.1)
  4. shell.switchTab(2)
  5.  
  6.  
  7. m = peripheral.wrap("back")
  8. m.clear()
  9. m.setTextScale(0.5)
  10. m.setBackgroundColor(colors.black)
  11. m.setTextColor(colors.white)
  12.  
  13. load = fs.open("Config", "r")
  14. code,autoReset,waitTime,redstoneSide = unpack(textutils.unserialize(load.readAll()))
  15. load.close()
  16.  
  17. inp = {}
  18. sPos = 4
  19.  
  20.  
  21. function mGUI()
  22.     gui = {
  23.         [[   dezindzer   ]],
  24.         [[ Security INC. ]],
  25.         [[ +-----------+ ]],
  26.         [[ |           | ]],
  27.         [[ +---+---+---+ ]],
  28.         [[ | 1 | 2 | 3 | ]],
  29.         [[ | 4 | 5 | 6 | ]],
  30.         [[ | 7 | 8 | 9 | ]],
  31.         [[ | X | 0 | > | ]],
  32.         [[ +---+---+---+ ]],
  33.         }
  34.     m.setTextColor(colors.red)
  35.     for i = 1,10 do
  36.         m.setCursorPos(1,i)
  37.         if i == 3 then
  38.             m.setTextColor(colors.white)
  39.         end
  40.         m.write(gui[i])
  41.     end
  42.     m.setCursorPos(3,9)
  43.     m.setBackgroundColor(colors.red)
  44.     m.write(" X ")
  45.     m.setCursorPos(11,9)
  46.     m.setBackgroundColor(colors.lime)
  47.     m.write(" > ")
  48.     m.setCursorPos(3,4)
  49.     m.setBackgroundColor(colors.lightGray)
  50.     m.write("           ")
  51. end
  52.  
  53. function open()
  54.     if autoReset then
  55.         if waitTime == 0 then waitTime = 2 end
  56.         sleep(waitTime)
  57.         rs.setOutput(redstoneSide,false)
  58.         os.reboot()
  59.     else
  60.         m.setBackgroundColor(colors.black)
  61.         m.clear()
  62.         m.setTextScale(5)
  63.         m.setCursorPos(1,1)
  64.         m.write("<")
  65.         ev, side, xPos, yPos = os.pullEvent("monitor_touch")
  66.         rs.setOutput(redstoneSide,false)
  67.         os.reboot()
  68.     end
  69. end
  70.  
  71. function checkInp()
  72.     if #inp == #code then
  73.         for f = 1,#code do
  74.             if inp[f] == code[f] then
  75.                 if f == #code then
  76.                     m.setCursorPos(3,4)
  77.                     m.setBackgroundColor(colors.lime)
  78.                     m.write(" CORRECT!  ")
  79.                     rs.setOutput(redstoneSide,true)
  80.                     open()
  81.                 end
  82.             else
  83.                 m.setCursorPos(3,4)
  84.                 m.setBackgroundColor(colors.red)
  85.                 m.write("WRONG CODE!")
  86.                 sleep(3)
  87.                 os.reboot()
  88.             end
  89.         end
  90.     else
  91.         m.setCursorPos(3,4)
  92.         m.setBackgroundColor(colors.red)
  93.         m.write("WRONG CODE!")
  94.         sleep(3)
  95.         os.reboot()
  96.     end
  97. end
  98.  
  99. function input()
  100.     mGUI()
  101.     while true do
  102.         ev, side, xPos, yPos = os.pullEvent("monitor_touch")
  103.         print(xPos..":"..yPos)
  104.         if ev == "monitor_touch" then
  105.             if xPos > 2 and xPos < 6 and yPos == 6 then
  106.                 table.insert(inp,1)
  107.                 m.setCursorPos(sPos,4)
  108.                 m.write("*")
  109.                 sPos = sPos+1
  110.             elseif xPos > 6 and xPos < 10 and yPos == 6 then
  111.                 table.insert(inp,2)
  112.                 m.setCursorPos(sPos,4)
  113.                 m.write("*")
  114.                 sPos = sPos+1
  115.             elseif xPos > 10 and xPos < 14 and yPos == 6 then
  116.                 table.insert(inp,3)
  117.                 m.setCursorPos(sPos,4)
  118.                 m.write("*")
  119.                 sPos = sPos+1
  120.             elseif xPos > 3 and xPos < 5 and yPos == 7 then
  121.                 table.insert(inp,4)
  122.                 m.setCursorPos(sPos,4)
  123.                 m.write("*")
  124.                 sPos = sPos+1
  125.             elseif xPos > 7 and xPos < 9 and yPos == 7 then
  126.                 table.insert(inp,5)
  127.                 m.setCursorPos(sPos,4)
  128.                 m.write("*")
  129.                 sPos = sPos+1
  130.             elseif xPos > 11 and xPos < 13 and yPos == 7 then
  131.                 table.insert(inp,6)
  132.                 m.setCursorPos(sPos,4)
  133.                 m.write("*")
  134.                 sPos = sPos+1
  135.             elseif xPos > 3 and xPos < 5 and yPos == 8 then
  136.                 table.insert(inp,7)
  137.                 m.setCursorPos(sPos,4)
  138.                 m.write("*")
  139.                 sPos = sPos+1
  140.             elseif xPos > 7 and xPos < 9 and yPos == 8 then
  141.                 table.insert(inp,8)
  142.                 m.setCursorPos(sPos,4)
  143.                 m.write("*")
  144.                 sPos = sPos+1
  145.             elseif xPos > 11 and xPos < 13 and yPos == 8 then
  146.                 table.insert(inp,9)
  147.                 m.setCursorPos(sPos,4)
  148.                 m.write("*")
  149.                 sPos = sPos+1
  150.             elseif xPos > 3 and xPos < 5 and yPos == 9 then
  151.                 inp = {}
  152.                 m.setCursorPos(3,4)
  153.                 m.write("           ")
  154.                 sPos = 4
  155.             elseif xPos > 7 and xPos < 9 and yPos == 9 then
  156.                 table.insert(inp,0)
  157.                 m.setCursorPos(sPos,4)
  158.                 m.write("*")
  159.                 sPos = sPos+1
  160.             elseif xPos > 11 and xPos < 13 and yPos == 9 then
  161.                 checkInp()
  162.             end
  163.         end
  164.     end
  165. end
  166.  
  167. input()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement