Advertisement
jille_Jr

CC: Airlock

Oct 5th, 2013
158
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 0.97 KB | None | 0 0
  1.  
  2. local sensorpath = "sensor_0"
  3. local sensor = peripheral.wrap(sensorpath) or error("Unable to wrap sensor.",0)
  4.  
  5. local maxx = 3
  6. local maxz = 3
  7. local maxy = 6
  8.  
  9. local running = true
  10. local update = 0.1 -- seconds
  11. local state = true
  12. local gateside = "right"
  13.  
  14. local rsinput = "top"
  15. local rsoutput = "left"
  16.  
  17. local function getData()
  18.     local users = sensor.getPlayerNames()
  19.     local userdata = {}
  20.     for index,ign in pairs(users) do
  21.         local user = sensor.getPlayerData(ign)
  22.         if user then
  23.             table.insert(userdata,index,user.position)
  24.         end
  25.     end
  26.     return userdata
  27. end
  28.  
  29. local function checkUsers()
  30.     local userdata = getData()
  31.     for index,pos in ipairs(userdata) do
  32.         if pos.x <= maxx+1 and pos.x >= -maxx
  33.         and pos.z <= maxz+1 and pos.z >= -maxz
  34.         and pos.y <= maxy and pos.y >= 0 then
  35.             return true
  36.         end
  37.     end
  38.     return false
  39. end
  40.  
  41. while running do
  42.     state = not checkUsers()
  43.     rs.setOutput(gateside,state)
  44.     rs.setOutput(rsoutput,rs.getInput(rsinput))
  45.     sleep(update)
  46. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement