Advertisement
legg0028

clearFloor

Sep 20th, 2013 (edited)
872
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 3.29 KB | None | 0 0
  1. local tArgs = {...}
  2.  
  3. if (not tArgs[1]) or (not tArgs[2]) or (not tArgs[3]) then
  4.   print("Set parameters: <length> <width> <depth>")
  5.   return
  6. end
  7.  
  8. local checkArg = tArgs[1]
  9. local origLong = tonumber(checkArg)
  10. local long = tonumber(checkArg)-1
  11.  
  12. checkArg = tArgs[2]
  13. local origWide = tonumber(checkArg)
  14. local wide = tonumber(checkArg)-1
  15.  
  16. checkArg = tArgs[3]
  17. local deep = tonumber(checkArg)
  18. local dRem = deep
  19.  
  20. function instructions()
  21.   term.clear()
  22.   term.setCursorPos(1,1)
  23.   print("Your hole will be "..origLong.."x"..origWide.."x"..deep)
  24.   print("Place turtle on the top right corner ABOVE the area to be cleared.")
  25.   print("Also put an enderchest in slot 16 if you want to store the blocks.")
  26.   io.read()
  27. end
  28.  
  29. function store()
  30.   if turtle.getItemCount(16) > 0 then
  31.     if turtle.getItemDetail(16)["name"] == "enderstorage:ender_chest" then
  32.       if turtle.getItemCount(15) > 0 then
  33.         for x = 1,16 do
  34.           turtle.select(x)
  35.           if (turtle.getItemCount(x)) > 63 then
  36.             turtle.select(16)
  37.             repeat
  38.               sleep(0.1)
  39.           until (turtle.digUp()) == false
  40.              turtle.digDown()
  41.             turtle.placeUp()
  42.             for x = 1,15 do
  43.               turtle.select(x)
  44.               turtle.dropUp()
  45.               sleep(0.1)
  46.             end
  47.             turtle.select(16)
  48.             turtle.digUp()
  49.           end
  50.         end
  51.     end
  52.   end
  53.   end
  54. end
  55.  
  56. function goForward()
  57.   while (not turtle.forward()) do
  58.         local success, data = turtle.inspect()
  59.         if success and data["name"] == "forbidden_arcanus:stella_arcanum" then
  60.             os.reboot()
  61.         else
  62.             turtle.dig()
  63.             turtle.attack()
  64.             sleep(0.1)
  65.         end
  66.   end
  67. end
  68.  
  69. function dig()
  70.     local success, data = turtle.inspectUp()
  71.     if success and data["name"] == "forbidden_arcanus:stella_arcanum" then
  72.        
  73.     else
  74.         repeat
  75.             sleep(0.1)
  76.         until not turtle.digUp()
  77.     end
  78.     local success, data = turtle.inspectDown()
  79.     if success and data["name"] == "forbidden_arcanus:stella_arcanum" then
  80.        
  81.     else
  82.         turtle.digDown()
  83.     end
  84.     store()
  85.     goForward()
  86. end
  87.  
  88. function row()
  89.   for x = 1,(long) do
  90.     dig()
  91.   end
  92.   turtle.digUp()
  93.   turtle.digDown()
  94. end
  95.  
  96. function layer()
  97.   if dRem > 2 then
  98.     for x = 1,2 do
  99.       turtle.digDown()
  100.       turtle.down()
  101.       dRem = dRem-1
  102.     end
  103.   elseif dRem == 2 then
  104.     turtle.digDown()
  105.     turtle.down()
  106.     dRem = 0
  107.   elseif dRem == 1 then
  108.     dRem = 0
  109.   end
  110.   local w = 0
  111.   while true do
  112.     row()
  113.     w = w+1
  114.     if w == (wide+1) then
  115.       turtle.turnLeft()
  116.       turtle.turnLeft()
  117.       for x = 1,long do
  118.         dig()
  119.       end
  120.       turtle.turnLeft()
  121.       for x = 1,wide do
  122.         dig()
  123.       end
  124.       turtle.turnLeft()
  125.       if dRem ~= 0 then
  126.         turtle.down()
  127.         dRem = dRem-1
  128.       end
  129.       return
  130.     else
  131.       turtle.turnLeft()
  132.       store()
  133.       dig()
  134.       turtle.turnLeft()
  135.     end
  136.     row()
  137.     w = w+1
  138.     if w == (wide+1) then
  139.       turtle.turnLeft()
  140.       for x = 1,wide do
  141.         dig()
  142.       end
  143.       turtle.turnLeft()
  144.       if dRem ~= 0 then
  145.         turtle.down()
  146.         dRem = dRem-1
  147.       end
  148.       return
  149.     else
  150.       turtle.turnRight()
  151.       dig()
  152.       turtle.turnRight()
  153.     end
  154.   end
  155. end
  156.  
  157. instructions()
  158. if turtle.getItemCount(16) > 0 then
  159.   enderchest = true
  160. else
  161.   enderchest = false
  162. end
  163. repeat
  164.   layer()
  165. until dRem == 0
  166. if deep ~= 1 then
  167.   for x = 1,(deep) do
  168.     turtle.up()
  169.   end
  170. end
  171. store()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement