Advertisement
Guest User

startup

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