Guest User

setPos

a guest
Aug 26th, 2014
306
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.48 KB | None | 0 0
  1. modem = peripheral.wrap("back")
  2.  
  3. if(not fs.exists("save/turtles")) then
  4.   shell.run("scan")
  5. end
  6.  
  7. h = fs.open("save/turtles", "r")
  8. turtles = textutils.unserialize(h.readAll())
  9. h.close()
  10.  
  11. packet = {}
  12. packet["type"] = "setpos"
  13.  
  14. print("Please stand still while we do this, aye?")
  15.  
  16. write("Your X, please: ")
  17. while true do
  18.   myX = tonumber(read())
  19.   if(myX ~= nil) then break end
  20.   write("A number, smartass. ")
  21. end
  22. write("Your Z, please: ")
  23. while true do
  24.   myZ = tonumber(read())
  25.   if(myZ ~= nil) then break end
  26.   write("A number, smartass. ")
  27. end
  28. write("Your Y, please: ")
  29. while true do
  30.   myY = tonumber(read())
  31.   if(myY ~= nil) then break end
  32.   write("A number, smartass. ")
  33. end
  34.  
  35. term.clear()
  36. width, height = term.getSize()
  37.  
  38. term.setCursorPos(1, 20)
  39. write("[ Next ]|[ Skip ]")
  40.  
  41. term.setCursorPos(26, 19)
  42. write("^")
  43. term.setCursorPos(26, 20)
  44. write("N")
  45.  
  46. term.setCursorPos(1,1)
  47. write("Where is")
  48. term.setCursorPos(1,19)
  49. write("WASD to change dir.")
  50.  
  51. term.setCursorPos(width/2, height/2 + 1)
  52. write("@")
  53.  
  54. faces = {["^"] = 2, ["<"] = 1, [">"] = 3, ["v"] = 0, }
  55.  
  56. for i=1,#(turtles["ids"]) do
  57.   currentID = turtles["ids"][i]
  58.   packet.type = "setpos"
  59.   packet["for"] = currentID
  60.  
  61.   term.setCursorPos(10, 1)
  62.   write(turtles[turtles["ids"][i]] .. "Slave" .. currentID .. "?   ")
  63.  
  64.   setPosX = 1
  65.   setPosY = 2
  66.  
  67.   char = "^"
  68.  
  69.   while true do
  70.     event, var1, var2, var3 = os.pullEvent()
  71.     if(event == "mouse_click") then
  72.       if(var3 == 20 and var2 < 18 and var2 ~= 9) then
  73.         if(var2 < 9) then
  74.           packet["pos"] = {["x"] = myX + setPosX, ["y"] = myY, ["z"] = myZ - setPosY, ["face"] = faces[char]}
  75.           modem.transmit(65535, 65534, textutils.serialize(packet))
  76.         end
  77.         break
  78.       else
  79.         if(var3 > 1 and var3 < 19 and not (var2 == width/2 and var3 == height/2 + 1)) then
  80.           term.setCursorPos(setPosX, setPosY)
  81.           write(" ")
  82.           term.setCursorPos(var2, var3)
  83.           write(char)
  84.           setPosX = var2
  85.           setPosY = var3
  86.         end
  87.       end
  88.     elseif(event == "key") then
  89.       if(var1 == 17) then
  90.         char = "^"
  91.       elseif(var1 == 30) then
  92.         char = "<"
  93.       elseif(var1 == 31) then
  94.         char = "v"
  95.       elseif(var1 == 32) then
  96.         char = ">"
  97.       end
  98.      
  99.       term.setCursorPos(setPosX, setPosY)
  100.       write(char)
  101.     end
  102.   end
  103.  
  104.   term.setCursorPos(setPosX, setPosY)
  105.   write(" ")
  106. end
  107. modem.closeAll()
  108.  
  109. term.clear()
  110. term.setCursorPos(1,1)
Advertisement
Add Comment
Please, Sign In to add comment