neural look
This commit is contained in:
@@ -162,6 +162,10 @@ Event.on({ 'milo_cycle', 'milo_queue' }, function(e)
|
||||
context.taskTimer = context.taskTimer + taskTimer()
|
||||
context.taskCounter = context.taskCounter + 1
|
||||
end
|
||||
|
||||
if context.storage:isOnline() and #context.queue > 0 then
|
||||
os.queueEvent('milo_cycle')
|
||||
end
|
||||
end)
|
||||
|
||||
Event.on('turtle_inventory', function()
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
local Angle = { }
|
||||
|
||||
function Angle.towards(x, y, z)
|
||||
return math.deg(math.atan2(-x, z)), 0
|
||||
return math.deg(math.atan2(-x, z)), math.deg(-math.atan2(y, math.sqrt(x * x + z * z)))
|
||||
end
|
||||
|
||||
function Angle.away(x, y, z)
|
||||
|
||||
@@ -76,7 +76,7 @@ function Interface.getUniqueNames()
|
||||
end
|
||||
|
||||
function Interface.lookAt(pt)
|
||||
local yaw, pitch = Angle.towards(pt.x - .5, pt.y + 1, pt.z - .5)
|
||||
local yaw, pitch = Angle.towards(pt.x - .5, pt.y, pt.z - .5)
|
||||
return Interface.look(yaw, pitch)
|
||||
end
|
||||
|
||||
|
||||
32
neural/neuralLook.lua
Normal file
32
neural/neuralLook.lua
Normal file
@@ -0,0 +1,32 @@
|
||||
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
|
||||
Reference in New Issue
Block a user