Advertisement
Guest User

Untitled

a guest
Jul 26th, 2015
209
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
  2. -- Name: DanielKermanStripMining (DKSM)   --
  3. -- Author: Daniel_Kerman                  --
  4. -- Version: 1.0.1                         --
  5. -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
  6.  
  7.  
  8. -- Initializing --
  9.  
  10. local rowsMined = {0}
  11. local totalRows = {0}
  12. local hallLength = {0}
  13. local fuelNeeded = {0}
  14. local fuelLevel = turtle.getFuelLevel()
  15. local fuelLimit = turtle.getFuelLimit()
  16. local startConfirmed = "No"
  17. local slot = turtle.getSelectedSlot()
  18. local itemSpace = turtle.getItemSpace()
  19. local it = 0
  20.  
  21. -- Declaring Functions --
  22.  
  23. local function clear(column,row)
  24.     term.clear()
  25.     if column == nil and row == nil then
  26.         column = 1
  27.         row = 1
  28.     elseif row == nil then
  29.         row = 1
  30.     elseif column == nil then
  31.         column = 1
  32.     end
  33.     term.setCursorPos(column,row)
  34. end
  35.  
  36. local function checkNumber(varToCheck)
  37.     assert(type(varToCheck) == "number", "Program expected number. Got string or something else instead.")
  38. end
  39.  
  40. local function fallingBlock()
  41. local success, data = turtle.inspect()
  42. local fBlocks =
  43. {
  44. sand="minecraft:sand",
  45. gravel="minecraft:gravel",
  46. anvil="minecraft:anvil",
  47. dragon_egg="minecraft:dragon_egg"
  48. }
  49.     if data.name==fBlocks.sand or data.name==fBlocks.gravel or data.name==fBlocks.anvil or data.name==fBlocks.dragon_egg then
  50.         return true
  51.     else
  52.         return false
  53.     end
  54. end
  55.  
  56. local function dig(length,back)
  57. for i=1, length do
  58.     it=it+1
  59.     while fallingBlock() == true do
  60.         turtle.dig()
  61.         sleep(1)
  62.     end
  63.     turtle.dig()
  64.     turtle.forward()
  65.     turtle.digDown()
  66.     if it >= 8 then
  67.         turtle.select(16)
  68.         print("Place Torch")
  69.         local data = turtle.getItemDetail()
  70.         if data.name == "minecraft:torch" then
  71.         turtle.placeDown()
  72.         end
  73.         it = 0
  74.         turtle.select(1)
  75.     end
  76. end
  77. if back == true then
  78. turtle.turnLeft()
  79. turtle.turnLeft()
  80. for i=2, length do
  81.     turtle.forward()
  82. end
  83. turtle.forward()
  84. turtle.turnLeft()
  85. turtle.turnLeft()
  86. end
  87.  
  88. end
  89.  
  90. -- Welcome + User input --
  91.  
  92. clear(1,1)
  93.  
  94. print("Welcome to the Strip Mining Program.")
  95. sleep(1)
  96. print("Please enter a Hall/Strip Length (x = x block/s): ")
  97. hallLength[1] = io.read()
  98. hallLength[1] = tonumber(hallLength[1])
  99. checkNumber(hallLength[1])
  100. print("Please enter a number of rows:")
  101. totalRows[1] = io.read()
  102. totalRows[1] = tonumber(totalRows[1])
  103. checkNumber(totalRows[1])
  104. print("Calculating if turtle has enough fuel...")
  105. fuelNeeded[1] = (hallLength[1]*3*totalRows[1])+(12*totalRows[1])
  106. sleep(1.0)
  107. assert(fuelNeeded[1]<fuelLimit, "Your fuel Limit is too low. Try an advanced turtle.")
  108. assert(fuelNeeded[1]<fuelLevel, "Your turtle hasn't enought fuel.")
  109. print("Your turtle has enough fuel. Please place a chest behind the turtle.")
  110. sleep(2.0)
  111. clear(1,1)
  112. print("Place a chest behind the turtle.")
  113. print("Place Torches to place in Slot 16 (Bottom right hand corner)")
  114. write("Press any key to start the program.")
  115. local skip = io.read()
  116.  
  117. -- Post initialization --
  118.  
  119. local rowsToMine = totalRows[1]-rowsMined[1]
  120. clear(1,1)
  121. turtle.select(1)
  122.  
  123. -- Main Loop --
  124.  
  125. for i=1, totalRows[1] do
  126.     turtle.select(1)
  127.     dig(3,false)
  128.     turtle.turnLeft()
  129.     dig(hallLength[1],true)
  130.     rowsMined[1] = rowsMined[1]+1
  131.     clear(1,1)
  132.     print("Rows Mined: ",rowsMined[1])
  133.     local z = 1
  134.     turtle.select(15)
  135.     if turtle.getItemSpace() < 64 then
  136.         turtle.turnLeft()
  137.         for i=1,rowsMined[1]*3+1 do
  138.             turtle.forward()
  139.         end
  140.         for i=1,15 do
  141.             turtle.select(z)
  142.             z=z+1
  143.             turtle.drop(64)
  144.         end
  145.         turtle.turnRight()
  146.         turtle.turnRight()
  147.         for i=1,rowsMined[1]*3+1 do
  148.             turtle.forward()
  149.         end
  150.         turtle.turnLeft()
  151.     end
  152.     turtle.turnRight()
  153.     rowsToMine = totalRows[1]-rowsMined[1]
  154. end
  155.  
  156. -- Ending --
  157.  
  158. do
  159.     print("Putting Items into chest.")
  160.     turtle.turnLeft()
  161.     turtle.turnLeft()
  162.     for i=1, (rowsMined[1]*3)+1 do
  163.         turtle.forward()
  164.     end
  165.     z=1
  166.     for i=1,16 do
  167.             turtle.select(z)
  168.             z=z+1
  169.             turtle.drop(64)
  170.     end
  171. end
  172.  
  173. turtle.select(1)
  174.  
  175. print("Mining Complete.")
  176.  
  177. sleep(2)
  178.  
  179. clear(1,1)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement