Added check for change in position between pathfinding sessions

This commit is contained in:
blunty666 2016-12-20 15:25:25 +00:00
parent 49a0f95f7b
commit 0e48dbca12
2 changed files with 26 additions and 2 deletions

View File

@ -162,7 +162,7 @@ local function detectAll(currPos)
end
local function findSensor()
for _, side in ipairs(peripheral.getNames()) do
for _, side in ipairs({"left", "right"}) do
if peripheral.getType(side) == "turtlesensorenvironment" then
return side
end
@ -247,6 +247,18 @@ local function _goto(x, y, z, maxDistance)
if not position then
return false, "couldn't determine location"
end
else
-- check if position has changed
local curPos = {gps.locate()}
if #curPos == 3 then
curPos = vector.new(unpack(curPos))
if not aStar.vectorEquals(curPos, position) then -- position has changed
position = findPosition()
if not position then
return false, "couldn't determine location"
end
end
end
end
local goal = vector.new(tonumber(x), tonumber(y), tonumber(z))

View File

@ -157,7 +157,7 @@ local function detectAll(currPos)
end
local function findSensor()
for _, side in ipairs(peripheral.getNames()) do
for _, side in ipairs({"left", "right"}) do
if peripheral.getType(side) == "turtlesensorenvironment" then
return side
end
@ -241,6 +241,18 @@ local function _goto(x, y, z, maxDistance)
if not position then
return false, "couldn't determine location"
end
else
-- check if position has changed
local curPos = {gps.locate()}
if #curPos == 3 then
curPos = vector.new(unpack(curPos))
if not aStar.vectorEquals(curPos, position) then -- position has changed
position = findPosition()
if not position then
return false, "couldn't determine location"
end
end
end
end
local goal = vector.new(tonumber(x), tonumber(y), tonumber(z))