Advertisement
non_dual_being

miningwithRonilla1.2

Jul 18th, 2018
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 4.34 KB | None | 0 0
  1. function ask()
  2. term.clear()
  3.  
  4. wide, height = term.getSize()
  5.  
  6. term.setCursorBlink(wide/3, 1)
  7.  
  8. print("Ronilla the most famous digger of all time")
  9.  
  10. for printing =  1,wide do
  11.   term.write("-")
  12. end
  13.  
  14. print(" ")
  15.  
  16. term.setCursorBlink(wide/3,3)
  17.  
  18.  print("A mining run")
  19.  
  20. term.setCursorBlink(1, 4)  
  21.  
  22. print("wanna start digging?")
  23. term.write("yes = 1 | no = 0: ")
  24. answer = read()
  25. answer = tonumber(answer)
  26.  
  27.   if answer == 1 then
  28.     print("going down")
  29.   elseif answer == 0 then
  30.     print("see ya next time")
  31.   elseif type(answer) ~= number then
  32.     print("keep it with numbers yo")
  33.     ask()
  34.    end
  35.   return answer
  36. end
  37.  
  38. function gpsl()
  39. rednet.open("right")
  40. x, y, z = gps.locate() --%d and %i - output as an integer number string.format ("%i", 123.456) --> 123
  41. end
  42.  
  43. function checkingFuel()
  44.  
  45. currentFuel = turtle.getFuelLevel()
  46. currentSlot = turtle.getSelectedSlot()
  47.  
  48. if turtle.getFuelLevel() < 1 then
  49.   for slot = 1,16 do
  50.       turtle.select(slot)
  51.     if turtle.refuel() then
  52.       return true, "Fueled"
  53.         elseif slot == 16 then
  54.           return false, "No fuel left"
  55.           end
  56.        end
  57.     else
  58.       return false,"there is still "..currentFuel.." Fuel left"
  59.   end
  60.   turtle.select(currentSlot)
  61. end
  62.  
  63. function checkFuel()
  64.   refueled, comment = checkingFuel()
  65.   if not refueled then
  66.     rendnet.send(8, "help! out of fuel")
  67.     ask()
  68.   end
  69. end
  70.  
  71.  
  72. function isValuable()
  73. local isValuable = true
  74.  
  75. succes, data = turtle.inspect()
  76.  
  77.   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
  78.     isValuable = false
  79.   else
  80.     isValuable = true
  81.   end  
  82. if isValuable == true then
  83.   gpsl()
  84.   rednet.send(8, "found ore at level "..y)
  85.   end
  86. return isValuable
  87. end
  88.  
  89. function checkWalls()
  90.  
  91.   for checking = 1,4 do
  92.     if isValuable() == true then
  93.       turtle.dig()
  94.     end
  95.     turtle.turnRight()
  96.   end
  97.  checkFuel()
  98. end  
  99.  
  100.  
  101. function printinv()
  102.  
  103. print("Printing the inventory: ")
  104.  
  105. currentSlot = turtle.getSelectedSlot()
  106.      
  107. for slot = 1,16 do
  108.   turtle.select(slot)
  109.   data = turtle.getItemDetail()
  110.     if data then
  111.      print("slot "..slot.." has "..data.count.." "..data.name)
  112.     else
  113.       print("slot "..slot.." has no items")      
  114.    end  
  115.   end
  116. turtle.select(currentSlot)
  117. end  
  118.  
  119. function mine()
  120.   gpsl()
  121.  
  122.   startX = x
  123.   startY = y
  124.   startZ = z
  125.  
  126.  
  127. checkFuel()
  128.  
  129. turtle.digDown()
  130. turtle.down()
  131. turtle.digDown()
  132. turtle.down()
  133. turtle.placeUp()
  134. turtle.digDown()
  135.  
  136.   while turtle.detectDown() == false do
  137.     if turtle.down() then
  138.         gpsl()
  139.         if y % 10 == 0 then
  140.          rednet.send(8, "I digged to"..y.." levels deep")
  141.       end
  142.     end
  143.    
  144.    checkFuel()
  145.    checkWalls()
  146.    succes, data = turtle.inspect()
  147.      if not turtle.digDown() and data.name == "minecraft:bedrock" then
  148.        gpsl()
  149.      rednet.send(8, "Reach bottom at depth "..y.." going back up")  
  150.       break
  151.     end  
  152.   end
  153.  
  154.  checkFuel()
  155.   for reachedSurface = 1,6 do
  156.    checkFuel()
  157.    turtle.up()
  158.    end
  159.    
  160.    repeat
  161.    if not turtle.forward() then
  162.      fd = false
  163.      turtle.dig()
  164.      sleep(0.5)
  165.    else
  166.      fd = true
  167.     end
  168.   until fd == true
  169.  
  170.    turtle.turnLeft()
  171.  
  172.    for stepsforw = 1,2 do
  173.       repeat
  174.         if not turtle.forward() then
  175.           fd = false
  176.           turtle.dig()
  177.           sleep(0.5)
  178.         else
  179.           fd = true
  180.         end
  181.       until fd == true
  182.      end
  183.    
  184.    turtle.turnRight()
  185.  
  186.   gpsl()
  187.  
  188.   for backToSurface = startY,y, -1 do
  189.     checkFuel()
  190.     checkWalls()
  191.    if turtle.detectUp() ~= false then
  192.     turtle.digUp()
  193.    end
  194.    
  195.   repeat
  196.     if not turtle.up() then
  197.       up = false
  198.       turtle.digUp()
  199.       sleep(0.5)
  200.     else
  201.       up = true
  202.     end
  203.   until up == true
  204.  
  205.    if y % 10 == 0 then
  206.      gpsl()
  207.      rednet.send(8, "Back at level: "..y)
  208.      end
  209.   end
  210.        
  211.    
  212.   if surface == startY then
  213.     rednet.send(8, "I am back to surface")
  214.     turtle.placeDown()
  215.   end
  216.  
  217.     printinv()  
  218. end
  219.  
  220.  
  221. --{{ Main Program }}--
  222. rednet.open("right")
  223.  
  224. while true do
  225.  
  226. ask()
  227.  
  228. if answer == 0 then
  229.   rednet.send(8, "user stopped Ronilla")
  230.   break
  231. elseif answer == 1 then
  232.   rednet.send(8, "Ronilla started digging")
  233.  end
  234.  
  235. rednet.open("right")
  236. mine()
  237. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement