gknova61

Dark Iron Lighter

Dec 31st, 2012
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 3.59 KB | None | 0 0
  1. --CONFIG SECTION
  2. MaxYLevel = 4
  3. --END CONFIG SECTION
  4.  
  5. if not turtle then
  6.     error("You need a turtle!")
  7. end
  8.  
  9. if peripheral.getType("right") == "modem" then
  10.     modem = peripheral.wrap("right")
  11. else
  12.     error("You need a modem on this Turtle!")
  13. end
  14.  
  15. numberOfBlocksPerSlot = {}
  16. numberOfTotalBlocks = 0
  17. numberOfLayers = 0
  18. numberOfMovements = 0
  19. numberOfBlocksPlaced = 0
  20. layerNumber = 0
  21. density = 1
  22. firstLayer = true
  23. firstTime = true
  24. movementOnLayer = 0
  25.  
  26. local function place(slotnumber)
  27.     turtle.select(tonumber(slotnumber))
  28.     while turtle.getItemCount(tonumber(slotnumber)) >= 1 do
  29.    
  30.         if firstLayer then
  31.             numberOfMovements = numberOfMovements + 1
  32.         end
  33.  
  34.         if not turtle.place() then
  35.             if firstTime then
  36.                 turtle.select(16)
  37.                 turtle.digDown()
  38.                 for i=2,15 do
  39.                     if turtle.getItemCount(i) >= 1 then
  40.                         turtle.select(i)
  41.                         turtle.placeDown()
  42.                         firstTime = false
  43.                         break
  44.                     end
  45.                 end
  46.             end
  47.             firstLayer = false
  48.             layerNumber = layerNumber + 1
  49.             if layerNumber >= MaxYLevel then
  50.                 layerNumber = 0
  51.                 density = density + 1
  52.                 turtle.turnRight()
  53.                 turtle.forward()
  54.                 turtle.turnLeft()
  55.                 while turtle.down() do
  56.                     turtle.down()
  57.                 end
  58.                 movementOnLayer = 0
  59.                 for i=1,tonumber((numberOfMovements-2)) do
  60.                     movementOnLayer = movementOnLayer + 1
  61.                     turtle.forward()
  62.                 end
  63.             else
  64.                 turtle.up()
  65.                 numberOfLayers = numberOfLayers + 1
  66.                 movementOnLayer = 0
  67.                 for i=1,tonumber((numberOfMovements-2)) do
  68.                     movementOnLayer = movementOnLayer + 1
  69.                     turtle.forward()
  70.                 end
  71.             end
  72.         else
  73.             turtle.place()
  74.             turtle.back()
  75.         end
  76.     end
  77. end
  78.  
  79. local function destroy()
  80.     for i=1,density do
  81.         for i=1,MaxYLevel do
  82.             for k=1,numberOfMovements do
  83.                 turtle.dig()
  84.                 turtle.forward()
  85.             end
  86.             turtle.forward()
  87.             turtle.up()
  88.             turtle.turnLeft()
  89.             turtle.turnLeft()
  90.         end
  91.     while turtle.down() do  
  92.         turtle.down()
  93.     end
  94.     turtle.turnRight()
  95.     turtle.forward()
  96.     turtle.turnLeft()
  97.     end
  98.     turtle.turnLeft()
  99.     for i=1,density do
  100.         turtle.forward()
  101.     end
  102.     turtle.turnRight()
  103.     turtle.digDown()
  104.     turtle.select(16)
  105.     turtle.placeDown()
  106. end
  107.  
  108. turtle.select(1)
  109. if turtle.getItemCount(1) ~= 1 then
  110.     print("Put a wrath igniter in slot 1")
  111.     print("Iron blocks go in slots 2-15")
  112.     print("Leave slot 16 free")
  113.     while true do
  114.         sleep(0)
  115.         if turtle.getItemCount(1) == 1  then
  116.             break
  117.         end
  118.     end
  119. end
  120. print()
  121. print("Scanning all slots for iron blocks...")
  122.  
  123. for i=1,16 do
  124.     numberOfBlocksPerSlot[i] = turtle.getItemCount(i)
  125. end
  126.  
  127. for i=1,16 do
  128.     if turtle.getItemCount(i) ~= 0 then
  129.         numberOfTotalBlocks = numberOfTotalBlocks + numberOfBlocksPerSlot[i]
  130.     else
  131.         numberOfBlocksPerSlot[i] = nil
  132.     end
  133. end
  134.  
  135. print()
  136. write("Placing iron...")
  137. for i=2,15 do
  138.     place(i)
  139. end
  140. write("burning")
  141. if not turtle.down() then
  142.     for i=1,movementOnLayer do
  143.         turtle.back()
  144.     end
  145. end
  146.  
  147. if not turtle.back() then
  148.     for i=1,MaxYLevel do
  149.         turtle.down()
  150.     end
  151. end
  152. turtle.turnLeft()
  153. for i=1,density-1 do
  154.     turtle.forward()
  155. end
  156. turtle.turnRight()
  157. while not turtle.back() do
  158.     turtle.turnRight()
  159.     turtle.turnRight()
  160.     turtle.dig()
  161.     turtle.turnRight()
  162.     turtle.turnRight()
  163. end
  164. turtle.turnRight()
  165. turtle.turnRight()
  166. for i=2,15 do
  167.     turtle.select(i)
  168.     turtle.drop()
  169. end
  170. turtle.turnRight()
  171. turtle.turnRight()
  172. turtle.select(1)
  173. turtle.place()
  174. sleep(60)
  175. write("...picking up")
  176. turtle.forward()
  177. destroy()
  178. turtle.back()
  179. turtle.turnRight()
  180. turtle.turnRight()
  181. for i=2,16 do
  182.     turtle.select(i)
  183.     turtle.drop()
  184. end
  185. turtle.turnRight()
  186. turtle.turnRight()
  187. turtle.forward()
  188. write("...done")
  189. waitForRednet()
  190. return true
Advertisement
Add Comment
Please, Sign In to add comment