Advertisement
Morok

Untitled

Nov 15th, 2012
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.04 KB | None | 0 0
  1. tArgs[5]=nLimit
  2. hmax=65
  3. hdig=17
  4. hcarry=8
  5. powersaving=false
  6. nLimit=1
  7. local tArgs = { ... }
  8. tArgs[1]=hmax
  9. tArgs[2]=hdig
  10. tArgs[3]=hcarry
  11. if tArgs[4] = 1 then powersavin=true end
  12. dwn=function()
  13. h=hmax
  14. while h>hdig do
  15. if turtle.detectDown then turtle.digDown() end
  16. turtle.down()
  17. h=h-1
  18. end
  19. end
  20.  
  21. up2freedom=function()
  22. h=hdig
  23. while h<hmax do
  24. turtle.up()
  25. h=h+1
  26. end
  27. end
  28.  
  29. refuel=function()
  30. if turtle.getFuelLevel() ~= "unlimited" then
  31. for n=1,16 do
  32. nCount = turtle.getItemCount(n)
  33. if nCount > 0 then
  34. turtle.select( n )
  35. if nCount >= nLimit then
  36. if turtle.refuel( nLimit ) then
  37. break
  38. end
  39. else
  40. if turtle.refuel( nCount ) then
  41. nLimit = nLimit - nCount
  42. end
  43. end
  44. end
  45. end
  46. end
  47.  
  48. end
  49.  
  50. back2pos=function(xde,yde,zde, vecde)
  51.  
  52. if z>zde then
  53. while z>zde do
  54. if turtle.detectUp() then turtle.digUp() end
  55. turtle.up()
  56. z=z-1
  57. end
  58.  
  59. else
  60. while z<zde do
  61. if turtle.detectDown() then turtle.digDown() end
  62. turtle.down()
  63. z=z+1
  64. end
  65. end
  66.  
  67. if x>xde then
  68.  
  69. while vec~=3 do
  70. turtle.turnLeft()
  71. vec=vec+1
  72. if vec>4 then vec=1 end
  73. end
  74.  
  75. while x>xde do
  76.  
  77. while turtle.detect() do
  78. turtle.dig()
  79. sleep(0.5)
  80. end
  81. turtle.forward()
  82. x=x-1
  83. end
  84.  
  85. else
  86.  
  87. while vec~=1 do
  88. turtle.turnLeft()
  89. vec=vec+1
  90. if vec>4 then vec=1 end
  91. end
  92.  
  93. while x<xde do
  94. while turtle.detect() do
  95. turtle.dig()
  96. sleep(0.5)
  97. end
  98. turtle.forward()
  99. x=x+1
  100. end
  101.  
  102. end
  103.  
  104.  
  105. if y>yde then
  106.  
  107. while vec~=2 do
  108. turtle.turnLeft()
  109. vec=vec+1
  110. if vec>4 then vec=1 end
  111. end
  112.  
  113. while y>yde do
  114. while turtle.detect() do
  115. turtle.dig()
  116. sleep(0.5)
  117. end
  118. turtle.forward()
  119. y=y-1
  120. end
  121.  
  122. else
  123.  
  124. while vec~=4 do
  125. turtle.turnLeft()
  126. vec=vec+1
  127. if vec>4 then vec=1 end
  128. end
  129.  
  130. while y<yde do
  131. while turtle.detect() do
  132. turtle.dig()
  133. sleep(0.5)
  134. end
  135. turtle.forward()
  136. y=y+1
  137. end
  138.  
  139. end
  140.  
  141. while vec~=vecde do
  142. turtle.turnLeft()
  143. vec=vec+1
  144. if vec>4 then vec=1 end
  145. end
  146.  
  147. end
  148.  
  149. xrem=1
  150. yrem=0
  151. zrem=0
  152. vecrem=2
  153.  
  154. x=0
  155. y=0
  156. z=0
  157. vec=1
  158.  
  159. hcarry=hcarry-1
  160.  
  161. file = io.open("miner.lua", "a")
  162. file:close()
  163.  
  164.  
  165. file = io.open("miner.lua", "r")
  166. test=file:read()
  167. if test~=nil then
  168. xrem=test
  169. yrem=file:read()
  170. zrem=file:read()
  171. vecrem=file:read()
  172. xrem=tonumber(xrem)
  173. yrem=tonumber(yrem)
  174. zrem=tonumber(zrem)
  175. vecrem=tonumber(vecrem)
  176. end
  177.  
  178. file:close()
  179.  
  180. while true do
  181.  
  182. if powersaving==true then
  183. rs.setOutput("left",true)
  184. rs.setOutput("right",true)
  185. rs.setOutput("front",true)
  186. rs.setOutput("back",true)
  187. end
  188.  
  189. while turtle.getItemCount(16)~=0 do
  190. sleep(1)
  191. for n=1,16 do
  192. if n ~= nCount then
  193. turtle.select( n )
  194. turtle.drop()
  195. end
  196. end
  197. end
  198. turtle.turnLeft ()
  199. turtle.suck ()
  200. turtle.turnRight ()
  201.  
  202. if powersaving==true then
  203. rs.setOutput("left",false)
  204. rs.setOutput("right",false)
  205. rs.setOutput("front",false)
  206. rs.setOutput("back",false)
  207. end
  208.  
  209. local cpusk = hmax + hcarry
  210. while cpusk > turtle.getFuelLevel() do refuel() end
  211.  
  212.  
  213. dwn()
  214. back2pos(xrem,yrem,zrem,vecrem)
  215.  
  216. while turtle.getItemCount(16)==0 do
  217.  
  218. if z~=hcarry then
  219. if turtle.detect() then turtle.dig() end
  220. if turtle.detectDown() then turtle.digDown() end
  221. if turtle.getFuelLevel() < 2 then refuel() end
  222. turtle.down()
  223. z=z+1
  224. else
  225. while turtle.detect() do
  226. turtle.dig()
  227. sleep(0.5)
  228. end
  229.  
  230. while z~=0 do
  231. if turtle.getFuelLevel() < 2 then refuel() end
  232. turtle.up()
  233. z=z-1
  234. end
  235.  
  236. if turtle.getFuelLevel() < 2 then refuel() end
  237. turtle.forward()
  238. if vec==1 then x=x+1 end
  239. if vec==2 then y=y-1 end
  240. if vec==3 then x=x-1 end
  241. if vec==4 then y=y+1 end
  242.  
  243.  
  244.  
  245. if math.abs(x)==math.abs(y) then
  246. turtle.turnLeft()
  247. vec=vec+1
  248. if vec>4 then vec=1 end
  249. end
  250.  
  251.  
  252. if y==1 and x>0 then
  253. turtle.turnRight()
  254. while turtle.detect() do
  255. turtle.dig()
  256. sleep(0.5)
  257. end
  258. if turtle.getFuelLevel() < 2 then refuel() end
  259. turtle.forward()
  260. turtle.turnLeft()
  261. x=x+1
  262. end
  263. end
  264.  
  265. local vozvrat = y + x + z
  266. while vozvrat > turtle.getFuelLevel() do refuel() end
  267. end
  268.  
  269. xrem=x
  270. yrem=y
  271. zrem=z
  272. vecrem=vec
  273.  
  274. file = io.open("miner.lua", "w")
  275. file:write(xrem.."\n")
  276. file:write(yrem.."\n")
  277. file:write(zrem.."\n")
  278. file:write(vecrem.."\n")
  279. file:close()
  280.  
  281. back2pos(0,0,0,1)
  282. up2freedom()
  283.  
  284. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement