Advertisement
Guest User

Untitled

a guest
Jan 13th, 2013
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 9.45 KB | None | 0 0
  1. local id = os.getComputerID()
  2. local refuel = 0 -- 1:charger 2:chest 3:manual
  3. local facing = 0 -- 1:behind 2:under 3:left 4:right
  4. local turtle = 0 -- 1:digger 2:treetap
  5. local facingDrop = 0 -- 1:behind 2:under 3:left 4:right
  6. local facingMeal = 0 -- 1:behind 2:under 3:left 4:right
  7. local facingSap = 0 -- 1:behind 2:under 3:left 4:right
  8.  
  9. function refuel()
  10.     local dropItemCount = 0
  11.     for i = 3, 16 do
  12.         dropItemCount = turtle.getItemCount()
  13.         dropItemCount = dropItemCount + dropItemCount
  14.     end
  15.     turtle.select(1)
  16.     sapItemCount = turtle.getItemCount()
  17.     turtle.select(2)
  18.     mealItemCount = turtle.getItemCount()
  19.     if dropItemCount > 320 then
  20.         if facingDrop == "1" then
  21.             turtle.turnLeft()
  22.             turtle.turnLeft()
  23.             for i = 3, 16 do
  24.                 turtle.drop()
  25.             end
  26.             turtle.turnLeft()
  27.             turtle.turnLeft()
  28.         elseif facingDrop == "2" then
  29.             for i = 3, 16 do
  30.                 turtle.drop()
  31.             end
  32.         elseif facingDrop == "3" then
  33.             turtle.turnLeft()
  34.             for i = 3, 16 do
  35.                 turtle.dropDown()
  36.             end
  37.             turtle.turnRight()
  38.         elseif facingDrop == "4" then
  39.             turtle.turnRight()
  40.             for i = 3, 16 do
  41.                 turtle.drop()
  42.             end
  43.             turtle.turnLeft()
  44.         end
  45.     elseif sapItemCount == "0" then
  46.         if facingSap == "1" then
  47.             turtle.turnLeft()
  48.             turtle.turnLeft()
  49.             turtle.suck()
  50.             turtle.turnLeft()
  51.             turtle.turnLeft()
  52.         elseif facingSap == "2" then
  53.             turtle.suckDown()
  54.         elseif facingSap == "3" then
  55.             turtle.turnLeft()
  56.             turtle.suck()
  57.             turtle.turnRight()
  58.         elseif facingSap == "4" then
  59.         turtle.turnRight()
  60.         turtle.suck()
  61.         turtle.turnLeft()
  62.         end
  63.     elseif mealItemCount == "0" then
  64.         if facingMeal == "1" then
  65.             turtle.turnLeft()
  66.             turtle.turnLeft()
  67.             turtle.suck()
  68.             turtle.turnLeft()
  69.             turtle.turnLeft()
  70.         elseif facingMeal == "2" then
  71.             turtle.suckDown()
  72.         elseif facingMeal == "3" then
  73.             turtle.turnLeft()
  74.             turtle.suck()
  75.             turtle.turnRight()
  76.         elseif facingMeal == "4" then
  77.         turtle.turnRight()
  78.         turtle.suck()
  79.         turtle.turnLeft()
  80.         end
  81.     end
  82.            
  83.     if refuel == "1" then
  84.         --print("Nothing done")
  85.     elseif refuel == "2" then
  86.         if facing == "1" then
  87.             turtle.turnLeft()
  88.             turtle.turnLeft()
  89.             for i = 3, 16 do
  90.                 turtle.select(i)
  91.                 turtle.suck()
  92.                 turtle.refuel()
  93.             end
  94.             turtle.turnLeft()
  95.             turtle.turnLeft()
  96.         elseif facing == "2" then
  97.             for i = 3, 16 do
  98.                 turtle.select(i)
  99.                 turtle.suckDown()
  100.                 turtle.refuel()
  101.             end
  102.         elseif facing == "3" then
  103.             turtle.turnLeft()
  104.             for i = 3, 16 do
  105.                 turtle.select(i)
  106.                 turtle.suck()
  107.                 turtle.refuel()
  108.             end
  109.             turtle.turnRight()
  110.         elseif facing == "4" then
  111.             turtle.turnRight()
  112.             for i = 3, 16 do
  113.                 turtle.select(i)
  114.                 turtle.suck()
  115.                 turtle.refuel()
  116.             end
  117.             turtle.turnLeft()
  118.         end
  119.     elseif refuel == "3" then
  120.         print("NOTE: NO LAVA, IF REQUESED THIS WILL BE IMPLEMENTED EVENTUALLY\n")
  121.         print("Please put fuel in slots 3 to 16. Not all of them have to be full.")
  122.         sleep(2)
  123.         print("Press any key if the fuel is placed in the slots.")
  124.         local event, p1 = os.pullEvent()
  125.         if event == "key" and p1 ~= 27 then
  126.             for i = 3, 16 do
  127.                 turtle.select(i)
  128.                 turtle.refuel()
  129.             end
  130.             turtle.select(1)
  131.         end
  132.     end
  133.    
  134.    
  135. function clear()
  136.     term.clear()
  137.     term.setCursorPos(1, 1)
  138. end
  139.  
  140. function refuelCoalChest()
  141.     clear()
  142.     print("Every fuel is accepted except for lava buckets.")
  143.     while true do
  144.         print("Where is the chest\n ")
  145.         print("Choices:\nBehind\nUnder\nLeft\nRight")
  146.         refuelCoalChestRead = string.lower(read())
  147.         if refuelCoalChestRead == "behind" then
  148.             refuel = refuel + 2
  149.             facing = facing + 1
  150.             break
  151.         elseif refuelCoalChestRead == "under" then
  152.             refuel = refuel + 2
  153.             facing = facing + 2
  154.             break
  155.         elseif refuelCoalChestRead == "left" then
  156.             refuel = refuel + 2
  157.             facing = facing + 3
  158.             break
  159.         elseif refuelCoalChestRead == "right" then
  160.             refuel = refuel + 2
  161.             facing = facing + 4
  162.             break
  163.         end
  164.     end
  165. end
  166.    
  167. function refuelCharg()
  168.     while true do
  169.         clear()
  170.         print("Is the charging station next to me? ")
  171.         refuelChargRead = string.lower(read())
  172.         if refuelChargRead == "yes" or refuelChargRead == "y" then
  173.             while true do
  174.                 clear()
  175.                 print("Is the output pointing to me? ")
  176.                 refuelChargReader = string.lower(read())
  177.                 if refuelChargReader == "yes" or refuelChargReader == "y" then
  178.                     refuel = refuel + 1
  179.                     break
  180.                 elseif refuelChargReader == "no" or refuelChargReader == "n" then
  181.                     print("Break me if needed, no fuel and no programs will be lost")
  182.                     print("You only have to run this program again when it's placed down")
  183.                     sleep(7)
  184.                 end
  185.             end
  186.             break
  187.         elseif refuelChargRead == "no" or refuelChargRead == "n" then
  188.             print("Please put a charging station next to me.")
  189.             sleep(5)
  190.         end
  191.     end
  192. end
  193.  
  194. function digger()
  195.     while true do
  196.         turtle.forward()
  197.         turtle.forward()
  198.         turtle.select(1)
  199.         turtle.place()
  200.         turtle.select(2)
  201.         turtle.place()
  202.         turtle.select(1)
  203.         makeSpace()
  204.         rednet.send(tonumber(sendid),"GO")
  205.         refuel()
  206.         p1, p2, p3 = rednet.receive()
  207.         if p2 == "GO" then
  208.             --cut the tree
  209.             sleep(10)
  210.         else
  211.             print("If you see this, please contact the scripter(error:5:turtle1:digger:)")
  212.         end
  213.     end
  214. end
  215.  
  216. function treetap()
  217.     while true do
  218.         turtle.forward()
  219.         turtle.forward()
  220.         turtle.select(1)
  221.         turtle.place()
  222.         turtle.select(2)
  223.         turtle.place()
  224.         turtle.select(1)
  225.         p1, p2, p3 = rednet.receive()
  226.         if p2 == "GO" then
  227.         else
  228.             print("If you see this, please contact the scripter(error:5:turtle1:treetap:")
  229.         pickResin()
  230.         rednet.send(tonumber(sendid), "GO")
  231.         refuel()
  232.     end
  233. end
  234.        
  235. rednet.close("right")
  236. rednet.open("right")
  237. shell.run("label set turtle1")
  238. clear()
  239.  
  240. while true do
  241.     clear()
  242.     print("Make sure your companion can cut tree's, or can dig blocks.")
  243.     print("If not, than it needs a treetap\n")
  244.     print("My turtle ID is "..id.."\n")
  245.     print("Start up the other turtle to see it's ID.\nIf you already know the ID, still start up it's program.\n")
  246.     write("What ID has my companion? ")
  247.     sendid = read()
  248.     if not tonumber(sendid) then
  249.         print("This is not a valid ComputerCraft ID")
  250.     else
  251.         break
  252.     end
  253. end
  254.  
  255. print("Making connection..")
  256. while true do
  257.     rednet.send(tonumber(sendid), "ready?")
  258.     p1, p2, p3 = rednet.receive(10)
  259.     if p2 == "yea" then
  260.         break
  261.     end
  262. end
  263. sleep(2)
  264. print("Connection succesfull!")
  265. sleep(3)
  266. print("Make sure you have different chest for the following items.")
  267. print("If this is not true then the program will still do it's thing, but it will not work properly.")
  268. sleep(3)
  269.  
  270. while true do
  271.     clear()
  272.     print("Where is the chest for dropping items off?\n")
  273.     print("Choices:\nBehind\nUnder\nLeft\nRight")
  274.         chestDropOff = string.lower(read())
  275.         if chestDropOff == "behind" then
  276.             facingDrop = facingDrop + 1
  277.             break
  278.         elseif chestDropOff == "under" then
  279.             facingDrop = facingDrop + 2
  280.             break
  281.         elseif chestDropOff == "left" then
  282.             facingDrop = facingDrop + 3
  283.             break
  284.         elseif chestDropOff == "right" then
  285.             facingDrop = facingDrop + 4
  286.             break
  287.         end
  288.     end
  289. end
  290.  
  291. while true do
  292.     clear()
  293.     print("Where is the chest for Bone Meal?\n")
  294.     print("Choices:\nBehind\nUnder\nLeft\nRight")
  295.         chestMeal = string.lower(read())
  296.         if chestMeal == "behind" then
  297.             facingMeal = facingMeal + 1
  298.             break
  299.         elseif chestMeal == "under" then
  300.             facingMeal = facingMeal + 2
  301.             break
  302.         elseif chestMeal == "left" then
  303.             facingMeal = facingMeal + 3
  304.             break
  305.         elseif chestMeal == "right" then
  306.             facingMeal = facingMeal + 4
  307.             break
  308.         end
  309.     end
  310. end
  311.  
  312. while true do
  313.     clear()
  314.     print("Where is the chest for Rubber Tree Saplings?\n")
  315.     print("Choices:\nBehind\nUnder\nLeft\nRight")
  316.     chestSap = string.lower(read())
  317.     if chestSap == "behind" then
  318.         facingSap = facingSap + 1
  319.         break
  320.     elseif chestSap == "under" then
  321.         facingSap = facingSap + 2
  322.         break
  323.         elseif chestSap == "left" then
  324.         facingSap = facingSap + 3
  325.         break
  326.     elseif chestSap == "right" then
  327.         facingSap = facingSap + 4
  328.         break
  329.     end
  330. end
  331.  
  332. while true do
  333.     clear()
  334.     print("Refuel options:\n 1: Charging station\n 2: Chest with coal\n 3: You will manually refuel me")
  335.     readrefuel = read()
  336.     if not tonumber(readrefuel) then
  337.     elseif readrefuel == "1" then
  338.         refuelCharg()
  339.         break
  340.     elseif readrefuel == "2" then
  341.         refuelCoalChest()
  342.         break
  343.     elseif readrefuel == "3" then
  344.         refuel = refuel + 3
  345.         print("You will refuel me")
  346.         break
  347.     end
  348. end
  349.    
  350. while true do
  351.     clear()
  352.     write("Am I a digger or treetap? ")
  353.     reader = string.lower(read())
  354.     if reader == "digger" then
  355.         turtle = turtle + 1
  356.         break
  357.     elseif reader == "treetap" then
  358.         turtle = turtle + 2
  359.         break
  360.     end
  361. end
  362.  
  363. print("Setup your other turtle")
  364. while true do
  365.     rednet.send(tonumber(sendid), "ready")
  366.     p1, p2, p3 = rednet.receive(10)
  367.     if p2 == "yea" then
  368.         rednet.send(tonumber(sendid), "setup")
  369.         break
  370.     end
  371. end
  372.  
  373. p1, p2, p3 = rednet.receive()
  374. if p2 == "gosend" then
  375.     print("Testing if the other turtle is send-ready..")
  376.     rednet.send(tonumber(sendid), "properly")
  377.     p1, p2, p3 = rednet.receive()
  378.     if p2 == "succes" then
  379.         print("Turtle is send-ready!")
  380.         rednet.send(p1, "succes")
  381.     else
  382.         print("This is not the proper turtle")
  383.         error()
  384.     end
  385. else
  386.     print("Something went wrong")
  387. end
  388.  
  389. print("\nSending information..")
  390. p1, p2, p3 = rednet.receive()
  391. if p2 == "sendstuff" and turtle == 1 then
  392.     rednet.send(p1, "treetap")
  393.     print("Information has been sent!")
  394.     digger()
  395. elseif p2 == "sendstuff" and turtle == 2 then
  396.     rednet.send(p1, "digger")
  397.     print("Information has been sent!")
  398.     print("Doing treetap")
  399. else
  400.     print("If you see this, please contact the creater of this script")
  401. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement