Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function moveForward()
- if not turtle.forward() then
- if turtle.detect() then
- if not turtle.dig() then
- print("dig returning false after detect")
- return false
- else
- if turtle.forward() == true then
- return true
- else
- return moveForward()
- end
- end
- else
- while turtle.attack() do
- print("Turtle is attacking")
- end
- if turtle.forward() == true then
- return true
- else
- return moveForward()
- end
- end
- else
- return true
- end
- end
- function moveDown()
- if not turtle.down() then
- if turtle.detectDown() then
- if not turtle.digDown() then
- print("dig down returning false after detect")
- return false
- else
- turtle.down()
- return true
- end
- else
- attack = True
- while turtle.attackDown() do
- turtle.attackDown()
- end
- turtle.down()
- return true
- end
- else
- return true
- end
- end
- function moveUp()
- if not turtle.up() then
- if turtle.detectUp() then
- if not turtle.digUp() then
- print("dig up returning false after detect")
- return false
- else
- turtle.up()
- return true
- end
- else
- attack = True
- while turtle.attackUp() do
- turtle.attackUp()
- end
- turtle.up()
- return true
- end
- else
- return true
- end
- end
- local tArgs = {...}
- if #tArgs ~= 3 then
- print("Requires length, width, height")
- return
- end
- local x = tonumber(tArgs[1]) - 1
- local y = tonumber(tArgs[2])
- local z = tonumber(tArgs[3])
- if x == nil or y == nil or z == nil then
- print("Invalid dimensions")
- return
- end
- if x < 0 or y < 0 or z < 0 then
- print("Invalid (negative) dimensions")
- return
- end
- local fuel = turtle.getFuelLevel()
- local roomSize = x * y * z
- while fuel < roomSize do
- if not turtle.refuel(1) then
- print("Not enough fuel")
- return
- end
- end
- local direction = true
- for i = 1, z do
- for j = 1, y do
- for k = 1, x do
- moveForward()
- end
- if j < y then
- if direction then
- turtle.turnRight()
- moveForward()
- turtle.turnRight()
- direction = false
- else
- turtle.turnLeft()
- moveForward()
- turtle.turnLeft()
- direction = true
- end
- end
- end
- if i < z then
- moveUp()
- turtle.turnRight()
- turtle.turnRight()
- end
- end
- if y % 2 == 0 then
- turtle.turnRight()
- for i = 1, y do
- turtle.forward()
- end
- turtle.turnRight()
- else
- turtle.turnLeft()
- for i = 1, y do
- turtle.forward()
- end
- turtle.turnLeft()
- for i = 1, x do
- turtle.forward()
- end
- turtle.turnRight()
- turtle.turnRight()
- end
- for i = 1, z do
- turtle.down()
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement