Advertisement
geekyWerewolf

Turtle cuboid

Nov 9th, 2015
457
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.40 KB | None | 0 0
  1. local tArgs = { ... }
  2. if #tArgs ~= 3 then
  3.   print("Usage: cuboid <length> <breadth> <height>")
  4. end
  5. local l,b,h
  6. l=tArgs[1]
  7. b=tArgs[2]
  8. h=tArgs[3]
  9. print("Digging "..l.."x"..b.."x"..h.." ...")
  10. local shouldTurnRight = true;
  11.  
  12. function checkFuel()
  13.   local printed = false
  14.   while true do
  15.     if(turtle.getFuelLevel() > 0) then
  16.       return
  17.     else
  18.       for k=1,16 do
  19.         turtle.select(k)
  20.         if(turtle.refuel()) then
  21.           print("refuelling ...")
  22.           return
  23.         end
  24.       end
  25.       if(not printed) then
  26.         print("Fuel needed")
  27.         printed = true
  28.       end
  29.       sleep(5)            
  30.     end
  31.   end
  32. end
  33.  
  34.  
  35. local function goForward(n)
  36.   for i=1,n do
  37.     checkFuel()
  38.     while true do
  39.       turtle.dig()
  40.       if turtle.forward() then
  41.         break
  42.       end
  43.     end
  44.   end
  45.   return
  46. end
  47.  
  48. local function stepDown()
  49.   checkFuel()
  50.   while true do
  51.     turtle.digDown()
  52.     if turtle.down() then
  53.       break
  54.     end
  55.   end
  56. end
  57.  
  58. for j=1,h do
  59.   for i=1,b-1 do
  60.     goForward(l-1)
  61.     if(shouldTurnRight) then
  62.       turtle.turnRight()
  63.       shouldTurnRight = false
  64.       goForward(1)
  65.       turtle.turnRight()
  66.     else
  67.       turtle.turnLeft()
  68.       shouldTurnRight = true
  69.       goForward(1)
  70.       turtle.turnLeft()
  71.     end
  72.   end
  73.   goForward(l-1)
  74.   if j<tonumber(h) then
  75.     turtle.turnLeft()
  76.     turtle.turnLeft()
  77.     stepDown()
  78.   end
  79. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement