Advertisement
Guest User

Untitled

a guest
Mar 4th, 2015
189
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.99 KB | None | 0 0
  1. print "my very first mining program"
  2. print "how far should the square be?"
  3. local size = tonumber(io.read())
  4. print "how deep"
  5. local yLevel = tonumber(io.read())
  6.  
  7.  
  8.  
  9. -- inc X / increase Z / deacrease X / decrease Z /
  10. -- 0 - front / 1 - right / 2 - back / 3 - left /
  11. local direction = 0
  12. local traveledX = 0
  13. local traveledY = 0 --
  14. local traveledZ = 0 -- to the right
  15.  
  16. function CheckFuel()
  17. --if he needs some, refuelhalf a stack of what's to eat
  18. if turtle.getFuelLevel() ~= "unlimited" and turtle.getFuelLevel() < math.ceil(turtle.getFuelLimit() / 5) then
  19. print "I will try refueling"
  20. for i = 1, 16 do
  21. turtle.select(i)
  22. if turtle.refuel(0) then
  23. print "Fuel level before refueling: " + turtle.getFuelLevel()
  24. local half = math.ceil(turtle.getItemCount(i)/2)
  25. turtle.refuel(half)
  26. print "And after: " + turtle.getFuelLevel()
  27. return true
  28. end
  29. end
  30. print "I'm out of FUEL :-("
  31. return false
  32. else
  33. --if turtle.getFuelLevel() < math.ceil(turtle.getFuelLimit() * 0.1) then
  34. -- print "I'm low on energy, I will return home"
  35. -- ReturnHome()
  36. --else
  37. return true
  38. --end
  39. end
  40. end
  41. -- not finished yet
  42. function ReturnHome()
  43. if traveledY > 0 then
  44. for i = 0, traveledY do
  45. MoveUp()
  46. end
  47. end
  48. if traveledX > 0 then
  49. while direction ~= 2 do
  50. TurnRight()
  51. end
  52. LongForwardMove(traveledX)
  53. end
  54.  
  55. if traveledZ > 0 then
  56. while direction ~= 3 do
  57. TurnRight()
  58. end
  59. LongForwardMove(traveledZ)
  60. end
  61. end
  62.  
  63. function MoveDown()
  64. if (turtle.detectDown()) then
  65. turtle.digDown()
  66. end
  67. if(turtle.down()) then
  68. traveledY = traveledY + 1
  69. print "I'm going down"
  70. return true
  71. end
  72. return false
  73. end
  74.  
  75. function MoveUp()
  76. if (turtle.detectUp()) then
  77. turtle.digUp()
  78. end
  79. if(turtle.up()) then
  80. traveledY = traveledY - 1
  81. return true
  82. end
  83. return false
  84.  
  85. end
  86.  
  87. function MoveForward()
  88. if (turtle.detect()) then
  89. turtle.dig()
  90. end
  91. if(turtle.forward()) then
  92. if direction == 0 then
  93. traveledX = traveledX + 1
  94. elseif direction == 1 then
  95. traveledZ = traveledZ + 1
  96. elseif direction == 2 then
  97. traveledX = traveledX - 1
  98. else
  99. traveledZ = traveledZ - 1
  100. end
  101. end
  102. return
  103. end
  104.  
  105. function TurnLeft()
  106. if direction == 0 then
  107. direction = 3
  108. else
  109. direction = direction - 1
  110. end
  111. return
  112.  
  113. end
  114.  
  115. function TurnRight()
  116. if direction == 3 then
  117. direction = 0
  118. else
  119. direction = direction + 1
  120. end
  121. return
  122. end
  123.  
  124. function LongForwardMove(length)
  125. for i = 1, length do
  126. CheckFuel()
  127. MoveForward()
  128. end
  129.  
  130. end
  131. function SquareMine()
  132. LongForwardMove(size-1)
  133. TurnRight()
  134. for i = 1, size do
  135. LongForwardMove(size-2)
  136. TurnRight()
  137. MoveForward()
  138. TurnRight()
  139. end
  140.  
  141. return
  142. end
  143.  
  144. function Main()
  145.  
  146. CheckFuel()
  147. -- goes down to the yLevel and mines the whole square, then he goes up and mines there and so on
  148. for i = 1, yLevel do
  149. CheckFuel()
  150. MoveDown()
  151. end
  152.  
  153. if math.ceil(size % 2) == 0 then
  154. SquareMine()
  155. end
  156. ReturnHome()
  157. end
  158.  
  159.  
  160. Main() -- !
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement