Advertisement
Guest User

Sayinore's Mine Program

a guest
May 27th, 2016
819
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.67 KB | None | 0 0
  1. --var or array define area start
  2. torch = 1
  3.  
  4. --get distance
  5. print("How long do you want the miner to go? (unit:block(s))")
  6. times = read()
  7. hbtimes = times --have been go forward times
  8. --end
  9.  
  10. local mineral = {
  11. "minecraft:coal_ore",
  12. "minecraft:iron_ore",
  13. "minecraft:redstone_ore",
  14. "minecraft:gold_ore",
  15. "minecraft:lapis_ore",
  16. "minecraft:emerald_ore",
  17. "minecraft:quartz_ore",
  18. }
  19. --var or array area end
  20.  
  21. --function area start
  22.  
  23. --[[notes of var "side" in function go(),compare(),dig():
  24. 0:forward 1:left 2:back
  25. 3:right 4:up 5:down
  26.  
  27. notes of var "side" in function dfs():
  28. 0:around 1:up 2:down
  29. ]]
  30.  
  31.  
  32. function go(side)
  33. if side == 0 then
  34. while not turtle.forward() do
  35. turtle.dig()
  36. end
  37. end
  38.  
  39. if side == 1 then
  40. turtle.turnLeft()
  41. while not turtle.forward() do
  42. turtle.dig()
  43. end
  44. turtle.turnRight()
  45. end
  46.  
  47. if side == 2 then
  48. while not turtle.back() do
  49. turtle.turnLeft()
  50. turtle.turnLeft()
  51. turtle.dig()
  52. turtle.turnRight()
  53. turtle.turnRight()
  54. turtle.turnRight()
  55. end
  56. end
  57.  
  58. if side == 3 then
  59. turtle.turnRight()
  60. while not turtle.forward() do
  61. turtle.dig()
  62. end
  63. turtle.turnLeft()
  64. end
  65.  
  66. if side == 4 then
  67. while not turtle.up() do
  68. turtle.digUp()
  69. end
  70. end
  71.  
  72. if side == 5 then
  73. while not turtle.down() do
  74. turtle.digDown()
  75. end
  76. end
  77. end
  78.  
  79. function compare(side)
  80. if side == 0 then
  81. success, data = turtle.inspect() --get block data
  82.  
  83. if success then --compare block data
  84. for i = 1, table.getn(mineral) do
  85. if data.name == mineral[i] then
  86. return true
  87. end
  88. end
  89. else
  90. return false
  91. end
  92.  
  93. return false
  94. end
  95.  
  96. if side == 4 then
  97. success, data = turtle.inspectUp() --get block data
  98.  
  99. if success then --compare block data
  100. for i = 1, table.getn(mineral) do
  101. if data.name == mineral[i] then
  102. return true
  103. end
  104. end
  105. else
  106. return false
  107. end
  108.  
  109. return false
  110. end
  111.  
  112. if side == 5 then
  113. success, data = turtle.inspectDown() --get block data
  114.  
  115. if success then --compare block data
  116. for i = 1, table.getn(mineral) do
  117. if data.name == mineral[i] then
  118. return true
  119. end
  120. end
  121. else
  122. return false
  123. end
  124.  
  125. return false
  126. end
  127. end
  128.  
  129. function dig(side)
  130. if side == 0 then
  131. turtle.dig()
  132. end
  133.  
  134. if side == 1 then
  135. turtle.turnLeft()
  136. turtle.dig()
  137. turtle.turnRight()
  138. end
  139.  
  140. if side == 2 then
  141. turtle.turnLeft()
  142. turtle.turnLeft()
  143. turtle.dig()
  144. turtle.turnRight()
  145. turtle.turnRight()
  146. end
  147.  
  148. if side == 3 then
  149. turtle.turnRight()
  150. turtle.dig()
  151. turtle.turnLeft()
  152. end
  153.  
  154. if side == 4 then
  155. turtle.digUp()
  156. end
  157.  
  158. if side == 5 then
  159. turtle.digDown()
  160. end
  161. end
  162.  
  163. function dfs(side)
  164. if side == 0 then
  165. for i = 1, 4 do
  166. if compare(0) then
  167. dig(0)
  168. go(0)
  169. dfs(0)
  170. dfs(1)
  171. dfs(2)
  172. go(2)
  173. end
  174. turtle.turnLeft()
  175. end
  176. end
  177.  
  178. if side == 1 then
  179. if compare(4) then
  180. dig(4)
  181. go(4)
  182.  
  183. dfs(0)
  184. dfs(1)
  185. dfs(2)
  186.  
  187. go(5)
  188. end
  189. end
  190.  
  191. if side == 2 then
  192. if compare(5) then
  193. dig(5)
  194. go(5)
  195.  
  196. dfs(0)
  197. dfs(1)
  198. dfs(2)
  199.  
  200. go(4)
  201. end
  202. end
  203. end
  204.  
  205. function alert(message)
  206. rednet.open("right")
  207. rednet.broadcast(message)
  208. end
  209. --function area end
  210.  
  211. for i = 1, 1 do
  212. alert("Starting mining...")
  213.  
  214. for i = 1, times do
  215. dig(0)
  216. go(0)
  217. dig(4)
  218. dfs(0)
  219. dfs(2)
  220. end
  221.  
  222. alert("Start backing...")
  223.  
  224. turtle.select(torch)
  225. turtle.turnLeft()
  226. turtle.turnLeft()
  227. go(4)
  228. turtle.placeDown()
  229.  
  230.  
  231. for i = 1, hbtimes do
  232. go(0)
  233. dfs(0)
  234. dfs(1)
  235.  
  236. if i%8 == 0 then
  237. turtle.select(torch)
  238. turtle.placeDown()
  239. end
  240. end
  241.  
  242. turtle.turnLeft()
  243. turtle.turnLeft()
  244. go(5)
  245. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement