Advertisement
Guest User

harvester

a guest
Sep 2nd, 2014
236
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.11 KB | None | 0 0
  1. function save(data,source)
  2.   local file = fs.open(source,"w")
  3.   file.write(textutils.serialize(data))
  4.   file.close()
  5. end
  6.  
  7. function load(source)
  8.   local file = fs.open(source,"r")
  9.   local data = file.readAll()
  10.   file.close()
  11.   return textutils.unserialize(data)
  12. end
  13.  
  14. function rotate(dir)
  15.   facing = load("facing")
  16.   while facing ~= dir do
  17.     turtle.turnRight()
  18.     if facing == 3 then
  19.       facing = 0
  20.     else
  21.       facing = facing+1
  22.     end
  23.   end
  24.   save(dir,"facing")
  25. end
  26.  
  27. fuel = vector.new(-775,72,467)
  28.  
  29. n=0
  30. while true do
  31.   count = load("count")
  32.   n = n+1
  33.   if count==0 then
  34.     n=0
  35.   elseif not fs.exists("buffer"..tostring(n)) then
  36.     if n>count then
  37.       n=0
  38.     end
  39.   else
  40.     target = load("buffer"..tostring(n))
  41.     fs.delete("buffer"..tostring(n))
  42.     if count==n then
  43.       save(0,"count")
  44.       n=0
  45.     end
  46.    
  47.     pos = vector.new(gps.locate())
  48.    
  49.     turtle.up()
  50.    
  51.     if pos.x < target.x then
  52.       rotate(3)
  53.     elseif pos.x > target.x then
  54.       rotate(1)
  55.     end
  56.    
  57.     i=0
  58.     while i ~= math.abs(pos.x - target.x) do
  59.       turtle.forward()
  60.       i = i+1
  61.     end
  62.    
  63.     if pos.z < target.z then
  64.       rotate(0)
  65.     elseif pos.z > target.z then
  66.       rotate(2)
  67.     end
  68.    
  69.     i=0
  70.     while i ~= math.abs(pos.z - target.z) do
  71.       turtle.forward()
  72.       i = i+1
  73.     end
  74.    
  75.     turtle.down()
  76.    
  77.     turtle.select(1)
  78.     turtle.digDown()
  79.    
  80.     for i=1,16 do
  81.       turtle.select(i)
  82.       turtle.placeDown()
  83.     end
  84.    
  85.     if turtle.getFuelLevel()<100 then
  86.       pos = vector.new(gps.locate())
  87.       rotate(2)
  88.       turtle.up()
  89.       for i=1,math.abs(pos.x - fuel.x) do
  90.         turtle.forward()
  91.       end
  92.       rotate(3)
  93.       for i=1,math.abs(pos.z - fuel.z) do
  94.         turtle.forward()
  95.       end
  96.       turtle.down()
  97.      
  98.       turtle.select(16)
  99.       turtle.suckDown(32)
  100.       turtle.refuel()
  101.      
  102.       rotate(0)
  103.       turtle.forward()
  104.      
  105.       for i=1,16 do
  106.         turtle.select(i)
  107.         turtle.dropDown()
  108.       end
  109.      
  110.       turtle.select(1)
  111.     end
  112.   end
  113.   sleep(5)
  114. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement