Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- wood = {}
- nextColDir = "up"
- nextRowDir = "right"
- function digTunnel(length)
- for i = 1, length, 1 do
- for k = 1, 4, 1 do
- if not digSide(nextColDir) then
- return false
- end
- invFull("back", 2)
- nextColDir = swapColDir(nextColDir)
- turn(nextRowDir)
- nextRowDir = swapRowDir(nextRowDir)
- for j = 1, 3, 1 do
- if not digCenter(nextColDir) then
- return false
- end
- invFull("back", 2)
- nextColDir = swapColDir(nextColDir)
- end
- if not digSide(nextColDir) then
- return false
- end
- invFull("back", 2)
- nextColDir = swapColDir(nextColDir)
- turn(nextRowDir)
- end
- if not addSupports() then
- return false
- end
- invFull(nextRowDir, 2)
- end
- return true
- end
- function addSupports()
- turn(nextRowDir)
- forward()
- turn(nextRowDir)
- forward()
- turn(nextRowDir)
- if not placeBeams(nextColDir) then
- return false
- end
- nextColDir = swapColDir(nextColDir)
- turn(nextRowDir)
- turn(nextRowDir)
- nextRowDir = swapRowDir(nextRowDir)
- forward()
- if nextColDir == "up" then
- digDown()
- if not placeWood("down") then
- return false
- end
- up()
- up()
- if not placeWood("up") then
- return false
- end
- elseif nextColDir == "down" then
- if not placeWood("up") then
- return false
- end
- down()
- down()
- digDown()
- if not placeWood("down") then
- return false
- end
- end
- nextColDir = swapColDir(nextColDir)
- forward()
- if not placeBeams(nextColDir) then
- return false
- end
- nextColDir = swapColDir(nextColDir)
- turn(nextRowDir)
- nextRowDir = swapRowDir(nextRowDir)
- forward()
- turn(nextRowDir)
- forward()
- nextRowDir = swapRowDir(nextRowDir)
- turn(nextRowDir)
- return true
- end
- function placeBeams(direction)
- success = true
- if direction == "up" then
- digDown()
- sucess = placeWood("down")
- sucess = placeWood("front")
- up()
- sucess = placeWood("front")
- up()
- sucess = placeWood("front")
- sucess = placeWood("up")
- elseif direction == "down" then
- sucess = placeWood("up")
- sucess = placeWood("front")
- down()
- sucess = placeWood("front")
- down()
- digDown()
- sucess = placeWood("front")
- sucess = placeWood("down")
- end
- return success
- end
- function digSide(direction)
- local success = true
- dig()
- forward()
- if direction == "up" then
- digDown()
- success = placeWood("down")
- for i = 1, 2, 1 do
- digUp()
- up()
- end
- digUp()
- success = placeWood("up")
- else
- digUp()
- success = placeWood("up")
- for i = 1, 2, 1 do
- digDown()
- down()
- end
- digDown()
- success = placeWood("down")
- end
- return success
- end
- function digCenter(direction)
- local success = true
- dig()
- forward()
- if direction == "up" then
- digUp()
- up()
- digUp()
- up()
- digUp()
- else
- digUp()
- for i = 1, 2, 1 do
- digDown()
- down()
- end
- end
- return success
- end
- function placeWood(dir)
- hasWood = true
- if (wood == nil) or (sum(wood) == 0) then
- hasWood = findWood()
- end
- if not hasWood then
- return false
- end
- woodSlot = 1
- for i = 1, 14, 1 do
- if wood[i] > 0 then
- woodSlot = i
- end
- end
- turtle.select(woodSlot)
- success = true
- if dir == "front" then
- success = turtle.place()
- elseif dir == "up" then
- success = turtle.placeUp()
- elseif dir == "down" then
- success = turtle.placeDown()
- end
- wood[woodSlot] = turtle.getItemCount(woodSlot)
- return success
- end
- function findWood()
- for i = 1, 14, 1 do
- turtle.select(i)
- wood[i] = turtle.getItemCount(i)
- end
- if not (sum(wood) == 0) then
- return true
- else
- return false
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment