ecco7777

CC turtle forcefield controler

Nov 24th, 2016
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.06 KB | None | 0 0
  1. i=peripheral.wrap("left")
  2. rednet.open("right")
  3. xPos,zPos,yPos=gps.locate()
  4. args={...}
  5.  
  6. function toArgs(argument)
  7. z1=1
  8. while string.find(argument," ") do
  9. args[z1]=string.sub(argument,1,string.find(argument," ")-1)
  10. argument=string.sub(argument,string.find(argument," ")+1)
  11. z1=z1+1
  12. end
  13. return args
  14. end
  15.  
  16. function orderInv()
  17. turtle.select(1) while i.suck(3,1) do end
  18. turtle.select(2) while i.suck(3,1) do end
  19. turtle.select(5) while i.suck(5,1) do end while i.suck(13,1) do end
  20. turtle.select(6) while i.suck(9,1) do end while i.suck(8,1) do end
  21. turtle.select(7) while i.suck(4,1) do end while i.suck(7,1) do end
  22.  
  23. turtle.select(8) while i.suck(6,1) do end
  24. turtle.select(9) while i.suck(11,1) do end
  25. turtle.select(10) while i.suck(14,1) do end
  26. turtle.select(11) while i.suck(12,1) do end
  27. turtle.select(12) while i.suck(10,1) do end
  28. end
  29.  
  30. function setField(cXPos,cYPos,cZPos,rad,mode)
  31. orderInv()
  32. turtle.select(mode)
  33. i.drop(3,1)
  34. divX=cXPos-xPos
  35. divZ=cZPos-zPos
  36. divY=cYPos-yPos
  37.  
  38. turtle.select(4+1)
  39. if divX>=1 then i.drop(5,divX) else i.drop(13,math.sqrt(divX*divX)) end
  40. turtle.select(4+2)
  41. if divZ>=1 then i.drop(9,divZ) else i.drop(8,math.sqrt(divZ*divZ)) end
  42. turtle.select(4+3)
  43. if divY>=1 then i.drop(4,divY) else i.drop(7,math.sqrt(divY*divY)) end
  44. turtle.select(8) i.drop(6,rad)
  45. turtle.select(9) i.drop(11,rad)
  46. turtle.select(10) i.drop(14,rad)
  47. turtle.select(11) i.drop(12,rad*2)
  48. turtle.select(12) i.drop(10,rad)
  49.  
  50. turtle.select(16)
  51. turtle.suck() turtle.drop()
  52. rs.setOutput("front",true)
  53. end
  54.  
  55.  
  56. if tonumber(args[1])~=nil and string.find(message,"Tina setBox at ") then
  57. setField(tonumber(args[1])+1,tonumber(args[2]),tonumber(args[3]),tonumber(args[4]),tonumber(args[5]))
  58. end
  59.  
  60.  
  61. event, side, frequency, replyFrequency, message, distance = os.pullEvent("modem_message")
  62. if string.find(message,"Tina setBox at ") then
  63. --print("test "..string.sub(message,#"Tina setBox at "))
  64. shell.run("test "..string.sub(message,#"Tina setBox at "))
  65. end
  66. if message=="Tina setBox off" then
  67. rs.setOutput("front",false)
  68. end
  69. shell.run("test "..string.sub(message,#"Tina setBox at "))
Add Comment
Please, Sign In to add comment