Advertisement
Chaos_Cash

Drone control

Aug 13th, 2024 (edited)
37
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.86 KB | None | 0 0
  1. function startup()
  2.  
  3. drone = peripheral.wrap("left")
  4.  
  5. rednet.open("top")
  6.  
  7.  
  8. rechargePos = {-7,87,-1}
  9. shipPickupPos = {-14,88,0,-19,85,7}
  10.  
  11.  
  12. end
  13.  
  14.  
  15.  
  16. function main()
  17.  
  18. while true do
  19.  
  20. info1,info2,info3,info4 = os.pullEvent()
  21.  
  22.  
  23. if info1 == "rednet_message" then
  24.  
  25.  
  26. if info3 == "getLastDronePos" then
  27. xPos, yPos, zPos = drone.getDronePosition()
  28. rednet.send(info2,{["action"]="sendingLastDronePos",["x"]=xPos-0.5,["y"]=yPos-0.33,["z"]=zPos-0.5})
  29. end
  30.  
  31. if info3 == "pickUpPlayer" then
  32. xPos, yPos, zPos = drone.getDronePosition()
  33.  
  34. drone.clearArea()
  35. drone.addArea(xPos+1,yPos+1,zPos+1,xPos-1,yPos-1,zPos-1,"Filled")
  36. drone.clearWhitelistText()
  37. drone.addWhitelistText("Player")
  38. drone.abortAction()
  39. drone.setAction("entity_import")
  40.  
  41. i=0
  42. repeat
  43. sleep(0.2)
  44. i=i+1
  45. until drone.isActionDone() or i == 25
  46.  
  47. drone.abortAction()
  48. end
  49.  
  50.  
  51. if type(info3) == "table" then
  52.  
  53.  
  54. if info3["action"] == "goto" then
  55.  
  56. curPosX,curPosY,curPosZ = drone.getDronePosition()
  57.  
  58. drone.clearArea()
  59. drone.addArea(info3["x"],info3["y"],info3["z"])
  60. drone.abortAction()
  61. drone.setAction("goto")
  62.  
  63. isOutOfRange = false
  64. if drone.isActionDone() then
  65. rednet.send(info2,"outOfRange")
  66. isOutOfRange = true
  67. end
  68.  
  69. repeat
  70. sleep(0.1)
  71. until drone.isActionDone()
  72.  
  73. xDif = math.max(curPosX-info3["x"],(curPosX-info3["x"])*-1)
  74. yDif = math.max(curPosY-info3["y"],(curPosY-info3["y"])*-1)
  75. zDif = math.max(curPosZ-info3["z"],(curPosZ-info3["z"])*-1)
  76. dif = xDif+yDif+zDif
  77.  
  78. if dif > 250 then
  79. drone.abortAction()
  80. drone.setAction("entity_export")
  81. end
  82.  
  83.  
  84. -- if dif > 250 then
  85.  
  86. -- drone.setSide("up",true)
  87. -- drone.setSide("north",false)
  88. -- drone.setSide("east",false)
  89. -- drone.setSide("south",false)
  90. -- drone.setSide("west",false)
  91. -- drone.setSide("down",false)
  92.  
  93. -- drone.clearArea()
  94. -- drone.addArea(info3["x"]+1,info3["y"],info3["z"])
  95. -- drone.abortAction()
  96. -- drone.setAction("block_right_click")
  97. -- repeat
  98. -- sleep(0.1)
  99. -- until drone.isActionDone()
  100.  
  101. -- drone.clearArea()
  102. -- drone.addArea(info3["x"]-1,info3["y"],info3["z"])
  103. -- drone.abortAction()
  104. -- drone.setAction("block_right_click")
  105. -- repeat
  106. -- sleep(0.1)
  107. -- until drone.isActionDone()
  108.  
  109. -- drone.clearArea()
  110. -- drone.addArea(info3["x"],info3["y"]-1,info3["z"])
  111. -- drone.abortAction()
  112. -- drone.setAction("block_right_click")
  113. -- repeat
  114. -- sleep(0.1)
  115. -- until drone.isActionDone()
  116.  
  117. -- drone.clearArea()
  118. -- drone.addArea(info3["x"],info3["y"],info3["z"]+1)
  119. -- drone.abortAction()
  120. -- drone.setAction("block_right_click")
  121. -- repeat
  122. -- sleep(0.1)
  123. -- until drone.isActionDone()
  124.  
  125. -- drone.clearArea()
  126. -- drone.addArea(info3["x"],info3["y"],info3["z"]-1)
  127. -- drone.abortAction()
  128. -- drone.setAction("block_right_click")
  129. -- repeat
  130. -- sleep(0.1)
  131. -- until drone.isActionDone()
  132.  
  133.  
  134.  
  135. -- drone.clearArea()
  136. -- drone.addArea(info3["x"],info3["y"],info3["z"])
  137. -- drone.abortAction()
  138. -- drone.setAction("goto")
  139. -- repeat
  140. -- sleep(0.1)
  141. -- until drone.isActionDone()
  142.  
  143. -- drone.abortAction()
  144. -- drone.setAction("entity_export")
  145. -- repeat
  146. -- sleep(0.1)
  147. -- until drone.isActionDone()
  148.  
  149. -- drone.clearArea()
  150. -- drone.addArea(info3["x"]+1,info3["y"]+1,info3["z"]+1,info3["x"]-1,info3["y"]-1,info3["z"]-1,"Filled")
  151. -- drone.abortAction()
  152. -- drone.setAction("entity_import")
  153.  
  154. -- end
  155.  
  156. end
  157.  
  158. if info3["action"] == "pickUpShip" then
  159.  
  160. drone.clearArea()
  161. drone.addArea(info3["x"],info3["y"],info3["z"])
  162. drone.abortAction()
  163. drone.setAction("goto")
  164.  
  165. repeat
  166. sleep(0.1)
  167. until drone.isActionDone()
  168.  
  169. drone.clearArea()
  170. drone.addArea(info3["x"]-1,info3["y"]-1,info3["z"]-1,info3["x"]+1,info3["y"]+1,info3["z"]+1,"Filled")
  171. drone.clearWhitelistText()
  172. drone.addWhitelistText("minecart")
  173. drone.abortAction()
  174. drone.setAction("entity_import")
  175.  
  176. end
  177.  
  178. if info3["action"] == "pickUpItem" then
  179.  
  180. drone.clearArea()
  181. drone.addArea(info3["x"],info3["y"],info3["z"])
  182. drone.abortAction()
  183. drone.setAction("goto")
  184.  
  185. repeat
  186. sleep(0.1)
  187. until drone.isActionDone()
  188.  
  189. drone.clearArea()
  190. drone.addArea(info3["x"],info3["y"]-1,info3["z"])
  191. drone.setSide("down",true)
  192. drone.abortAction()
  193. drone.setAction("inventory_import")
  194.  
  195. end
  196.  
  197.  
  198. end
  199.  
  200.  
  201. end
  202.  
  203.  
  204. end
  205.  
  206. end
  207.  
  208.  
  209.  
  210.  
  211.  
  212.  
  213.  
  214. startup()
  215. main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement