mirror of
https://github.com/kepler155c/opus
synced 2025-01-05 21:30:28 +00:00
turtle gps rework
This commit is contained in:
parent
fc46239f44
commit
4485a751bd
@ -2,7 +2,6 @@ local GPS = { }
|
|||||||
|
|
||||||
local device = _G.device
|
local device = _G.device
|
||||||
local gps = _G.gps
|
local gps = _G.gps
|
||||||
local turtle = _G.turtle
|
|
||||||
|
|
||||||
function GPS.locate(timeout, debug)
|
function GPS.locate(timeout, debug)
|
||||||
local pt = { }
|
local pt = { }
|
||||||
@ -34,60 +33,6 @@ function GPS.getPoint(timeout, debug)
|
|||||||
return pt
|
return pt
|
||||||
end
|
end
|
||||||
|
|
||||||
function GPS.getHeading(timeout, destructive)
|
|
||||||
if not turtle then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
local apt = GPS.locate(timeout)
|
|
||||||
if not apt then
|
|
||||||
return false, 'GPS not available'
|
|
||||||
end
|
|
||||||
|
|
||||||
local heading = turtle.point.heading
|
|
||||||
|
|
||||||
while true do
|
|
||||||
if not turtle.inspect() and turtle.forward() then
|
|
||||||
break
|
|
||||||
end
|
|
||||||
turtle.turnRight()
|
|
||||||
if turtle.getHeading() == heading then
|
|
||||||
if destructive then
|
|
||||||
turtle.dig()
|
|
||||||
if turtle.forward() then
|
|
||||||
break
|
|
||||||
end
|
|
||||||
end
|
|
||||||
return false, 'GPS.getPoint: Unable to move forward'
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
local bpt = GPS.locate()
|
|
||||||
if not bpt then
|
|
||||||
return false, 'GPS not available'
|
|
||||||
end
|
|
||||||
|
|
||||||
if apt.x < bpt.x then
|
|
||||||
return 0
|
|
||||||
elseif apt.z < bpt.z then
|
|
||||||
return 1
|
|
||||||
elseif apt.x > bpt.x then
|
|
||||||
return 2
|
|
||||||
end
|
|
||||||
return 3
|
|
||||||
end
|
|
||||||
|
|
||||||
function GPS.getPointAndHeading(timeout, destructive)
|
|
||||||
local heading = GPS.getHeading(timeout, destructive)
|
|
||||||
if heading then
|
|
||||||
local pt = GPS.getPoint()
|
|
||||||
if pt then
|
|
||||||
pt.heading = heading
|
|
||||||
end
|
|
||||||
return pt
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
-- from stock gps API
|
-- from stock gps API
|
||||||
local function trilaterate(A, B, C)
|
local function trilaterate(A, B, C)
|
||||||
local a2b = B.position - A.position
|
local a2b = B.position - A.position
|
||||||
|
@ -45,6 +45,10 @@ function UI.Checkbox:focus()
|
|||||||
self:draw()
|
self:draw()
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function UI.Checkbox:setValue(v)
|
||||||
|
self.value = v
|
||||||
|
end
|
||||||
|
|
||||||
function UI.Checkbox:reset()
|
function UI.Checkbox:reset()
|
||||||
self.value = false
|
self.value = false
|
||||||
end
|
end
|
||||||
|
@ -23,6 +23,8 @@ local config = Config.load('network', { })
|
|||||||
|
|
||||||
if UI.term.width >= 30 then
|
if UI.term.width >= 30 then
|
||||||
table.insert(gridColumns, { heading = 'Fuel', key = 'fuel', width = 5 })
|
table.insert(gridColumns, { heading = 'Fuel', key = 'fuel', width = 5 })
|
||||||
|
end
|
||||||
|
if UI.term.width >= 40 then
|
||||||
table.insert(gridColumns, { heading = 'Uptime', key = 'uptime' })
|
table.insert(gridColumns, { heading = 'Uptime', key = 'uptime' })
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -3,7 +3,6 @@ if not _G.turtle then
|
|||||||
end
|
end
|
||||||
|
|
||||||
local Pathing = require('pathfind')
|
local Pathing = require('pathfind')
|
||||||
local GPS = require('gps')
|
|
||||||
local Point = require('point')
|
local Point = require('point')
|
||||||
local synchronized = require('sync').sync
|
local synchronized = require('sync').sync
|
||||||
local Util = require('util')
|
local Util = require('util')
|
||||||
@ -1241,15 +1240,6 @@ function turtle.inspectDownAt(pt) return _actionDownAt(actionsAt.inspect,
|
|||||||
function turtle.inspectForwardAt(pt) return _actionForwardAt(actionsAt.inspect, pt) end
|
function turtle.inspectForwardAt(pt) return _actionForwardAt(actionsAt.inspect, pt) end
|
||||||
function turtle.inspectUpAt(pt) return _actionUpAt(actionsAt.inspect, pt) end
|
function turtle.inspectUpAt(pt) return _actionUpAt(actionsAt.inspect, pt) end
|
||||||
|
|
||||||
-- [[ GPS ]] --
|
|
||||||
function turtle.enableGPS(timeout, destructive)
|
|
||||||
local pt = GPS.getPointAndHeading(timeout, destructive)
|
|
||||||
if pt then
|
|
||||||
turtle.setPoint(pt, true)
|
|
||||||
return turtle.point
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
-- deprecate
|
-- deprecate
|
||||||
function turtle.addFeatures(...)
|
function turtle.addFeatures(...)
|
||||||
for _,feature in pairs({ ... }) do
|
for _,feature in pairs({ ... }) do
|
||||||
|
Loading…
Reference in New Issue
Block a user