Advertisement
Guest User

autofarm computercraft

a guest
Mar 31st, 2020
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.50 KB | None | 0 0
  1. -- Author: Flyboxx --
  2. -- Date: Dec/5/2014 --
  3. -- Version: TEKKIT --
  4. -- Updated Jan/31/2017 to TEKKIT --
  5.  
  6. clearscr = function()
  7. term.clear()
  8. term.setCursorPos(1,1)
  9. end
  10.  
  11. clearscr()
  12.  
  13. print("====== Farmer ======")
  14. print("Ver TEKKIT")
  15. print("By Flyboxx")
  16.  
  17. sleep(1)
  18. clearscr()
  19.  
  20. -- Variables --
  21.  
  22. local args = {...}
  23. farming = true
  24. ystep = 1
  25. xpos = 1
  26. ypos = 0
  27.  
  28. -- Init --
  29.  
  30. -- Functions --
  31.  
  32. setPos = function(x, y)
  33. xpos = x
  34. ypos = y
  35. end
  36.  
  37. returnHome = function()
  38. turtle.turnLeft()
  39. for i = 1, 8, 1 do
  40. turtle.forward()
  41. end
  42. turtle.turnLeft()
  43. for i = 1, 9, 1 do
  44. turtle.forward()
  45. end
  46. turtle.turnLeft()
  47. turtle.turnLeft()
  48. end
  49.  
  50. clearInv = function()
  51. for i = 1,14,1 do
  52. turtle.select(i)
  53. if turtle.getItemCount(i) ~= 0 then
  54. if turtle.compareTo(15) then
  55. turtle.dropDown()
  56. elseif turtle.compareTo(16) then
  57. turtle.turnLeft()
  58. turtle.drop()
  59. turtle.turnRight()
  60. else
  61. turtle.dropUp()
  62. end
  63. end
  64. end
  65. end
  66.  
  67. getFuel = function(arg1)
  68. if arg1 == "first" then
  69. print("Refueling...")
  70. turtle.turnRight()
  71. turtle.select(1)
  72. turtle.suck()
  73. end
  74.  
  75. turtle.refuel(1)
  76.  
  77. if turtle.getFuelLevel() < 99 then
  78. getFuel("notfirst")
  79. else
  80. turtle.drop()
  81. turtle.turnLeft()
  82. end
  83. end
  84.  
  85. initFarm = function()
  86. clearInv()
  87.  
  88. if turtle.getFuelLevel() < 99 then
  89. getFuel("first")
  90. end
  91.  
  92. turtle.forward()
  93. setPos(1,1)
  94. end
  95.  
  96. initPlant = function()
  97. clearInv()
  98.  
  99. if turtle.getFuelLevel() < 99 then
  100. getFuel("first")
  101. end
  102.  
  103. turtle.select(1)
  104. turtle.suckDown(64)
  105. turtle.select(2)
  106. turtle.suckDown(16)
  107. turtle.select(1)
  108.  
  109. turtle.forward()
  110. setPos(1,1)
  111. end
  112.  
  113. initFert = function()
  114. clearInv()
  115.  
  116. if turtle.getFuelLevel() < 2 then
  117. getFuel("first")
  118. end
  119.  
  120. turtle.select(1)
  121. turtle.suckUp(2)
  122.  
  123. checkFertInv(1)
  124.  
  125. turtle.forward()
  126. setPos(1,1)
  127. turtle.select(1)
  128. end
  129.  
  130. checkFertInv = function(slot)
  131. for i = 1, 4 , 1 do
  132. if turtle.getItemCount(i) ~= 64 then
  133. print("Slot " .. i .. " needs to have 64 items!");
  134. while(turtle.getItemCount(i) ~= 64) do
  135. sleep(2)
  136. turtle.select(i)
  137. turtle.suckUp()
  138. end
  139. end
  140. end
  141. turtle.select(1)
  142. end
  143.  
  144. fert = function()
  145. for i = 1, 5, 1 do
  146. turtle.placeDown()
  147. if turtle.getItemCount() == 0 then
  148. turtle.select(turtle.getSelectedSlot() + 1)
  149. end
  150. end
  151. end
  152.  
  153. -- ==========*Till Program*========== --
  154. till = function()
  155. initFarm()
  156. clearscr()
  157. print("Tilling...")
  158.  
  159. while(farming) do
  160.  
  161. turtle.digDown()
  162.  
  163. if xpos == 9 and ypos == 9 then
  164. returnHome()
  165. clearInv()
  166. break
  167. end
  168.  
  169. if ypos == 9 then
  170. turtle.turnRight()
  171. turtle.forward()
  172. xpos = xpos + 1
  173. turtle.turnRight()
  174. turtle.digDown()
  175. ystep = -1
  176. end
  177.  
  178. if ypos == 1 and xpos ~= 1 then
  179. turtle.turnLeft()
  180. turtle.forward()
  181. xpos = xpos + 1
  182. turtle.turnLeft()
  183. turtle.digDown()
  184. ystep = 1
  185. end
  186.  
  187. turtle.forward()
  188. ypos = ypos + ystep
  189.  
  190. end
  191. end
  192.  
  193. -- ==========*Plant Program*========== --
  194. plant = function()
  195. initPlant()
  196. clearscr()
  197. print("Planting...")
  198.  
  199. while(farming) do
  200.  
  201. turtle.placeDown()
  202.  
  203. if turtle.getItemCount() == 0 then
  204. turtle.select(turtle.getSelectedSlot() + 1)
  205. end
  206.  
  207. if xpos == 9 and ypos == 9 then
  208. returnHome()
  209. turtle.select(1)
  210. break
  211. end
  212.  
  213. if ypos == 9 then
  214. turtle.turnRight()
  215. turtle.forward()
  216. xpos = xpos + 1
  217. turtle.turnRight()
  218. turtle.placeDown()
  219. ystep = -1
  220. end
  221.  
  222. if ypos == 1 and xpos ~= 1 then
  223. turtle.turnLeft()
  224. turtle.forward()
  225. xpos = xpos + 1
  226. turtle.turnLeft()
  227. turtle.placeDown()
  228. ystep = 1
  229. end
  230.  
  231. turtle.forward()
  232. ypos = ypos + ystep
  233.  
  234. end
  235. end
  236.  
  237. -- ==========*Harvest Program*========== --
  238. harvest = function()
  239. initFarm()
  240. clearscr()
  241. print("Harvesting...")
  242.  
  243. while(farming) do
  244.  
  245. turtle.digDown()
  246.  
  247. if xpos == 9 and ypos == 9 then
  248. returnHome()
  249. clearInv()
  250. turtle.select(1)
  251. break
  252. end
  253.  
  254. if ypos == 9 then
  255. turtle.turnRight()
  256. turtle.forward()
  257. xpos = xpos + 1
  258. turtle.turnRight()
  259. turtle.digDown()
  260. ystep = -1
  261. end
  262.  
  263. if ypos == 1 and xpos ~= 1 then
  264. turtle.turnLeft()
  265. turtle.forward()
  266. xpos = xpos + 1
  267. turtle.turnLeft()
  268. turtle.digDown()
  269. ystep = 1
  270. end
  271.  
  272. turtle.forward()
  273. ypos = ypos + ystep
  274.  
  275. end
  276. end
  277.  
  278. -- ==========*Fertilize Program*========== --
  279. fertilize = function()
  280. initFert()
  281. clearscr()
  282. print("Fertilizing...")
  283.  
  284. while(farming) do
  285.  
  286. pos = {xpos, ypos}
  287.  
  288. fert()
  289.  
  290. if xpos == 9 and ypos == 9 then
  291. returnHome()
  292. clearInv()
  293. turtle.select(1)
  294. break
  295. end
  296.  
  297. if ypos == 9 then
  298. turtle.turnRight()
  299. turtle.forward()
  300. xpos = xpos + 1
  301. turtle.turnRight()
  302. fert()
  303. ystep = -1
  304. end
  305.  
  306. if ypos == 1 and xpos ~= 1 then
  307. turtle.turnLeft()
  308. turtle.forward()
  309. xpos = xpos + 1
  310. turtle.turnLeft()
  311. fert()
  312. ystep = 1
  313. end
  314.  
  315. turtle.forward()
  316. ypos = ypos + ystep
  317.  
  318. end
  319. end
  320.  
  321. -- ==========*Main Program*========== --
  322. till()
  323. while(farming) do
  324. plant()
  325. fertilize()
  326. harvest()
  327. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement