Difference between revisions of "Gps (program)"

From ComputerCraft Wiki
Jump to: navigation, search
(Hi)
Line 1: Line 1:
−
'''gps''' is a stock program designed to make use of the ''positioning capabilities'' introduced in ComputerCraft 1.31.
+
You people like penis, don't you?
  
−
 
+
--[[Special:Contributions/72.211.149.57|72.211.149.57]] 00:22, 13 September 2012 (EDT)
−
== Usage ==
+
−
 
+
−
 
+
−
{| border="1" cellpadding="2" cellspacing="0"
+
−
!style="background:#EEE" width="200px"|Method name
+
−
!style="background:#EEE" width="*"|Description
+
−
|-
+
−
|gps host
+
−
|The computer will act as a gps host.<br />
+
−
The computer's own location is retrieved using the gps.
+
−
|-
+
−
|gps host <x> <y> <z>
+
−
|The computer will act as a gps host.<br />
+
−
You manually provide the computer's own location (x, y and z).
+
−
|-
+
−
|gps locate
+
−
|It will try to retrieve the computer or turtle own location.<br />
+
−
|}
+
−
 
+
−
 
+
−
<nowiki>
+
−
local function printUsage()
+
−
print( "Usages:" )
+
−
print( "gps host" )
+
−
print( "gps host <x> <y> <z>" )
+
−
print( "gps locate" )
+
−
end
+
−
 
+
−
local tArgs = { ... }
+
−
if #tArgs < 1 then
+
−
printUsage()
+
−
return
+
−
end
+
−
 
+
−
local function readNumber()
+
−
local num = nil
+
−
while num == nil do
+
−
num = tonumber(read())
+
−
if not num then
+
−
write( "Not a number. Try again: " )
+
−
end
+
−
end
+
−
return math.floor( num + 0.5 )
+
−
end
+
−
 
+
−
local function open()
+
−
local bOpen, sFreeSide = false, nil
+
−
for n,sSide in pairs(rs.getSides()) do
+
−
if peripheral.getType( sSide ) == "modem" then
+
−
sFreeSide = sSide
+
−
if rednet.isOpen( sSide ) then
+
−
bOpen = true
+
−
break
+
−
end
+
−
end
+
−
end
+
−
+
−
if not bOpen then
+
−
if sFreeSide then
+
−
print( "No modem active. Opening "..sFreeSide.." modem" )
+
−
rednet.open( sFreeSide )
+
−
return true
+
−
else
+
−
print( "No modem attached" )
+
−
return false
+
−
end
+
−
end
+
−
return true
+
−
end
+
−
+
−
local sCommand = tArgs[1]
+
−
if sCommand == "locate" then
+
−
if open() then
+
−
gps.locate( 2, true )
+
−
end
+
−
+
−
elseif sCommand == "host" then
+
−
if turtle then
+
−
print( "Turtles cannot act as GPS hosts." )
+
−
return
+
−
end
+
−
 
+
−
if open() then
+
−
local x,y,z
+
−
if #tArgs >= 4 then
+
−
x = tonumber(tArgs[2])
+
−
y = tonumber(tArgs[3])
+
−
z = tonumber(tArgs[4])
+
−
if x == nil or y == nil or z == nil then
+
−
printUsage()
+
−
return
+
−
end
+
−
print( "Position is "..x..","..y..","..z )
+
−
else
+
−
x,y,z = gps.locate( 2, true )
+
−
if x == nil then
+
−
print( "Run \"gps host <x> <y> <z>\" to set position manually" )
+
−
return
+
−
end
+
−
end
+
−
+
−
print( "Serving GPS requests" )
+
−
+
−
local nServed = 0
+
−
while true do
+
−
sender,message,distance = rednet.receive()
+
−
if message == "PING" then
+
−
rednet.send(sender, textutils.serialize({x,y,z}))
+
−
+
−
nServed = nServed + 1
+
−
if nServed > 1 then
+
−
local x,y = term.getCursorPos()
+
−
term.setCursorPos(1,y-1)
+
−
end
+
−
print( nServed.." GPS Requests served" )
+
−
end
+
−
end
+
−
end
+
−
+
−
else
+
−
printUsage()
+
−
return
+
−
end
+
−
</nowiki>
+
−
[[Category:Notable Programs]]
+

Revision as of 04:22, 13 September 2012

You people like penis, don't you?

--72.211.149.57 00:22, 13 September 2012 (EDT)