Advertisement
rene0055

sensor2

Sep 26th, 2017
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. --Constants
  2. local offset = {
  3.   X = 0,
  4.   Y = 4,
  5.   Z = 0
  6. }
  7. local radius = 22
  8. local redstoneDir = "left"
  9. local quitRSDir = "bottom"
  10. local sensorDir = "right"
  11. --functions
  12. dist = function(pos)
  13.   local xd = pos.X - offset.X
  14.   local yd = pos.Y - offset.Y
  15.   local zd = pos.Z - offset.Z
  16.   return math.sqrt(xd * xd + yd * yd + zd * zd)
  17. end
  18. --main
  19. os.loadAPI("ocs/apis/sensor") --loads OpenCCSensors' API
  20. local prox = sensor.wrap(sensorDir)
  21. while not rs.getInput(quitRSDir) do
  22.   local signal = false
  23.   local targets = prox.getTargets()
  24.   for k,v in pairs(targets) do
  25.     local details = prox.getTargetDetails(k)
  26.     if dist(v.Position) < radius and not(details["Username"] == nil) then
  27.       signal = true
  28.     end
  29.   end
  30.   rs.setOutput(redstoneDir,signal)
  31.   sleep(0.1)
  32. end
  33. rs.setOutput(redstoneDir,false)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement