Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local clients = {}
- local acesoysterDoor = 0
- local JPROSP8Door = 0
- local terminal = nil
- local securityLevel = 1
- local function networkingHandler()
- while true do
- sender = nil
- message = nil
- sender, message = rednet.receive("securityControlConnect", 10)
- if message == "door" then
- table.insert(clients, {sender, "door"})
- rednet.send(sender, "confirmed", "securityControlConnect")
- elseif message == "trap" then
- table.insert(clients, {sender, "trap"})
- rednet.send(sender, "confirmed", "securityControlConnect")
- end
- end
- end
- local function opsHandler()
- while true do
- sender = nil
- message = nil
- sender, message = rednet.receive("securityControl", 10)
- if message == "acesoyster" then
- acesoysterDoor = sender
- elseif message == "JPROSP8" then
- JPROSP8Door = sender
- elseif message == "triggered" then
- if terminal then
- rednet.send(terminal, "display trigered "..sender, "terminalControl")
- end
- elseif message == "updateRequest" then
- sendSecurityLevel(sender)
- end
- end
- end
- local function termHandler()
- while true do
- sender = nil
- message = nil
- sender, message = rednet.receive("securityTerminal", 10)
- if message == "acesoyster open" then
- rednet.send(acesoysterDoor, "open", "securityControl")
- elseif message == "JPROSP8 open" then
- rednet.send(JPROSP8Door, "open", "securityControl")
- elseif message == "acesoyster close" then
- rednet.send(acesoysterDoor, "close", "securityControl")
- elseif message == "JPROSP8 close" then
- rednet.send(JPROSP8Door, "close", "securityControl")
- end
- end
- end
- function setSecurityLevel(number)
- if not (tonumber(number) == nil) then
- securityLevel = number
- for client = 1, #clients, 1 do
- rednet.send(clients[client][1], "level "..tostring(number), "securityControl")
- end
- end
- end
- function sendSecurityLevel(target)
- if not (securityLevel == nil) then
- rednet.send(target, "level "..tostring(securityLevel), "securityControl")
- end
- end
- function getClientNumber()
- return #clients
- end
- function getTerminalID()
- return terminal
- end
- function initialise()
- sleep(2)
- rednet.open("left")
- rednet.host("securityControl", "master")
- parallel.waitForAny(termHandler, opsHandler, networkingHandler)
- end
- function testSetup()
- sleep(10)
- setSecurityLevel(5)
- sleep(10)
- setSecurityLevel(1)
- end
- parallel.waitForAll(initialise, testSetup)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement