jille_Jr icon

CC: Airlock

jille_Jr | PRO | 10/06/13 12:07:02 AM UTC | 0 ⭐ | 369 👁️ | Never ⏰ | []
Lua |

970 B

|

None

|

0 👍

/

0 👎

 
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