Advertisement
Guest User

lock

a guest
Oct 15th, 2019
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.43 KB | None | 0 0
  1. -- Set monitor loc
  2. local mon = peripheral.wrap("back")
  3. -- Set password
  4. local pass = "1133"
  5. local passlen = string.len(pass)
  6. local press = "";
  7. tblpad = {};
  8. for i=0,10 do
  9. tblpad[i] = {}
  10.     for x=0,10 do
  11.         tblpad[i][x] = "x"
  12.     end
  13. end
  14.  
  15.  
  16. tblpad[2][2] = "1"
  17. tblpad[4][2] = "2"
  18. tblpad[6][2] = "3"
  19. tblpad[2][3] = "4"
  20. tblpad[4][3] = "5"
  21. tblpad[6][3] = "6"
  22. tblpad[2][4] = "7"
  23. tblpad[4][4] = "8"
  24. tblpad[6][4] = "9"
  25. tblpad[4][5] = "0"
  26.  
  27. function drawpad()
  28.     mon.setBackgroundColor(colors.green)
  29.     mon.setCursorPos(1,1)
  30.     mon.write(" Code?  ")
  31.     mon.setCursorPos(1,2)
  32.     mon.write(" 1 2 3  ")
  33.     mon.setCursorPos(1,3)
  34.     mon.write(" 4 5 6 ")
  35.     mon.setCursorPos(1,4)
  36.     mon.write(" 7 8 9 ")
  37.     mon.setCursorPos(1,5)
  38.     mon.write("   0   ")
  39. end
  40.  
  41. function countdown(c)
  42.  
  43.     for i=1,c do
  44.         mon.setCursorPos(1,1)
  45.         mon.write("       ")
  46.         mon.setCursorPos(1,2)
  47.         mon.write("       ")
  48.         mon.setCursorPos(1,3)
  49.         mon.write("   ".. c .."   ")
  50.         mon.setCursorPos(1,4)
  51.         mon.write("       ")
  52.         mon.setCursorPos(1,5)
  53.         mon.write("       ")
  54.         sleep(1)
  55.         c = c-1
  56.     end
  57. end
  58.  
  59. function dots()
  60.     mon.setBackgroundColor(colors.red)
  61.     mon.setCursorPos(1,1)
  62.     mon.write("       ")
  63.     mon.setCursorPos(1,2)
  64.     mon.write("       ")
  65.     mon.setCursorPos(1,3)
  66.     mon.write("  ...  ")
  67.     mon.setCursorPos(1,4)
  68.     mon.write("       ")
  69.     mon.setCursorPos(1,5)
  70.     mon.write("       ")
  71. end
  72.  
  73.  
  74. function opendoor()
  75. dots()
  76.     --Open Door Code
  77.  redstone.setOutput("right", true)
  78.     countdown(5)
  79.     dots()
  80.     --Close Door Code
  81.  redstone.setOutput("right", false)
  82.     drawpad()
  83. end
  84.  
  85. function wrongpass()
  86.     mon.setBackgroundColor(colors.red)
  87.     mon.setCursorPos(1,1)
  88.     mon.write("       ")
  89.     mon.setCursorPos(1,2)
  90.     mon.write(" Wrong ")
  91.     mon.setCursorPos(1,3)
  92.     mon.write("       ")
  93.     mon.setCursorPos(1,4)
  94.     mon.write(" Code! ")
  95.     mon.setCursorPos(1,5)
  96.     mon.write("       ")
  97.     sleep(2)
  98.     countdown(5)
  99.     drawpad()
  100. end
  101. drawpad()
  102.  
  103. while true do
  104.     event, side, xPos, yPos = os.pullEvent("monitor_touch")
  105.     if tblpad[xPos][yPos] ~= "x" then
  106.         mon.setCursorPos(xPos, yPos)
  107.         mon.setBackgroundColor(colors.red)
  108.         mon.write(tblpad[xPos][yPos])
  109.         sleep(0.2)
  110.         mon.setCursorPos(xPos, yPos)
  111.         mon.setBackgroundColor(colors.green)
  112.         mon.write(tblpad[xPos][yPos])
  113.         press = press .. tblpad[xPos][yPos]
  114.         if string.len(press) == passlen and press == pass then
  115.             press = ""
  116.             opendoor()
  117.         elseif string.len(press) == passlen and press ~= pass then
  118.             press = ""
  119.             wrongpass()
  120.         end
  121.     end
  122. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement