Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --Version 1.8
- dArgs = {...}
- distance = 0
- close = false
- home = false
- --Improved movements for less gravel issues
- function turtleForward()
- if not turtle.forward() then
- repeat
- turtle.dig()
- sleep(.5)
- until turtle.forward()
- end
- end
- function turtleUp()
- if not turtle.up() then
- repeat
- turtle.digUp()
- until turtle.up()
- end
- end
- function turtleDown()
- if not turtle.down() then
- turtle.digDown()
- end
- end
- function turtleDig()
- if turtle.detect() then
- repeat
- turtle.dig()
- sleep(.5)
- until not turtle.detect()
- end
- end
- --Technical Functions
- function closeProgram()
- close = true
- return
- end
- function distanceForward()
- turtleForward()
- distance = distance + 1
- end
- function goHome()
- turtle.turnLeft()--/Turning back
- turtle.turnLeft()
- for i=1,distance do
- turtleForward()
- end
- depositInv()
- turtle.turnRight()--/Facing origin
- turtle.turnRight()
- home = true
- end
- function depositInv()
- for i=1,16 do
- turtle.select(i)
- turtle.drop()
- end
- turtle.select(1)
- end
- function checkFuel()
- if turtle.getFuelLevel() - 15 <= distance then
- if not home then
- goHome()
- end
- if distance == tonumber(dArgs[1]) then
- term.setTextColor(colors.green)
- print("Done!")
- end
- if turtle.getFuelLevel() == 0 then
- term.setTextColor(colors.red)
- print("Out of fuel. Program Canceled.")
- closeProgram()
- else
- term.setTextColor(colors.red)
- print("Fuel too low. Program Canceled.")
- print("Current fuel level: "..turtle.getFuelLevel())
- closeProgram()
- end
- end
- end
- function checkInv()
- if turtle.getItemCount(16) >= 1 then
- print("Inventory full! Dumping items where I started.")
- goHome()
- checkFuel()
- if distance == tonumber(dArgs[1]) then --Fixes error where if inventory detected full at dArgs it will travel to and back
- term.setTextColor(colors.green)
- print("Done!")
- closeProgram()
- end
- if not close then
- for i=1,distance do
- turtleForward()
- end
- home = false
- end
- end
- end
- function returnHome()
- if home then
- return
- end
- goHome()
- sleep(.6)
- term.setTextColor(colors.green)
- print("Done!")
- end
- --Input and Returns
- if turtle.getFuelLevel() <= 15 then
- print("Need at least 16 fuel.")
- print("Current fuel level: "..turtle.getFuelLevel())
- return
- end
- if tonumber(dArgs[1]) == nil then
- print("miner <distance>")
- return
- elseif tonumber(dArgs[1]) == 0 then
- print("Distance must be greater than 0")
- return
- elseif tonumber(dArgs[1]) == 1 then
- print("Mining "..dArgs[1].." block out")
- else
- print("Mining "..dArgs[1].." blocks out")
- end
- --Mining Function
- repeat
- distanceForward()
- turtle.turnLeft()
- turtleForward()
- turtleUp()
- turtleUp()
- turtleDig()
- turtleDown()
- turtleDig()
- turtleDown()
- turtleDig()
- turtle.turnRight()
- turtle.turnRight()
- turtleForward()
- turtleForward()
- turtleUp()
- turtleUp()
- turtleDig()
- turtle.turnLeft()
- turtle.turnLeft()
- turtleDig()
- turtleDown()
- turtleDig()
- turtle.turnRight()
- turtle.turnRight()
- turtleDig()
- turtleDown()
- turtleDig()
- turtle.turnLeft()
- turtle.turnLeft()
- turtleForward()
- turtle.turnRight()
- checkFuel()
- checkInv()
- if close then
- break
- end
- until distance == tonumber(dArgs[1])
- returnHome()
- --Code by MrDubbyWubby
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement