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
if tonumber(tArgs[i]) then printError("remoteMap_name: string expected")
tArgs[i] = tonumber(tArgs[i]) printUsage()
else return
error("argument "..i.." must be a valid coordinate") end
end netNav.setMap(tArgs[1], 30)
for i = 2, 4 do
if tonumber(tArgs[i]) then
tArgs[i] = tonumber(tArgs[i])
else
printError("argument "..i.." must be a valid coordinate")
printUsage()
return
end end
print(netNav.goto(tArgs[1], tArgs[2], tArgs[3])) end
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
if tonumber(tArgs[i]) then printError("map_name: string expected")
tArgs[i] = tonumber(tArgs[i]) printUsage()
else return
error("argument "..i.." must be a valid coordinate") end
end starNav.setMap(tArgs[1])
for i = 2, 4 do
if tonumber(tArgs[i]) then
tArgs[i] = tonumber(tArgs[i])
else
printError("argument "..i.." must be a valid coordinate")
printUsage()
return
end end
print(starNav.goto(tArgs[1], tArgs[2], tArgs[3], tArgs[4])) end
local maxDistance
if tArgs[5] ~= nil then
if tonumber(tArgs[5]) then
print("setting max_distance to: ", tArgs[5])
maxDistance = tonumber(tArgs[5])
else
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 else
error("arguments must be 3 or 4 numbers") print("succesfully navigated to coordinates")
end end