Files
opus-apps/neural/mobFollow.lua
2019-07-23 13:30:13 -06:00

48 lines
950 B
Lua

local GPS = require('opus.gps')
local Util = require('opus.util')
local Point = require('opus.point')
local Proxy = require('core.proxy')
local os = _G.os
local args = { ... }
local remoteId = args[1] or error('mobFollow REMOTE_ID')
local ni = Proxy.create(remoteId, 'device/neuralInterface')
if not ni then
error('failed to connect')
end
local lpt = nil
while true do
local pt = GPS.locate(2)
if not pt then
print('No GPS')
else
local gpt = Util.shallowCopy(pt)
if pt and lpt and Point.same(pt, lpt) then
-- havent moved
print('no move')
else
if not lpt then
gpt.x = gpt.x - 2
else
local dx = lpt.x - pt.x
local dz = lpt.z - pt.z
local angle = math.atan2(dx, dz)
gpt.x = pt.x + 2.5 * math.sin(angle)
gpt.z = pt.z + 2.5 * math.cos(angle)
end
lpt = pt
local s, m = ni.goTo(gpt.x, gpt.y + 1, gpt.z)
if not s then
print(m)
end
end
end
os.sleep(.5)
end