Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 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
- function gpsl()
- rednet.open("right")
- x, y, z = gps.locate() --%d and %i - output as an integer number string.format ("%i", 123.456) --> 123
- end
- function checkingFuel()
- 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
- return false,"there is still "..currentFuel.." Fuel left"
- end
- turtle.select(currentSlot)
- end
- function checkFuel()
- refueled, comment = checkingFuel()
- if not refueled then
- rendnet.send(8, "help! out of fuel")
- ask()
- end
- 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
- gpsl()
- rednet.send(8, "found ore at level "..y)
- end
- return isValuable
- end
- function checkWalls()
- for checking = 1,4 do
- if isValuable() == true then
- turtle.dig()
- end
- turtle.turnRight()
- end
- checkFuel()
- 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()
- gpsl()
- startX = x
- startY = y
- startZ = z
- checkFuel()
- turtle.digDown()
- turtle.down()
- turtle.digDown()
- turtle.down()
- turtle.placeUp()
- turtle.digDown()
- while turtle.detectDown() == false do
- if turtle.down() then
- gpsl()
- if y % 10 == 0 then
- rednet.send(8, "I digged to"..y.." levels deep")
- end
- end
- checkFuel()
- checkWalls()
- succes, data = turtle.inspect()
- if not turtle.digDown() and data.name == "minecraft:bedrock" then
- gpsl()
- rednet.send(8, "Reach bottom at depth "..y.." going back up")
- break
- end
- end
- checkFuel()
- for reachedSurface = 1,6 do
- checkFuel()
- turtle.up()
- end
- repeat
- if not turtle.forward() then
- fd = false
- turtle.dig()
- sleep(0.5)
- else
- fd = true
- end
- until fd == true
- turtle.turnLeft()
- for stepsforw = 1,2 do
- repeat
- if not turtle.forward() then
- fd = false
- turtle.dig()
- sleep(0.5)
- else
- fd = true
- end
- until fd == true
- end
- turtle.turnRight()
- gpsl()
- for backToSurface = startY,y, -1 do
- checkFuel()
- checkWalls()
- if turtle.detectUp() ~= false then
- turtle.digUp()
- end
- repeat
- if not turtle.up() then
- up = false
- turtle.digUp()
- sleep(0.5)
- else
- up = true
- end
- until up == true
- if y % 10 == 0 then
- gpsl()
- rednet.send(8, "Back at level: "..y)
- end
- end
- if surface == startY then
- rednet.send(8, "I am back to surface")
- turtle.placeDown()
- end
- printinv()
- 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