Tweek112

Untitled

Nov 6th, 2022
11
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.09 KB | None | 0 0
  1. local args = { . . . }
  2.  
  3. if #args ~= 3 then
  4. print("Verwendung: <Skriptname> <Breite> <Höhe> <Länge>")
  5. zurück
  6. Ende
  7.  
  8. lokale maxWidth = args[1]
  9. lokale maxHeight = args[2]
  10. lokale maxLength = args[3]
  11.  
  12. örtliche Höhe = 0
  13. lokal entladen = 0
  14. lokal erhoben = 0
  15.  
  16. lokal xPos,zPos = 0,0
  17. lokal xDir,zDir = 0,1
  18.  
  19. local goTo -- Weiter unten ausgefüllt
  20. Lokales Auftanken -- weiter unten aufgefüllt
  21.  
  22. shell. run («pastebin get BgrVUJyh kapi»)
  23. os. loadAPI («kapi»)
  24.  
  25. lokale Funktion entladen (_bKeepOneFuelStack)
  26. print («Laden von Gegenständen. . . » )
  27. für n=1,16 do
  28. lokal nCount = turtle. getItemCount (n)
  29. wenn nCount > 0 dann
  30. turtle. select (n)
  31. lokal bDrop = true
  32. if _bKeepOneFuelStack und turtle. refuel (0) dann
  33. bDrop = false
  34. _bKeepOneFuelStack = false
  35. Ende
  36. wenn bDrop dann
  37. turtle. drop ()
  38. entladen = entladen + nCount
  39. Ende
  40. Ende
  41. Ende
  42. erhoben = 0
  43. turtle. select (1)
  44. Ende
  45.  
  46. local function returnSupplies ()
  47. lokal x,y,z,xd,zd = xPos,Höhe,zPos,xDir,zDir
  48. print («Rückkehr an die Oberfläche. . . » )
  49. goTo (0,0,0,-1)
  50.  
  51. Lokaler KraftstoffBenötigt = 2* (x+y+z) + 1
  52. wenn nicht tanken (fuelNeeded) dann
  53. Entladen (wahr)
  54. print («Warten auf Treibstoff»)
  55. während nicht tanken (fuelNeeded) tun
  56. os. pullEvent («turtle_inventory»)
  57. Ende
  58. Sonstiges
  59. Entladen (wahr)
  60. Ende
  61.  
  62. print («Wiederaufnahme des Bergbaus. . . » )
  63. goTo (x,y,z,xd,zd)
  64. Ende
  65.  
  66. lokale Funktion collect ()
  67. lokal bFull = true
  68. Lokal nTotalItems = 0
  69. für n=1,16 do
  70. lokal nCount = turtle. getItemCount (n)
  71. wenn nCount == 0 dann
  72. bFull = false
  73. Ende
  74. nTotalItems = nTotalItems + nCount
  75. Ende
  76.  
  77. wenn nTotalItems > erfasst wird, dann
  78. erhoben = nGesamtposten
  79. if math. fmod (gesammelt + entladen, 50) == 0 dann
  80. kapi. notify («Mined «. . (erhoben + entladen). . » Artikel. » )
  81. Ende
  82. Ende
  83.  
  84. wenn bFull dann
  85. kapi. notify («Keine freien Slots übrig». )
  86. returnSupplies ()
  87. kapi. notify («Rücklieferungen»)
  88. Rückgabe false
  89. Ende
  90. zurückgeben true
  91. Ende
  92.  
  93. Funktion tanken (Betrag)
  94. local fuelLevel = turtle. getFuelLevel ()
  95. wenn fuelLevel == «unbegrenzt» dann
  96. zurückgeben true
  97. ende
  98.  
  99. local needed = ammount oder (maxWidth - xPos + maxLength - zPos + maxHeight - height + 2)
  100. kapi. notify("Kraftstoff: ". . . turtle. getFuelLevel())
  101. wenn turtle. getFuelLevel() < benötigt dann
  102. kapi. notify("Tanken: ". . benötigt)
  103. local fueled = false
  104. for n=1,16 do
  105. wenn turtle. getItemCount(n) > 0 dann
  106. turtle. select(n)
  107. if turtle. refuel(1) then
  108. while turtle. getItemCount(n) > 0 und turtle. getFuelLevel() < benötigt do
  109. turtle. refuel(1)
  110. Ende
  111. wenn turtle. getFuelLevel () >= benötigt wird, dann
  112. turtle. select (1)
  113. zurückgeben true
  114. Ende
  115. Ende
  116. Ende
  117. Ende
  118. turtle. select (1)
  119. Rückgabe false
  120. Ende
  121.  
  122. zurückgeben true
  123. Ende
  124.  
  125. lokale Funktion tryForwards ()
  126. wenn nicht tanken () dann
  127. print («Nicht genug Treibstoff»)
  128. returnSupplies ()
  129. Ende
  130.  
  131. während turtle. forward () nicht
  132. wenn turtle. detect () dann
  133. wenn turtle. dig () dann
  134. wenn nicht collect () dann
  135. returnSupplies ()
  136. Ende
  137. Sonstiges
  138. Rückgabe false
  139. Ende
  140. elseif turtle. attack () dann
  141. wenn nicht collect () dann
  142. returnSupplies ()
  143. Ende
  144. Sonstiges
  145. Schlaf (0,5)
  146. Ende
  147. Ende
  148.  
  149. xPos = xPos + xDir
  150. zPos = zPos + zDir
  151. zurückgeben true
  152. Ende
  153.  
  154. lokale Funktion tryDown ()
  155. wenn nicht tanken () dann
  156. kapi. notify («Nicht genug Treibstoff»)
  157. returnSupplies ()
  158. Ende
  159.  
  160. während turtle. down () nicht
  161. wenn turtle. detectDown () dann
  162. wenn turtle. digDown () dann
  163. wenn nicht collect () dann
  164. returnSupplies ()
  165. Ende
  166. Sonstiges
  167. Rückgabe false
  168. Ende
  169. elseif turtle. attackDown () dann
  170. wenn nicht collect () dann
  171. returnSupplies ()
  172. Ende
  173. Sonstiges
  174. Schlaf (0,5)
  175. Ende
  176. Ende
  177.  
  178. Höhe = Höhe – 1
  179. if math. fmod (Höhe, 10) == 0 dann
  180. print («Descended «. . height. . » Meter. » )
  181. Ende
  182.  
  183. zurückgeben true
  184. Ende
  185.  
  186. lokale Funktion tryUp ()
  187. wenn nicht tanken () dann
  188. kapi. notify («Nicht genug Treibstoff»)
  189. returnSupplies ()
  190. Ende
  191.  
  192. während turtle. up () nicht
  193. wenn turtle. detectUp () dann
  194. wenn turtle. digUp () dann
  195. wenn nicht collect () dann
  196. returnSupplies ()
  197. Ende
  198. Sonstiges
  199. Rückgabe false
  200. Ende
  201. elseif turtle. attackUp () dann
  202. wenn nicht sammeln() dann
  203. return
Add Comment
Please, Sign In to add comment