Advertisement
lokin135

RFID Card Door

Mar 25th, 2018
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.59 KB | None | 0 0
  1. local event = require("event")
  2. local term = require("term")
  3. local com = require("component")
  4. local side = require("sides")
  5.  
  6. local gpu = com.gpu
  7. local card = com.card_reader
  8. local red = com.redstone
  9.  
  10. local sideOutputRed = side.down
  11.  
  12. local password = '0x1234567890'
  13.  
  14. local OpenDoorTime = 35
  15. local ResX,ResY = 40, 20
  16.  
  17. local startText = "Найди карту, чтобы пройти дальше!"
  18. local goodText = "Карта принята!"
  19. local badText = "Карта не подходит!"
  20.  
  21. local colors = {
  22.  ["background"] = 0x161a1e,
  23.  ["foreground"] = 0xf5f5f5,
  24.  ["startColorWindow"] = 0x313c48,
  25.  ["goodColorWindow"] = 0x447744,
  26.  ["badColorWindow"] = 0x541008
  27. }
  28.  
  29. local function Init()
  30.  gpu.setBackground(colors.background)
  31.  gpu.setForeground(colors.foreground)
  32.  gpu.setResolution(ResX, ResY)
  33.  term.clear()
  34. end
  35.  
  36. local function drawWindow(color,text)
  37.  gpu.setBackground(color)
  38.  gpu.fill(3,2,ResX-4,ResY-2," ")
  39.  gpu.set(ResX/2-#text/4,ResY/2+1,text)
  40.  gpu.setBackground(colors.background)
  41.  gpu.set(ResX-10,ResY, "by lokin135")
  42. end
  43.  
  44. local function openDoor()
  45.   red.setOutput(sideOutputRed,15)
  46.   os.sleep(OpenDoorTime)
  47.   red.setOutput(sideOutputRed,0)
  48. end
  49.  
  50. local function getCardEvent()
  51.  local _, _, _, cardData = event.pull("card_event")
  52.  return cardData == password
  53. end
  54.  
  55. local function Main()
  56.  while true do
  57.   drawWindow(colors.startColorWindow,startText)
  58.   card.read()
  59.   if getCardEvent() then
  60.    drawWindow(colors.goodColorWindow,goodText)
  61.    openDoor()
  62.   else
  63.    drawWindow(colors.badColorWindow,badText)
  64.    os.sleep(2)
  65.   end
  66.  end
  67. end
  68.  
  69. Init()
  70. Main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement