Advertisement
minuslinus

dig

Feb 10th, 2013
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.09 KB | None | 0 0
  1. arg = { ... }
  2. userLength=arg[1]
  3. userWidth=arg[2]
  4. userHight=arg[3]
  5.  
  6. if arg[1]==nil or arg[2]==nil or arg[3]==nil then
  7.     term.clear()
  8.     term.setCursorPos(1,1)
  9.     print("starts digging in the bottom, left, closest corner. Fuel will need to be in the first slot.")
  10.     term.setCursorPos(1,5)
  11.     print("dig <length> <width> <higth>")
  12.     return
  13. end
  14.  
  15. if (arg[3]%3)~=0 then
  16.     print("plz select a height divided by 3")
  17.     return
  18. end
  19.  
  20. neededFuel = (userWidth*userLength+(userWidth-1)+(userLength-1)-1)*userHight/3+(userHight-2)*2
  21. divHigh = (userHight/3)-1
  22.  
  23. function move()
  24.     mined=1
  25.     while mined > 0 do
  26.         if turtle.forward() == false then
  27.             turtle.attack()
  28.             turtle.dig()
  29.             mined = mined + 1
  30.         end
  31.         mined = mined - 1
  32.     end
  33. end
  34.  
  35. function turning()
  36.     if boleonTurn==true then
  37.         turtle.turnLeft()
  38.         move()
  39.         turtle.turnLeft()
  40.     else
  41.         turtle.turnRight()
  42.         move()
  43.         turtle.turnRight()
  44.     end
  45.     turtle.digUp()
  46.     turtle.digDown()
  47.     if boleonTurn==true then
  48.         boleonTurn=false
  49.     else
  50.     boleonTurn=true
  51.     end
  52. end
  53.  
  54. function dig()
  55.     for i=2,userLength do
  56.         move()
  57.         turtle.digUp()
  58.         turtle.digDown()
  59.     end
  60. end
  61.  
  62. function backToStart()
  63.     if 0==userWidth%2 then
  64.         turtle.turnRight()
  65.         for i=2,userWidth do
  66.             move()
  67.         end
  68.         turtle.turnRight()
  69.     else
  70.         turtle.turnLeft()
  71.         turtle.turnLeft()
  72.         for i=2,userLength do
  73.             move()
  74.         end
  75.         turtle.turnRight()
  76.         for i=2,userWidth do
  77.             move()
  78.         end
  79.         turtle.turnRight()
  80.     end
  81. end
  82.  
  83. function newLayer(thisManyUp)
  84.     for i=1,thisManyUp do
  85.         mined=1
  86.         while mined > 0 do
  87.             if turtle.up() == false then
  88.                 turtle.attackUp()
  89.                 turtle.digUp()
  90.                 mined = mined + 1
  91.             end
  92.             mined = mined - 1
  93.         end
  94.     end
  95.     boleonTurn=false
  96. end
  97.  
  98. function layer()
  99.     for i=2,userWidth do
  100.         dig()
  101.         turning()
  102.     end
  103.     dig()
  104. end
  105.  
  106. function turtleDown()
  107.     for i=3,userHight do
  108.         turtle.down()
  109.     end
  110.     return
  111. end
  112.  
  113. function fuel()
  114.     while neededFuel>=turtle.getFuelLevel() do
  115.         turtle.select(1)
  116.         turtle.refuel(1)
  117.     end
  118. end
  119.  
  120. fuel()
  121. newLayer(1)
  122. layer()
  123. while divHigh >= 1 do
  124.     backToStart()
  125.     newLayer(3)
  126.     layer()
  127.     divHigh=divHigh-1
  128. end
  129. backToStart()
  130. turtleDown()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement