Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function gpsl()
- x, y, z = gps.locate()
- end
- function checkFuel()
- currentFuel = turtle.getFuelLevel()
- currentSlot = turtle.getSelectedSlot()
- if turtle.getFuelLevel() < 1 then
- for slot = 1,16 do
- turtle.select(slot)
- if turtle.refuel() then
- return true, "Fueled"
- elseif slot == 16 then
- return false, "No fuel left"
- end
- end
- else
- print("there is still "..currentFuel.." Fuel left")
- return false
- end
- turtle.select(currentSlot)
- end
- function isValuable()
- local isValuable = true
- succes, data = turtle.inspect()
- if data["name"] == "minecraft:grass" or data.name == "minecraft:stone" or data.name == "minecraft:cobblestone" or data.name == "minecraft:dirt" or turtle.detect() == false then
- isValuable = false
- else
- isValuable = true
- end
- if isValuable == true then
- rednet.send(8, "found ore at level "..depth)
- end
- return isValuable
- end
- function checkWalls()
- for checking = 1,4 do
- if isValuable() == true then
- turtle.dig()
- end
- turtle.turnRight()
- end
- end
- function printinv()
- print("Printing the inventory: ")
- currentSlot = turtle.getSelectedSlot()
- for slot = 1,16 do
- turtle.select(slot)
- data = turtle.getItemDetail()
- if data then
- print("slot "..slot.." has "..data.count.." "..data.name)
- else
- print("slot "..slot.." has no items")
- end
- end
- turtle.select(currentSlot)
- end
- function mine()
- depth = 0
- checkFuel()
- turtle.digDown()
- while turtle.detectDown() == false do
- if turtle.down() then
- depth = depth + 1
- if depth % 10 == 0 then
- rednet.send(8, "I digged "..depth.." levels deep")
- end
- end
- checkFuel()
- checkWalls()
- succes, data = turtle.inspect()
- if not turtle.digDown() and data.name == "minecraft:bedrock" then
- rednet.send(8, "Reach bottom at depth "..depth.." going back up")
- break
- end
- end
- checkFuel()
- for reachedSurface = 1,6 do
- checkFuel()
- turtle.up()
- depth = depth-1
- end
- if not turtle.forward() then
- turtle.dig()
- sleep(0.5)
- turtle.forward()
- end
- turtle.turnLeft()
- for stepsforw = 1,2 do
- if not turtle.forward() then
- turtle.dig()
- sleep(0.5)
- turtle.forward()
- end
- end
- turtle.turnRight()
- print(depth)
- for backToSurface = depth,1, -1 do
- checkFuel()
- checkWalls()
- if turtle.detectUp() ~= false then
- turtle.digUp()
- end
- if not turtle.up() then
- turtle.digUp()
- sleep(0.5)
- turtle.up()
- end
- if depth % 10 == 0 then
- rednet.send(8, "Back at level: "..depth)
- end
- end
- if surface == depth then
- rednet.send(8, "I am back to surface")
- turtle.placeDown()
- end
- printinv()
- end
- function ask()
- term.clear()
- wide, height = term.getSize()
- term.setCursorBlink(wide/3, 1)
- print("Ronilla the most famous digger of all time")
- for printing = 1,wide do
- term.write("-")
- end
- print(" ")
- term.setCursorBlink(wide/3,3)
- print("A mining run")
- term.setCursorBlink(1, 4)
- print("wanna start digging?")
- term.write("yes = 1 | no = 0: ")
- answer = read()
- answer = tonumber(answer)
- if answer == 1 then
- print("going down")
- elseif answer == 0 then
- print("see ya next time")
- elseif type(answer) ~= number then
- print("keep it with numbers yo")
- ask()
- end
- return answer
- end
- --{{ Main Program }}--
- rednet.open("right")
- while true do
- ask()
- if answer == 0 then
- rednet.send(8, "user stopped Ronilla")
- break
- elseif answer == 1 then
- rednet.send(8, "Ronilla started digging")
- end
- rednet.open("right")
- mine()
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement