Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --CONFIG SECTION
- MaxYLevel = 4
- --END CONFIG SECTION
- if not turtle then
- error("You need a turtle!")
- end
- if peripheral.getType("right") == "modem" then
- modem = peripheral.wrap("right")
- else
- error("You need a modem on this Turtle!")
- end
- numberOfBlocksPerSlot = {}
- numberOfTotalBlocks = 0
- numberOfLayers = 0
- numberOfMovements = 0
- numberOfBlocksPlaced = 0
- layerNumber = 0
- density = 1
- firstLayer = true
- firstTime = true
- movementOnLayer = 0
- local function place(slotnumber)
- turtle.select(tonumber(slotnumber))
- while turtle.getItemCount(tonumber(slotnumber)) >= 1 do
- if firstLayer then
- numberOfMovements = numberOfMovements + 1
- end
- if not turtle.place() then
- if firstTime then
- turtle.select(16)
- turtle.digDown()
- for i=2,15 do
- if turtle.getItemCount(i) >= 1 then
- turtle.select(i)
- turtle.placeDown()
- firstTime = false
- break
- end
- end
- end
- firstLayer = false
- layerNumber = layerNumber + 1
- if layerNumber >= MaxYLevel then
- layerNumber = 0
- density = density + 1
- turtle.turnRight()
- turtle.forward()
- turtle.turnLeft()
- while turtle.down() do
- turtle.down()
- end
- movementOnLayer = 0
- for i=1,tonumber((numberOfMovements-2)) do
- movementOnLayer = movementOnLayer + 1
- turtle.forward()
- end
- else
- turtle.up()
- numberOfLayers = numberOfLayers + 1
- movementOnLayer = 0
- for i=1,tonumber((numberOfMovements-2)) do
- movementOnLayer = movementOnLayer + 1
- turtle.forward()
- end
- end
- else
- turtle.place()
- turtle.back()
- end
- end
- end
- local function destroy()
- for i=1,density do
- for i=1,MaxYLevel do
- for k=1,numberOfMovements do
- turtle.dig()
- turtle.forward()
- end
- turtle.forward()
- turtle.up()
- turtle.turnLeft()
- turtle.turnLeft()
- end
- while turtle.down() do
- turtle.down()
- end
- turtle.turnRight()
- turtle.forward()
- turtle.turnLeft()
- end
- turtle.turnLeft()
- for i=1,density do
- turtle.forward()
- end
- turtle.turnRight()
- turtle.digDown()
- turtle.select(16)
- turtle.placeDown()
- end
- turtle.select(1)
- if turtle.getItemCount(1) ~= 1 then
- print("Put a wrath igniter in slot 1")
- print("Iron blocks go in slots 2-15")
- print("Leave slot 16 free")
- while true do
- sleep(0)
- if turtle.getItemCount(1) == 1 then
- break
- end
- end
- end
- print()
- print("Scanning all slots for iron blocks...")
- for i=1,16 do
- numberOfBlocksPerSlot[i] = turtle.getItemCount(i)
- end
- for i=1,16 do
- if turtle.getItemCount(i) ~= 0 then
- numberOfTotalBlocks = numberOfTotalBlocks + numberOfBlocksPerSlot[i]
- else
- numberOfBlocksPerSlot[i] = nil
- end
- end
- print()
- write("Placing iron...")
- for i=2,15 do
- place(i)
- end
- write("burning")
- if not turtle.down() then
- for i=1,movementOnLayer do
- turtle.back()
- end
- end
- if not turtle.back() then
- for i=1,MaxYLevel do
- turtle.down()
- end
- end
- turtle.turnLeft()
- for i=1,density-1 do
- turtle.forward()
- end
- turtle.turnRight()
- while not turtle.back() do
- turtle.turnRight()
- turtle.turnRight()
- turtle.dig()
- turtle.turnRight()
- turtle.turnRight()
- end
- turtle.turnRight()
- turtle.turnRight()
- for i=2,15 do
- turtle.select(i)
- turtle.drop()
- end
- turtle.turnRight()
- turtle.turnRight()
- turtle.select(1)
- turtle.place()
- sleep(60)
- write("...picking up")
- turtle.forward()
- destroy()
- turtle.back()
- turtle.turnRight()
- turtle.turnRight()
- for i=2,16 do
- turtle.select(i)
- turtle.drop()
- end
- turtle.turnRight()
- turtle.turnRight()
- turtle.forward()
- write("...done")
- waitForRednet()
- return true
Advertisement
Add Comment
Please, Sign In to add comment