Align goto programs to recent changes

This commit is contained in:
Matt Blunt 2016-02-08 21:44:21 +00:00
parent 7808328601
commit 63e4a4fda8
2 changed files with 75 additions and 20 deletions

View File

@ -1,3 +1,10 @@
local function printUsage()
print("Usage:")
print(fs.getName(shell.getRunningProgram()).." <remoteMap_name> <x_pos> <y_pos> <z_pos>")
print("<remoteMap_name> The name of the remoteMap to connect to and use.")
print("<x_pos> <y_pos> <z_pos> The GPS coordinates you want to go to.")
end
if not netNav then if not netNav then
if not os.loadAPI("netNav") then if not os.loadAPI("netNav") then
error("could not load netNav API") error("could not load netNav API")
@ -10,18 +17,33 @@ for _, side in ipairs(redstone.getSides()) do
end end
end end
netNav.setMap("main", 30) if not rednet.isOpen() then
error("could not open rednet")
end
local tArgs = {...} local tArgs = {...}
if #tArgs == 3 then
for i = 1, #tArgs do if type(tArgs[1]) ~= "string" then
printError("remoteMap_name: string expected")
printUsage()
return
end
netNav.setMap(tArgs[1], 30)
for i = 2, 4 do
if tonumber(tArgs[i]) then if tonumber(tArgs[i]) then
tArgs[i] = tonumber(tArgs[i]) tArgs[i] = tonumber(tArgs[i])
else else
error("argument "..i.." must be a valid coordinate") printError("argument "..i.." must be a valid coordinate")
printUsage()
return
end end
end end
print(netNav.goto(tArgs[1], tArgs[2], tArgs[3]))
print("going to coordinates = ", tArgs[2], ",", tArgs[3], ",", tArgs[4])
local ok, err = netNav.goto(tArgs[2], tArgs[3], tArgs[4])
if not ok then
printError("navigation failed: ", err)
else else
error("arguments must be 3 or 4 numbers") print("succesfully navigated to coordinates")
end end

View File

@ -1,3 +1,11 @@
local function printUsage()
print("Usage:")
print(fs.getName(shell.getRunningProgram()).." <map_name> <x_pos> <y_pos> <z_pos> <(optional)max_distance>")
print("<map_name> The name of the remoteMap to connect to and use.")
print("<x_pos> <y_pos> <z_pos> The GPS coordinates you want to go to.")
print("<(optional)max_distance> The farthest distance allowed to travel from start position.")
end
if not starNav then if not starNav then
if not os.loadAPI("starNav") then if not os.loadAPI("starNav") then
error("could not load starNav API") error("could not load starNav API")
@ -5,15 +13,40 @@ if not starNav then
end end
local tArgs = {...} local tArgs = {...}
if #tArgs == 3 or #tArgs == 4 then
for i = 1, #tArgs do if type(tArgs[1]) ~= "string" then
printError("map_name: string expected")
printUsage()
return
end
starNav.setMap(tArgs[1])
for i = 2, 4 do
if tonumber(tArgs[i]) then if tonumber(tArgs[i]) then
tArgs[i] = tonumber(tArgs[i]) tArgs[i] = tonumber(tArgs[i])
else else
error("argument "..i.." must be a valid coordinate") printError("argument "..i.." must be a valid coordinate")
printUsage()
return
end end
end end
print(starNav.goto(tArgs[1], tArgs[2], tArgs[3], tArgs[4]))
local maxDistance
if tArgs[5] ~= nil then
if tonumber(tArgs[5]) then
print("setting max_distance to: ", tArgs[5])
maxDistance = tonumber(tArgs[5])
else else
error("arguments must be 3 or 4 numbers") printError("max_distance: number expected")
printUsage()
return
end
end
print("going to coordinates = ", tArgs[2], ",", tArgs[3], ",", tArgs[4])
local ok, err = starNav.goto(tArgs[2], tArgs[3], tArgs[4], maxDistance)
if not ok then
printError("navigation failed: ", err)
else
print("succesfully navigated to coordinates")
end end