local sensorpath = "sensor_0"
local sensor = peripheral.wrap(sensorpath) or error("Unable to wrap sensor.",0)
local maxx = 3
local maxz = 3
local maxy = 6
local running = true
local update = 0.1 -- seconds
local state = true
local gateside = "right"
local rsinput = "top"
local rsoutput = "left"
local function getData()
local users = sensor.getPlayerNames()
local userdata = {}
for index,ign in pairs(users) do
local user = sensor.getPlayerData(ign)
if user then
table.insert(userdata,index,user.position)
end
end
return userdata
end
local function checkUsers()
local userdata = getData()
for index,pos in ipairs(userdata) do
if pos.x <= maxx+1 and pos.x >= -maxx
and pos.z <= maxz+1 and pos.z >= -maxz
and pos.y <= maxy and pos.y >= 0 then
return true
end
end
return false
end
while running do
state = not checkUsers()
rs.setOutput(gateside,state)
rs.setOutput(rsoutput,rs.getInput(rsinput))
sleep(update)
end
Comments