SHARE
    TWEET
    Krenair

    Computercraft mining turtle - tunnel command

    Apr 29th, 2013
    400
    0
    Never
    Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
    Lua 11.84 KB | None | 0 0
    1. compid = 2
    2. select = 1
    3. selectc = 5
    4. selectm = 8
    5. g_minelength = 70
    6. g_minewidth = 4
    7. g_tundown = "y"
    8. g_tunup = "y"
    9. function sprint(Text)
    10. textutils.slowPrint(Text)
    11. end
    12. function DoTop()
    13. term.clear()
    14. term.setCursorPos(1,1)
    15. print("Tunnel system")
    16. print("---------------------")
    17. end
    18. function DoMenu()
    19. term.setCursorPos(1,3)
    20. if select == 1 then print("Start tunneling <-") else print("Start tunneling") end
    21. if select == 2 then print("Tunnel config <-") else print("Tunnel config") end
    22. if select == 3 then print("Movement/commands <-") else print("Movement/commands") end
    23. if select == 4 then print("Refuel <-") else print("Refuel") end
    24. if select == 5 then print("Exit <-") else print("Exit") end
    25. print(" ")
    26. print("Current fuel level: "..turtle.getFuelLevel())
    27. end
    28. function RunMenu()
    29. while true do
    30. DoTop()
    31. DoMenu()
    32. local id, key = os.pullEvent("key")
    33. if key == 200 and select > 1 then
    34. select = select - 1
    35. elseif key == 208 and select < 5 then
    36. select = select + 1
    37. end
    38. if key == 28 then
    39. if select == 5 then os.reboot()
    40. elseif select == 1 then g_domine()
    41. elseif select == 2 then RunConfMenu()
    42. elseif select == 3 then RunMoveMenu()
    43. elseif select == 4 then g_refuel()
    44. end
    45. break
    46. end
    47. end
    48. end
    49. function DoConfMenu()
    50. term.setCursorPos(1,3)
    51. if selectc == 1 then print("Tunnel length ("..g_minelength..") <-") else print("Tunnel length ("..g_minelength..")") end
    52. if selectc == 2 then print("Tunnel width ("..g_minewidth..") <-") else print("Tunnel width ("..g_minewidth..")") end
    53. if selectc == 3 then print("Dig up("..g_tunup..") <-") else print("Dig up("..g_tunup..")") end
    54. if selectc == 4 then print("Dig down("..g_tundown..") <-") else print("Dig down("..g_tundown..")") end
    55. if selectc == 5 then print("Back <-") else print("Back") end
    56. end
    57. function RunConfMenu()
    58. while true do
    59. DoTop()
    60. DoConfMenu()
    61. local id, key = os.pullEvent("key")
    62. if key == 200 and selectc > 1 then
    63. selectc = selectc - 1
    64. elseif key == 208 and selectc < 5 then
    65. selectc = selectc + 1
    66. end
    67. if key == 28 then
    68. if selectc == 1 then g_setminelen()
    69. elseif selectc == 2 then g_setminewidth()
    70. elseif selectc == 3 then g_setminedir()
    71. elseif selectc == 4 then g_setminedird()
    72. elseif selectc == 5 then RunMenu()
    73. end
    74. break
    75. end
    76. end
    77. end
    78. function DoMoveMenu()
    79. term.setCursorPos(1,3)
    80. if selectm == 1 then print("Dig <-") else print("Dig") end
    81. if selectm == 2 then print("Dig up <-") else print("Dig up") end
    82. if selectm == 3 then print("Dig down <-") else print("Dig down") end
    83. if selectm == 4 then print("Turn left <-") else print("Turn left") end
    84. if selectm == 5 then print("Turn right <-") else print("Turn right") end
    85. if selectm == 6 then print("Move forward <-") else print("Move forward") end
    86. if selectm == 7 then print("Move back <-") else print("Move back") end
    87. if selectm == 8 then print("Back <-") else print("Back") end
    88. end
    89. function RunMoveMenu()
    90. while true do
    91. DoTop()
    92. DoMoveMenu()
    93. local id, key = os.pullEvent("key")
    94. if key == 200 and selectm > 1 then
    95. selectm = selectm - 1
    96. elseif key == 208 and selectm < 8 then
    97. selectm = selectm + 1
    98. end
    99. if key == 28 then
    100. if selectm == 1 then turtle.dig()
    101. elseif selectm == 2 then turtle.digUp()
    102. elseif selectm == 3 then turtle.digDown()
    103. elseif selectm == 4 then turtle.turnLeft()
    104. elseif selectm == 5 then turtle.turnRight()
    105. elseif selectm == 6 then turtle.forward()
    106. elseif selectm == 7 then turtle.back()
    107. elseif selectm == 8 then RunMenu()
    108. end
    109. break
    110. end
    111. RunMoveMenu()
    112. end
    113. end
    114. function g_setminelen()
    115. term.clear()
    116. print("Please enter length to mine: ")
    117. newlen = io.read()
    118. num = tonumber(newlen)
    119. if num == nil or num == "" then
    120. print("Invalid length!")
    121. else
    122. if num < 1 then
    123. print("Length too short!")
    124. elseif num > 120 then
    125. print("Length too long!")
    126. else
    127. g_minelength = num
    128. print("Length set!")
    129. sleep(1)
    130. RunConfMenu()
    131. end
    132. end
    133. end
    134. function g_setminewidth()
    135. term.clear()
    136. print("Please enter width to mine: ")
    137. newlen = io.read()
    138. num = tonumber(newlen)
    139. if num == nil or num == "" then
    140. print("Invalid length!")
    141. else
    142. if num < 1 then
    143. print("Width too short!")
    144. elseif num > 60 then
    145. print("Width too long!")
    146. else
    147. g_minewidth = num
    148. print("Width set")
    149. sleep(1)
    150. RunConfMenu()
    151. end
    152. end
    153. end
    154. function g_setminedir()
    155. term.clear()
    156. print("Mine up? [y/n] ")
    157. newup = io.read()
    158. if newup == "y" or newup == "Y" then
    159. g_tunup = "y"
    160. print("Okay, I will mine upwards!")
    161. sleep(1)
    162. elseif newup == "n" or newup == "N" then
    163. g_tunup = "n"
    164. print("Fine, I wont mine upwards!")
    165. sleep(1)
    166. else
    167. print("Invalid selection!?")
    168. sleep(1)
    169. g_setminedir()
    170. end
    171. RunConfMenu()
    172. end
    173. function g_setminedird()
    174. term.clear()
    175. print("Mine down? [y/n] ")
    176. newup = io.read()
    177. if newup == "y" or newup == "Y" then
    178. g_tundown = "y"
    179. print("Okay, I will mine downwards!")
    180. sleep(1)
    181. elseif newup == "n" or newup == "N" then
    182. g_tundown = "n"
    183. print("Fine, I wont mine downwards!")
    184. sleep(1)
    185. else
    186. print("Invalid selection!?")
    187. sleep(1)
    188. g_setminedird()
    189. end
    190. RunConfMenu()
    191. end
    192. function g_refuel()
    193. term.clear()
    194. turtle.select(1)
    195. if turtle.refuel(64) == false then
    196. print("Invalid fuel in slot 1!")
    197. sleep(3)
    198. end
    199. RunMenu()
    200. end
    201. function g_dropchest()
    202. if turtle.getItemCount(15) < 1 then
    203. return false
    204. end
    205. if g_tundown == "y" then
    206. turtle.digDown()
    207. turtle.down()
    208. end
    209. turtle.digDown()
    210. turtle.select(15)
    211. turtle.placeDown()
    212. sleep(1.5)
    213. for i = 1, 14, 1 do
    214. turtle.select(i)
    215. turtle.dropDown()
    216. end
    217. turtle.select(15)
    218. turtle.digDown()
    219. turtle.select(1)
    220. if g_tundown == "y" then
    221. turtle.up()
    222. end
    223. print("Chest placed!")
    224. end
    225. function g_domine()
    226. turtle.select(1)
    227. term.clear()
    228. if g_minelength < 1 then
    229. print("Please set mine length")
    230. sleep(2)
    231. RunMenu()
    232. return false;
    233. end
    234. sprint("Starting mining process...")
    235. width = g_minewidth - 1
    236. torch = 1
    237. length = g_minelength
    238. while length > 0 do
    239. torch = torch + 1
    240. turtle.dig()
    241. while turtle.forward() ~= true do
    242. turtle.dig()
    243. if g_tundown == "y" then turtle.digDown() end
    244. sleep(0.5)
    245. end
    246. if g_tunup == "y" then turtle.digUp() end
    247. if g_tundown == "y" then turtle.digDown() end
    248. if width > 0 then
    249. turtle.turnRight()
    250. for w = 1, width, 1 do
    251. turtle.dig()
    252. while turtle.forward() ~= true do
    253. turtle.dig()
    254. if g_tundown == "y" then turtle.digDown() end
    255. sleep(0.5)
    256. end
    257. if g_tunup == "y" then turtle.digUp() end
    258. if g_tundown == "y" then turtle.digDown() end
    259. end
    260. if torch >= 6 then
    261. torch = 1
    262. torchLevel = turtle.getItemCount(16)
    263. if torchLevel > 1 then
    264. turtle.select(16)
    265. turtle.placeDown()
    266. turtle.select(1)
    267. end
    268. end
    269. turtle.turnLeft()
    270. length = length - 1
    271. torch = torch + 1
    272. turtle.dig()
    273. while turtle.forward() ~= true do
    274. turtle.dig()
    275. if g_tundown == "y" then turtle.digDown() end
    276. sleep(0.5)
    277. end
    278. if g_tunup == "y" then turtle.digUp() end
    279. if g_tundown == "y" then turtle.digDown() end
    280. turtle.turnLeft()
    281. for w = 1, width, 1 do
    282. turtle.dig()
    283. while turtle.forward() ~= true do
    284. turtle.dig()
    285. if g_tundown == "y" then turtle.digDown() end
    286. sleep(0.5)
    287. end
    288. if g_tunup == "y" then turtle.digUp() end
    289. if g_tundown == "y" then turtle.digDown() end
    290. end
    291. turtle.turnRight()
    292. length = length - 1
    293. end
    294. if turtle.getItemCount(13) > 0 then
    295. g_dropchest()
    296. end
    297. end
    298. turtle.turnLeft()
    299. turtle.turnLeft()
    300. for i = 1, g_minelength, 1 do
    301. while turtle.forward() ~= true do
    302. turtle.dig()
    303. if g_tundown == "y" then turtle.digDown() end
    304. sleep(0.5)
    305. end
    306. end
    307. turtle.turnLeft()
    308. turtle.turnLeft()
    309. sprint("Mining complete!")
    310. sleep(2)
    311. RunMenu()
    312. end
    313. RunMenu()
    Advertisement
    Add Comment
    Please, Sign In to add comment
    Public Pastes
    We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
    Not a member of Pastebin yet?
    Sign Up, it unlocks many cool features!

    AltStyle によって変換されたページ (->オリジナル) /