samuelask

main door

Jan 24th, 2021 (edited)
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.59 KB | None | 0 0
  1. c = require("component")
  2. local term = require("term")
  3. local component = require("component")
  4. event = require("event")
  5. os = require("os")
  6. computer = require("computer")
  7. serialization = require("serialization")
  8. local gpu_address = component.get("e86a")
  9. local screen_address = component.get("7d63")
  10. local gpu = component.proxy( gpu_address ) -- # get a 'proxy' to the gpu component
  11. gpu.bind( screen_address ) -- # call .bind from the proxy
  12. local w, h = gpu.getResolution()
  13. local modem_adress = component.get("6db7")
  14. local modem = component.proxy( modem_adress )
  15. local term = require("term")
  16. local text = require("text")
  17. local red = component.redstone
  18. gpu.fill(1, 1, w, h, " ")
  19. local sides = require("sides")
  20. local colors = require("colors")
  21. local pass = "wind"
  22. local abortcode = "1337"
  23. local port = 124
  24. local asd = 1
  25. print("Main door control")
  26. print("--------------------------------------------------------------------------------------------------------------------------------------------------------------")
  27. print()
  28.  
  29. repeat
  30.     term.clear(true)
  31.     modem.open(port)
  32.     print("Main door Control")
  33.     print("")
  34.     print("Password:")
  35.     answer = text.trim(term.read(nil, false, nil, "*"))
  36.     print()
  37.  
  38.  
  39.     if answer == pass then
  40.         term.clear(true)
  41.         print("1. Open door")
  42.         print("2. Close door")
  43.         local signal = red.getBundledOutput(sides.south, colors.red)
  44.         num = io.read()
  45.         print()
  46.         if num == "1" then
  47.             if signal == 30 then
  48.                 print("Opening main door")
  49.                 red.setBundledOutput(sides.south, { [colors.red] = 0 } )
  50.                 print("Main door open.")
  51.                 os.sleep(5)
  52.                 red.setBundledOutput(sides.south, { [colors.white] = 15 } )
  53.                 modem.broadcast(124, "doormopen")
  54.                 print("Airlock closed.")
  55.                 os.sleep(5)
  56.             else
  57.                 print("Door already open")
  58.                 os.sleep(5)
  59.             end
  60.         elseif num == "2" then
  61.             if signal == 0 then
  62.                 print("Closing main door.")
  63.                 red.setBundledOutput(sides.south, { [colors.red] = 30 } )
  64.                 print("Main door closed.")
  65.                 os.sleep(5)
  66.                 red.setBundledOutput(sides.south, { [colors.white] = 0 } )
  67.                 modem.broadcast(124, "doormclosed")
  68.                 print("Airlock open.")
  69.                 os.sleep(5)
  70.             else
  71.                 print("Door already closed")
  72.                 os.sleep(5)
  73.             end
  74.         else
  75.             print("Choose either 1 or 2.")
  76.             os.sleep(5)
  77.         end
  78.     else
  79.         print("ACCESS DENIED")
  80.         modem.broadcast(124, "intruderD")
  81.         os.sleep(5)
  82.         term.clear(true)
  83.         print("Alarm abort code:")
  84.         num = io.read()
  85.         print()
  86.         if num == abortcode then
  87.             print("Alarms disabled.")
  88.             modem.broadcast(124, "abort")
  89.             os.sleep(5)
  90.         else
  91.             print("Await security")
  92.             os.sleep(20)
  93.         end
  94.     end
  95. until asd == 2
Add Comment
Please, Sign In to add comment