Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --Constants
- local offset = {
- X = 0,
- Y = 4,
- Z = 0
- }
- local radius = 22
- local redstoneDir = "left"
- local quitRSDir = "bottom"
- local sensorDir = "right"
- --functions
- dist = function(pos)
- local xd = pos.X - offset.X
- local yd = pos.Y - offset.Y
- local zd = pos.Z - offset.Z
- return math.sqrt(xd * xd + yd * yd + zd * zd)
- end
- --main
- os.loadAPI("ocs/apis/sensor") --loads OpenCCSensors' API
- local prox = sensor.wrap(sensorDir)
- while not rs.getInput(quitRSDir) do
- local signal = false
- local targets = prox.getTargets()
- for k,v in pairs(targets) do
- local details = prox.getTargetDetails(k)
- if dist(v.Position) < radius and not(details["Username"] == nil) then
- signal = true
- end
- end
- rs.setOutput(redstoneDir,signal)
- sleep(0.1)
- end
- rs.setOutput(redstoneDir,false)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement