33 lines
627 B
Lua
33 lines
627 B
Lua
local ni = require('neural.interface')
|
|
local Point = require('point')
|
|
local Util = require('util')
|
|
|
|
local os = _G.os
|
|
|
|
local pos = { x = 0, y = 0, z = 0 }
|
|
local meta = ni.getMetaOwner()
|
|
|
|
local function findTargets()
|
|
local l = ni.sense()
|
|
|
|
Util.filterInplace(l, function(a)
|
|
return math.abs(a.motionY) > 0 and meta.id ~= a.id
|
|
end)
|
|
table.sort(l, function(e1, e2)
|
|
return Point.distance(e1, pos) < Point.distance(e2, pos)
|
|
end)
|
|
|
|
return l[1]
|
|
end
|
|
|
|
while true do
|
|
local target = findTargets()
|
|
if target then
|
|
print('looking at ' .. target.name)
|
|
ni.lookAt(target)
|
|
os.sleep(0)
|
|
else
|
|
os.sleep(3)
|
|
end
|
|
end
|