Advertisement
Guest User

startup

a guest
Aug 22nd, 2014
201
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.49 KB | None | 0 0
  1. local clients = {}
  2. local acesoysterDoor = 0
  3. local JPROSP8Door = 0
  4. local terminal = nil
  5. local securityLevel = 1
  6.  
  7. local function networkingHandler()
  8.   while true do
  9.     sender = nil
  10.     message = nil
  11.     sender, message = rednet.receive("securityControlConnect", 10)
  12.     if message == "door" then
  13.       table.insert(clients, {sender, "door"})
  14.       rednet.send(sender, "confirmed", "securityControlConnect")
  15.     elseif message == "trap" then
  16.       table.insert(clients, {sender, "trap"})
  17.       rednet.send(sender, "confirmed", "securityControlConnect")
  18.     end
  19.   end
  20. end
  21.  
  22. local function opsHandler()
  23.   while true do
  24.     sender = nil
  25.     message = nil
  26.     sender, message = rednet.receive("securityControl", 10)
  27.     if message == "acesoyster" then
  28.       acesoysterDoor = sender
  29.     elseif message == "JPROSP8" then
  30.       JPROSP8Door = sender
  31.     elseif message == "triggered" then
  32.       if terminal then
  33.         rednet.send(terminal, "display trigered "..sender, "terminalControl")
  34.       end
  35.     elseif message == "updateRequest" then
  36.       sendSecurityLevel(sender)
  37.     end
  38.   end
  39. end
  40.  
  41. local function termHandler()
  42.   while true do
  43.     sender = nil
  44.     message = nil
  45.     sender, message = rednet.receive("securityTerminal", 10)
  46.     if message == "acesoyster open" then
  47.       rednet.send(acesoysterDoor, "open", "securityControl")
  48.     elseif message == "JPROSP8 open" then
  49.       rednet.send(JPROSP8Door, "open", "securityControl")
  50.     elseif message == "acesoyster close" then
  51.       rednet.send(acesoysterDoor, "close", "securityControl")
  52.     elseif message == "JPROSP8 close" then
  53.       rednet.send(JPROSP8Door, "close", "securityControl")
  54.     end
  55.   end
  56. end
  57.  
  58. function setSecurityLevel(number)
  59.   if not (tonumber(number) == nil) then
  60.     securityLevel = number
  61.     for client = 1, #clients, 1 do
  62.       rednet.send(clients[client][1], "level "..tostring(number), "securityControl")
  63.     end
  64.   end
  65. end
  66.  
  67. function sendSecurityLevel(target)
  68.   if not (securityLevel == nil) then
  69.     rednet.send(target, "level "..tostring(securityLevel), "securityControl")
  70.   end
  71. end
  72.  
  73. function getClientNumber()
  74.   return #clients
  75. end
  76.  
  77. function getTerminalID()
  78.   return terminal
  79. end
  80.  
  81. function initialise()
  82.   sleep(2)
  83.   rednet.open("left")
  84.   rednet.host("securityControl", "master")
  85.   parallel.waitForAny(termHandler, opsHandler, networkingHandler)
  86. end
  87.  
  88. function testSetup()
  89.   sleep(10)
  90.   setSecurityLevel(5)
  91.   sleep(10)
  92.   setSecurityLevel(1)
  93. end
  94.  
  95. parallel.waitForAll(initialise, testSetup)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement