Advertisement
dadragon84

do_sugar

Feb 26th, 2014
140
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 5.36 KB | None | 0 0
  1. -- do_sugar
  2. -----------------------------------------------------------------------
  3. term.clear()
  4. term.setCursorPos(1, 1)
  5. minerID = os.getComputerID()
  6. turtleName = nil
  7. consoleID = 0
  8. version = "1.0"
  9. function getConsoleID()
  10.   local fname = "ConsoleID"
  11.   if fs.exists(fname) then
  12.     file = fs.open(fname, "r")
  13.     consoleID = tonumber(file.readAll())
  14.     file.close()
  15.     print("Monitor Console ID: "..consoleID)
  16.   else
  17.     updateStatus("Waiting for Console ID...",true)
  18.     term.write("Monitor Console ID: ")
  19.     consoleID = io.read()
  20.     file = fs.open(fname, "w")
  21.     file.write(consoleID)
  22.     file.close()
  23.     consoleID = tonumber(consoleID)
  24.   end
  25. end
  26. function updateStatus(msg, silent)
  27.   if not rednet.isOpen("right") then rednet.open("right") end
  28.   if rednet.isOpen("right") then
  29.     if turtleName == nil then return end
  30.     networkmsg = "MM:"..turtleName..": "..msg
  31.     if consoleID == 0 then
  32.       rednet.broadcast(networkmsg)
  33.     else
  34.       rednet.send(consoleID,networkmsg)
  35.     end
  36.   end
  37.   if not silent then print(msg) end
  38. end
  39. function getTurtleName()
  40.   local fname = "TurtleName"
  41.   if fs.exists(fname) then
  42.     file = fs.open(fname, "r")
  43.     turtleName = file.readAll()
  44.     file.close()
  45.   else
  46.     term.write("Turtle Name: ")
  47.     turtleName = io.read()
  48.     file = fs.open(fname, "w")
  49.     file.write(turtleName)
  50.     file.close()
  51.   end
  52. end
  53. -- Main Program
  54. updateStatus("Starting")
  55. term.clear()
  56. term.setCursorPos(1,1)
  57. getTurtleName()
  58. getConsoleID()
  59. function update()
  60. end
  61.  
  62.  
  63. function fuelItUp()
  64.   updateStatus("...Working")
  65. --Finds out if the turtle needs to refuel and if it has fuel to run
  66.   needsFuel = turtle.getFuelLevel()
  67.   minimumFuelLevel = 10
  68.   hasFuel = turtle.getItemCount(16)
  69.   useFuel = turtle.refuel()
  70.   if needsFuel == "unlimited" then
  71.    
  72.   else
  73.     if tonumber(needsFuel) < tonumber(minimumFuelLevel) then
  74.       if hasFuel > 0 then
  75.         turtle.select(16)
  76.         turtle.refuel(1)
  77.         turtle.select(1)
  78.       else
  79.         updateStatus("Please insert fuel into slot 16")
  80.         repeat os.sleep(1)
  81.         until tonumber(turtle.getItemCount(16)) > 0
  82.         fuelItUp()
  83.       end
  84.     end
  85.   end
  86. end
  87.  
  88. function questions()
  89.   print("How many blocks long?")
  90.   length = io.read()
  91.   print("How many rows wide?")
  92.   rows = io.read()
  93.   declarations()
  94. end
  95.  
  96. function declarations()
  97.   currentPos = 0
  98.   currentRow = 1
  99.   startBlock = 1
  100.   startRow = 1
  101.   det = turtle.detect()
  102.   detDown = turtle.detectDown()
  103.   prime()
  104. end
  105.  
  106. function prime()
  107.   fuelItUp()
  108.   turtle.up()
  109.   turtle.up()
  110.   farmDown()
  111. end
  112.  
  113. function farmDown()
  114.   while tonumber(currentPos) ~= tonumber(length) do
  115.     fuelItUp()
  116.     if det == true then
  117.       turtle.dig()
  118.       turtle.suck()
  119.       turtle.forward()
  120.       currentPos = currentPos + 1
  121.       if detDown == true then
  122.         turtle.digDown()
  123.         turtle.suckDown()
  124.       end
  125.     else
  126.       if detDown == true then
  127.         turtle.digDown()
  128.         turtle.suckDown()
  129.       end
  130.     end
  131.   end
  132.   if tonumber(currentRow) ~= tonumber(rows) then
  133.     if tonumber(currentRow) % 2 == 0 then
  134.       rightTurn()
  135.     else
  136.       leftTurn()
  137.     end
  138.   else
  139.     ending()
  140.   end
  141. end
  142.  
  143. function leftTurn()
  144.   turtle.turnLeft()
  145.   turtle.forward()
  146.   if det == true then
  147.     turtle.dig()
  148.     turtle.suck()
  149.     turtle.forward()
  150.   end
  151.   turtle.turnLeft()
  152.   if detDown == true then
  153.     turtle.digDown()
  154.     turtle.suckDown()
  155.   end
  156.   currentRow = currentRow + 1
  157.   farmBack()
  158. end
  159.  
  160. function rightTurn()
  161.   turtle.turnRight()
  162.   turtle.forward()
  163.   if det == true then
  164.     turtle.dig()
  165.     turtle.suck()
  166.     turtle.forward()
  167.   end
  168.   turtle.turnRight()
  169.   if detDown == true then
  170.     turtle.digDown()
  171.     turtle.suckDown()
  172.   end
  173.   currentRow = currentRow + 1
  174.   farmDown()
  175. end
  176.  
  177. function farmBack()
  178.   while tonumber(currentPos) ~= tonumber(startBlock) do
  179.     fuelItUp()
  180.     if det == true then
  181.       turtle.dig()
  182.       turtle.suck()
  183.       turtle.forward()
  184.       currentPos = currentPos - 1
  185.       if detDown == true then
  186.         turtle.digDown()
  187.         turtle.suckDown()
  188.       end
  189.     else
  190.       if detDown == true then
  191.         turtle.digDown()
  192.         turtle.suckDown()
  193.       end
  194.     end
  195.   end
  196.   if tonumber(currentRow) ~= tonumber(rows) then
  197.     if tonumber(currentRow) % 2 == 0 then
  198.       rightTurn()
  199.     else
  200.       leftTurn()
  201.     end
  202.   else
  203.     ending()
  204.   end
  205. end
  206.  
  207.  
  208. function ending()
  209. updateStatus("Finished")
  210.   if tonumber(currentRow) % 2 == 0 then
  211.     turtle.forward()
  212.     turtle.turnLeft()
  213.     turtle.down()
  214.     turtle.down()
  215.   else
  216.     turtle.turnLeft()
  217.     turtle.turnLeft()
  218.     while tonumber(currentPos) ~= tonumber(startBlock - 1) do
  219.       turtle.forward()
  220.       currentPos = currentPos - 1
  221.     end
  222.     turtle.turnLeft()
  223.     turtle.down()
  224.     turtle.down()
  225.   end
  226.   while tonumber(currentRow) ~= tonumber(startRow) do
  227.     fuelItUp()
  228.     turtle.forward()
  229.     turtle.forward()
  230.     currentRow = currentRow - 1
  231.   end
  232.   dropoff()
  233. end
  234.  
  235. function dropoff()
  236.   s = 1
  237.   total = 0
  238.   while s < 16 do
  239.     items = turtle.getItemCount(s)
  240.     total = items + total
  241.     if items > 0 then
  242.       turtle.select(s)
  243.       turtle.drop()
  244.     end
  245.     s = s + 1
  246.   end
  247.     turtle.turnLeft()
  248.   print("Total Items Deposited:")
  249.   print(total)
  250.   updateStatus("Total Items Deposited  " ..total)
  251.  
  252. end
  253.  
  254. questions()
  255. print("Press Enter to Continue")
  256. io.read()
  257. os.reboot()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement