Advertisement
Oeb25

Untitled

Sep 21st, 2014
216
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.91 KB | None | 0 0
  1. local self = turtle
  2. local slots = {
  3. seeds = 1,
  4. bonemeal = 2,
  5. fuel = 3
  6. }
  7. local waitTill
  8. waitTill = function(condition, compare, callback)
  9. if compare == nil then
  10. compare = true
  11. end
  12. while condition() ~= compare do
  13. if callback then
  14. callback()
  15. end
  16. os.sleep(0.1)
  17. end
  18. return true
  19. end
  20. self.fuel = function(amount)
  21. if amount == nil then
  22. amount = 100
  23. end
  24. local old = 1
  25. while self:getFuelLevel() < amount do
  26. print('Fuel level to low, put fuel in slot 16')
  27. self:select(slots.fuel)
  28. self:refuel()
  29. os.sleep(1)
  30. end
  31. return self:select(old)
  32. end
  33. self.forward = function(steps)
  34. if steps == nil then
  35. steps = 1
  36. end
  37. if steps < 1 then
  38. return true
  39. end
  40. self:fuel()
  41. waitTill(turtle.forward, true)
  42. return self:forward(steps - 1)
  43. end
  44. self.up = function(steps)
  45. if steps == nil then
  46. steps = 1
  47. end
  48. if steps < 1 then
  49. return true
  50. end
  51. self:fuel()
  52. waitTill(turtle.up, true)
  53. return up(steps - 1)
  54. end
  55. self.down = function(steps)
  56. if steps == nil then
  57. steps = 1
  58. end
  59. if steps < 1 then
  60. return true
  61. end
  62. self:fuel()
  63. waitTill(turtle.down, true)
  64. return down(steps - 1)
  65. end
  66. self.emptyDown = function(first, last)
  67. if first == nil then
  68. first = 1
  69. end
  70. if last == nil then
  71. last = 16
  72. end
  73. for slot = first, last do
  74. self:select(slot)
  75. self:dropDown()
  76. end
  77. end
  78. self.fertilize = function()
  79. local initial = self:getItemCount(slots.bonemeal)
  80. if initial < 2 then
  81. return false
  82. end
  83. self:select(slots.bonemeal)
  84. self:placeDown()
  85. if initial ~= self:getItemCount(slots.bonemeal) then
  86. self:fertilize()
  87. end
  88. return true
  89. end
  90. self.step = function()
  91. while not self:fertilize() do
  92. os.sleep(0.5)
  93. end
  94. self:select(slots.seeds)
  95. self:digDown()
  96. return self:forward()
  97. end
  98. self:forward()
  99. while self:detectDown() do
  100. self:step()
  101. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement