Illprotectjew

farmMC

Jul 3rd, 2013
139
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 3.75 KB | None | 0 0
  1. local fuelLevelToRefuelAt = 5
  2. local refuelItemsToUseWhenRefuelling = 63
  3. local emergencyFuelToRetain = 0
  4.  
  5. while true do
  6.     os.pullEvent("redstone")
  7.     if rs.getInput("bottom") then
  8.         break
  9.     end
  10. end
  11. local function back(x)
  12.   for i = 1, x do
  13.     turtle.back()
  14.   end
  15. end
  16. local function farm(x)
  17.     for i = 1, x do
  18.         turtle.forward()
  19.         turtle.digDown()
  20.         turtle.placeDown() 
  21.     end
  22. end
  23. local function sugar(x)
  24.     for i = 1, x do
  25.         turtle.digDown()
  26.         turtle.dig()
  27.         turtle.forward()
  28.     end
  29. end
  30. local function hedge(x)
  31.     for i = 1, x do
  32.         turtle.dig()
  33.         turtle.digDown()
  34.         turtle.placeDown()
  35.         turtle.forward()
  36.     end
  37. end
  38. local function harvest(x)
  39.     for i = 1, x do
  40.         turtle.dig()
  41.         turtle.dig()
  42.         turtle.forward()
  43.            
  44.     end
  45. end
  46. local function move(x)
  47.     for i = 1, x do
  48.         turtle.forward()
  49.     end
  50. end
  51.  
  52. function empty()
  53.     if turtle.detectDown() == true then
  54.         turtle.select(1)
  55.         turtle.dropUp()
  56.         turtle.select(2)
  57.         turtle.dropUp()
  58.         turtle.select(3)
  59.         turtle.dropUp()
  60.         turtle.select(4)
  61.         turtle.dropUp()
  62.         turtle.select(5)
  63.         turtle.dropUp()
  64.         turtle.select(6)
  65.         turtle.dropUp()
  66.         turtle.select(7)
  67.         turtle.dropUp()
  68.         turtle.select(8)
  69.         turtle.dropUp()
  70.         turtle.select(9)
  71.         turtle.dropUp()
  72.     turtle.select(1)
  73. end
  74. end
  75. function ensureFuel()
  76.  
  77.   -- Determine whether a refuel is required
  78.   local fuelLevel = turtle.getFuelLevel()
  79.   if (fuelLevel ~= "unlimited") then
  80.     if (fuelLevel < fuelLevelToRefuelAt) then
  81.       -- Need to refuel
  82.       turtle.select(16)
  83.       currentlySelectedSlot = 16
  84.       local fuelItems = turtle.getItemCount(16)
  85.  
  86.       -- Do we need to impact the emergency fuel to continue? (always  
  87.       -- keep one fuel item in slot 16)
  88.       if (fuelItems == 0) then
  89.         writeMessage("Completely out of fuel!", messageLevel.FATAL)
  90.       elseif (fuelItems == 1) then
  91.         writeMessage("Out of Fuel!", messageLevel.ERROR)
  92.         turtle.refuel()
  93.       elseif (fuelItems <= (emergencyFuelToRetain + 1)) then
  94.         writeMessage("Consuming emergency fuel supply. "..(fuelItems - 2).." emergency fuel items remain", messageLevel.WARNING)
  95.         turtle.refuel(1)
  96.       else
  97.         -- Refuel the lesser of the refuelItemsToUseWhenRefuelling and the number of items more than
  98.         -- the emergency fuel level
  99.         if (fuelItems - (emergencyFuelToRetain + 1) < refuelItemsToUseWhenRefuelling) then
  100.           turtle.refuel(fuelItems - (emergencyFuelToRetain + 1))
  101.         else
  102.           turtle.refuel(refuelItemsToUseWhenRefuelling)
  103.         end
  104.       end
  105.     end
  106.   end
  107. end
  108.  
  109.  
  110. --Wheat and Potatoes
  111. ensureFuel()
  112. back(2)
  113. turtle.turnRight()
  114. move(5)
  115. turtle.turnLeft()
  116. move(15)
  117. turtle.select(14)      
  118. turtle.turnLeft()
  119. move(2)
  120. turtle.turnLeft()
  121. farm(5)
  122. turtle.select(15)
  123. farm(4)
  124. turtle.turnLeft()
  125. farm(1)
  126. turtle.turnLeft()
  127. farm(3)
  128. turtle.select(14)
  129. farm(6)
  130. turtle.turnRight()
  131. farm(1)
  132. turtle.turnRight()
  133. farm(5)
  134. turtle.select(13)
  135. farm(4)
  136. turtle.turnLeft()
  137. farm(1)
  138. turtle.turnLeft()
  139. farm(3)
  140. turtle.select(14)
  141. farm(6)
  142. turtle.turnRight()
  143.  
  144. -- Sugar Canes
  145. turtle.up()
  146. turtle.up()
  147. sugar(9)
  148. turtle.digDown()
  149. turtle.turnRight()
  150. move(1)
  151. sugar(1)
  152. turtle.turnRight()
  153. sugar(9)
  154. turtle.turnLeft()
  155. move(2)
  156. turtle.turnLeft()
  157. sugar(9)
  158. turtle.digDown()
  159. turtle.turnRight()
  160. move(1)
  161. sugar(1)
  162. turtle.turnRight()
  163. sugar(9)
  164. turtle.down()
  165. turtle.turnLeft()
  166. move(3)
  167. turtle.turnLeft()
  168.  
  169. -- Flax
  170. turtle.select(12)
  171. turtle.dig()
  172. move(1)
  173. turtle.placeDown()
  174. hedge(8)
  175. move(1)
  176. turtle.turnLeft()
  177. turtle.down()
  178. move(1)
  179. turtle.turnLeft()
  180. harvest(9)
  181. --Return to Chest
  182. turtle.up()
  183. move(2)
  184. turtle.turnLeft()
  185. move(7)
  186. turtle.turnRight()
  187. move(5)
  188. turtle.turnRight()
  189. move(2)
  190. empty()
  191. os.sleep(1800)
  192. os.reboot()
Advertisement
Add Comment
Please, Sign In to add comment