Advertisement
MDKed

digdownV4

Jul 3rd, 2013
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. heading = 1
  2. rHeading = 1
  3.  
  4. pos = vector.new(0,0,0)
  5. lPos = vector.new(0,0,0)
  6.  
  7. tgted = false
  8. unloading = false
  9. tgt = vector.new(0,0,0)
  10.  
  11. waypoints = {}
  12. waypoints['dockUnl'] = vector.new(-2,0,2)
  13. waypoints['unload'] = vector.new(-2,0,1)
  14. waypoints['retP'] = vector.new(0,0,1)
  15.  
  16. function chkInv()
  17. if unloading ~= true then
  18.  
  19. itmQ = 0
  20.  for a = 2, 16 do
  21.   itmQ = itmQ + turtle.getItemCount(a)
  22.  end
  23. print(' item count = ', itmQ)
  24.  if itmQ > 600 then
  25.   print('  returning to unload')
  26.   lPos = vector.new(pos.x, pos.y, pos.z)
  27.   rHeading = heading
  28.   unloadTime()
  29.  end
  30. end
  31. end
  32.  
  33. function unloadTime()
  34.  unloading = true
  35.  moveToTgt(waypoints['dockUnl'])
  36.  moveToTgt(waypoints['unload'])
  37.  for a = 2, 16 do
  38.   turtle.select(a)
  39.   turtle.drop()
  40.  end
  41.  moveToTgt(waypoints['dockUnl'])
  42.   print('returning to ', lPos.x, "x",lPos.y, "x",lPos.z)
  43.  moveToTgt(lPos)
  44.  rot(rHeading)
  45.  unloading = false
  46. end
  47.  
  48. function moveToTgt(Vector)
  49.  tgt = Vector
  50.  tgted = true
  51.  while (pos.x ~= tgt.x) or (pos.y ~= tgt.y) or (pos.z ~= tgt.z) do
  52.   if pos.x > tgt.x then
  53.    move(4)
  54.   elseif pos.x < tgt.x then
  55.    move(2)
  56.   end
  57.   if pos.y > tgt.y then
  58.    move(5)
  59.   elseif pos.y < tgt.y then
  60.    move(6)
  61.   end
  62.   if pos.z > tgt.z then
  63.    move(3)
  64.   elseif pos.z < tgt.z then
  65.    move(1)
  66.   end
  67.  end
  68. end
  69.  
  70. function move(Int)
  71.  
  72.  if (Int > 0) and (Int < 5) then
  73.   rot(Int)
  74.   Fwd(1)
  75.  elseif Int == 5 then
  76.   chkInv()
  77.   ChkFuel()
  78.   turtle.digDown()
  79.   turtle.down()
  80.   chngCoord(5)
  81.  elseif Int == 6 then
  82.   chkInv()
  83.   ChkFuel()
  84.   turtle.digUp()
  85.   turtle.up()
  86.   chngCoord(6)
  87.  end
  88. end
  89.  
  90. function rotB(Bool)
  91.  if Bool then
  92.   turtle.turnRight()
  93.   heading = heading + 1
  94.  else
  95.   turtle.turnLeft()
  96.   heading = heading - 1
  97.  end
  98.  if heading > 4 then
  99.    heading = 1
  100.   elseif heading < 1 then
  101.    heading = 4
  102.   end
  103. end
  104.  
  105. function rot(Int)
  106. a = heading - 1
  107.  if a < 1 then
  108.    a = 4
  109.   end
  110. if a == int then
  111.  turtle.turnLeft()
  112.  heading = heading - 1
  113. end
  114. a = heading + 1
  115.  if a > 4 then
  116.    a = 1
  117.   end
  118. if a == int then
  119.  turtle.turnRight()
  120.  heading = heading + 1
  121. end
  122.   if heading > 4 then
  123.    heading = 1
  124.   elseif heading < 1 then
  125.    heading = 4
  126.   end
  127. while Int ~= heading do
  128.   turtle.turnRight()
  129.   heading = heading + 1
  130.   if heading > 4 then
  131.    heading = 1
  132.   elseif heading < 1 then
  133.    heading = 4
  134.   end
  135.  end
  136. end
  137.  
  138. function swapBool(Bool)
  139.  if Bool then
  140.   return false
  141.  else
  142.   return true
  143.  end
  144. end
  145.  
  146. function chngCoord(Int)
  147.  if Int == 1 then
  148.    pos.z = pos.z + 1
  149.  elseif Int == 2 then
  150.    pos.x = pos.x + 1
  151.  elseif Int == 3 then
  152.    pos.z = pos.z - 1
  153.  elseif Int == 4 then
  154.    pos.x = pos.x - 1
  155.  elseif Int == 5 then
  156.    pos.y = pos.y - 1
  157.  elseif Int == 6 then
  158.    pos.y = pos.y + 1
  159.  end
  160. end
  161.  
  162. function ChkFuel()
  163.  if turtle.getFuelLevel() == 0 then
  164.   turtle.select(1)
  165.   if turtle.refuel(1) == true then
  166.    print('Dozapravke na ',pos.x, "x",pos.y, "x",pos.z)
  167.   end
  168.  end
  169. end
  170.  
  171. function Fwd(Int)
  172.   for a = 1, Int  do
  173.    chkInv()
  174.    turtle.dig()
  175.    ChkFuel()
  176.    if turtle.forward() then
  177.     chngCoord(heading)
  178.    end
  179.   end
  180. end
  181.  
  182. function Turn(Bool)
  183.   if Bool then
  184.    rotB(true)
  185.   Fwd(1)
  186.    rotB(true)
  187.   return false
  188.  else
  189.    rotB(false)
  190.   Fwd(1)
  191.    rotB(false)
  192.   return true
  193.   end
  194. end
  195.  
  196. function down()
  197.  move(5)
  198.  rotB(false)
  199.  rotB(false)
  200. end
  201.  
  202. print('Vvedite Shiriny')
  203. mX = tonumber(read())
  204. print('Vvedite glubinu')
  205. mY = tonumber(read())
  206.  
  207. print('  Starting at ',pos.x, "x",pos.y, "x",pos.z)
  208.  
  209. Fwd(1)
  210.  rotB(false)
  211. Fwd(mX/2)
  212.  rotB(true)
  213.  
  214. for c=1, 2 do
  215.  move(6)
  216. end
  217.  
  218. print('  Dig down at ',pos.x, "x",pos.y, "x",pos.z)
  219.  
  220. turn = true
  221.  
  222. for y = 1, mY+3 do
  223.  if y > 1 then
  224.   down()
  225.  end
  226.   for x = 1,  mX do
  227.    if mX > 1 then
  228.     Fwd(mX - 1)
  229.    else
  230.     Fwd(mX)
  231.    end
  232.    if x ~= mX then
  233.     turn = Turn(turn)
  234.    end
  235.   end
  236.  end
  237.  
  238. print('Begin dig up, steps up = ', mY, "\n   ", pos.x, "x",pos.y, "x",pos.z)
  239.  
  240.  
  241. for b=1, mY do
  242.  move(6)
  243. end
  244. unloadTime()
  245. moveToTgt(waypoints['retP'])
  246. moveToTgt(vector.new(0,0,0))
  247. print('Ending operation ', pos.x, "x",pos.y, "x",pos.z)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement