Advertisement
Guest User

altar

a guest
Nov 28th, 2015
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 4.97 KB | None | 0 0
  1. function selectNext()
  2.   if turtle.getSelectedSlot()==16 then
  3.     turtle.select(1)
  4.   else
  5.     turtle.select(turtle.getSelectedSlot()+1)
  6.     if turtle.getItemCount()==0 then
  7.       selectNext()
  8.     end
  9.   end
  10. end
  11. function replace(n)
  12.   for i=1,n do
  13.     turtle.forward()
  14.     if turtle.getItemCount()==0 then
  15.       selectNext()
  16.     end
  17.     if not turtle.compareUp() then
  18.       turtle.digUp()
  19.       turtle.placeUp()
  20.     end
  21.   end
  22. end
  23. function forward(n)
  24.   for i=1,n do
  25.     turtle.forward()
  26.   end
  27. end
  28. function back(n)
  29.   for i=1,n do
  30.     turtle.back()
  31.   end
  32. end
  33. function up(n)
  34.   for i=1,n do
  35.     turtle.up()
  36.   end
  37. end
  38. function down(n)
  39.   for i=1,n do
  40.     turtle.down()
  41.   end
  42. end
  43.  
  44. function doLayer(i)
  45.   if i=="1" then
  46.     if turtle.getFuelLevel()<12 then
  47.       print("Refuel")
  48.     else
  49.       turtle.down()
  50.       replace(3)
  51.       turtle.turnRight()
  52.       replace(2)
  53.       turtle.turnRight()
  54.       replace(2)
  55.       turtle.turnRight()
  56.       replace(1)
  57.       turtle.forward()
  58.       turtle.turnRight()
  59.       turtle.back()
  60.       turtle.up()
  61.     end
  62.   elseif i=="2" then
  63.     if turtle.getFuelLevel()<30 then
  64.       print("Refuel")
  65.     else
  66.       down(2)
  67.       turtle.back()
  68.       turtle.turnLeft()
  69.       replace(1)
  70.       turtle.forward()
  71.       turtle.turnRight()
  72.       replace(5)
  73.       turtle.forward()
  74.       turtle.turnRight()
  75.       replace(5)
  76.       turtle.forward()
  77.       turtle.turnRight()
  78.       replace(5)
  79.       turtle.forward()
  80.       turtle.turnRight()
  81.       replace(4)
  82.       turtle.turnRight()
  83.       turtle.forward()
  84.       up(2)
  85.     end
  86.   elseif i=="3" then
  87.     if turtle.getFuelLevel()<52 then
  88.       print("Refuel")
  89.     else
  90.       down(3)
  91.       back(3)
  92.       turtle.turnLeft()
  93.       replace(2)
  94.       forward(2)
  95.       turtle.turnRight()
  96.       turtle.forward()
  97.       replace(7)
  98.       forward(2)
  99.       turtle.turnRight()
  100.       turtle.forward()
  101.       replace(7)
  102.       forward(2)
  103.       turtle.turnRight()
  104.       turtle.forward()
  105.       replace(7)
  106.       forward(2)
  107.       turtle.turnRight()
  108.       turtle.forward()
  109.       replace(5)
  110.       turtle.turnRight()
  111.       forward(3)
  112.       up(3)
  113.     end
  114.   elseif i=="4" then
  115.     if turtle.getFuelLevel()<84 then
  116.       print("Refuel")
  117.     else
  118.       down(4)
  119.       back(6)
  120.       turtle.turnLeft()
  121.       replace(5)
  122.       forward(2)
  123.       turtle.turnRight()
  124.       turtle.forward()
  125.       replace(13)
  126.       forward(2)
  127.       turtle.turnRight()
  128.       turtle.forward()
  129.       replace(13)
  130.       forward(2)
  131.       turtle.turnRight()
  132.       turtle.forward()
  133.       replace(13)
  134.       forward(2)
  135.       turtle.turnRight()
  136.       turtle.forward()
  137.       replace(8)
  138.       turtle.turnRight()
  139.       forward(6)
  140.       up(4)
  141.     end
  142.   elseif i=="5" then
  143.     if turtle.getFuelLevel()<116 then
  144.       print("Refuel")
  145.     else
  146.       down(5)
  147.       back(9)
  148.       turtle.turnLeft()
  149.       replace(8)
  150.       forward(2)
  151.       turtle.turnRight()
  152.       turtle.forward()
  153.       replace(19)
  154.       forward(2)
  155.       turtle.turnRight()
  156.       turtle.forward()
  157.       replace(19)
  158.       forward(2)
  159.       turtle.turnRight()
  160.       turtle.forward()
  161.       replace(19)
  162.       forward(2)
  163.       turtle.turnRight()
  164.       turtle.forward()
  165.       replace(11)
  166.       turtle.turnRight()
  167.       forward(9)
  168.       up(5)
  169.     end
  170.   end
  171. end
  172.  
  173. function getRune()
  174.   test = turtle.getItemDetail()
  175.   for i=1,#runes do
  176.     if test.name..test.damage==runes[i].name..runes[i].damage then
  177.       return runes[i].label
  178.     end
  179.   end
  180.   return nil
  181. end
  182.  
  183. function findRune(label)
  184.   turtle.select(1)
  185.   repeat
  186.     turtle.select(turtle.getSelectedSlot()+1)
  187.   until getRune()==label or turtle.getSelectedSlot==16
  188. end  
  189.  
  190. args = {...}
  191. --load rune types
  192. runes = {}
  193. file = fs.open("runes","r")
  194. i=0
  195. while true do
  196.   i=i+1
  197.   temp1 = file.readLine()
  198.   temp2 = file.readLine()
  199.   temp3 = file.readLine()
  200.   if temp1==nil then
  201.     break
  202.   else
  203.     runes[i] = {label=temp1,name=temp2,damage=temp3}
  204.   end
  205. end
  206. file.close()
  207.  
  208. homea = vector.new(505,239,645)
  209. homeb = vector.new(527,239,645)
  210. here = vector.new(gps.locate(5))
  211. if args[3] then
  212.   findRune(args[3])
  213. end
  214. if args[1]=="a" then
  215.   if here==homeb then
  216.     turtle.up()
  217.     turtle.turnLeft()
  218.     forward(22)
  219.     turtle.turnRight()
  220.     turtle.down()
  221.     if args[2] then
  222.       doLayer(args[2])
  223.       turtle.up()
  224.       turtle.turnRight()
  225.       forward(22)
  226.       turtle.turnLeft()
  227.       turtle.down()
  228.     end
  229.   elseif here==homea then
  230.     doLayer(args[2])
  231.   else
  232.     print("Out of position!")
  233.   end
  234. elseif args[1]=="b" then
  235.   if here==homea then
  236.     turtle.up()
  237.     turtle.turnRight()
  238.     forward(22)
  239.     turtle.turnLeft()
  240.     turtle.down()
  241.     if args[2] then
  242.       doLayer(args[2])
  243.       turtle.up()
  244.       turtle.turnLeft()
  245.       forward(22)
  246.       turtle.turnRight()
  247.       turtle.down()
  248.     end
  249.   elseif here==homeb then
  250.     doLayer(args[2])
  251.   else
  252.     print("Out of position!")
  253.   end
  254. elseif args[1]=="getrune" then
  255.   print(getRune())
  256. else
  257.   print("Unrecognised command")
  258. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement