Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local ar = {...}
- if #ar ~= 3 then
- print("Usage: <width> <length> <height>")
- return
- end
- local w = tonumber(ar[1])
- local l = tonumber(ar[2])
- local h = tonumber(ar[3])
- if w < 3 then
- print("width must be greater than 2")
- return
- elseif l < 3 then
- print("length must be greater than 2")
- return
- elseif h < 3 then
- print("height must be greater than 2")
- return
- end
- if turtle.getItemCount(1) == 0 then
- print("Insert items into turtle")
- return
- end
- local function go()
- while not turtle.forward() do
- turtle.dig()
- end
- end
- local function back()
- while not turtle.back() do
- turtle.turnLeft()
- turtle.turnLeft()
- turtle.dig()
- turtle.turnLeft()
- turtle.turnLeft()
- end
- end
- local function up()
- while not turtle.up() do
- turtle.digUp()
- end
- end
- local function down()
- while not turtle.down() do
- turtle.digDown()
- end
- end
- local function put(p)
- turtle.select(1)
- while turtle.getItemCount(1) < 2 do
- for x = 2, 16 do
- turtle.select(x)
- if turtle.compareTo(1) then
- turtle.transferTo(1)
- end
- end
- sleep(1)
- turtle.select(1)
- end
- if p == nil then
- while not turtle.place() do
- turtle.dig()
- end
- elseif p == up then
- while not turtle.placeUp() do
- turtle.digUp()
- end
- elseif p == down then
- while not turtle.placeDown() do
- turtle.digDown()
- end
- end
- end
- local function wside()
- put(down)
- for x = 1, ar[1]-1 do
- go()
- put(down)
- end
- for x = 1, ar[1]-1 do
- back()
- end
- end
- local function lside()
- for x = 1, ar[2]-1 do
- wside()
- turtle.turnRight()
- go()
- turtle.turnLeft()
- end
- put(down)
- for x = 1, ar[1]-1 do
- go()
- put(down)
- end
- end
- local function wall()
- turtle.turnLeft()
- for x = 1, ar[2]-1 do
- for i = 1, ar[3]-2 do
- up()
- put(down)
- end
- go()
- for j = 1, ar[3]-2 do
- down()
- end
- end
- for x = 1, ar[3]-2 do
- up()
- put(down)
- end
- turtle.turnLeft() -- at top left
- go()
- for x = 1, ar[3]-2 do
- down()
- end
- for x = 1, ar[1]-2 do
- for i = 1, ar[3]-2 do
- up()
- put(down)
- end
- go()
- for j = 1, ar[3]-2 do
- down()
- end
- end
- turtle.turnLeft() -- at bottom left
- for x = 1, ar[2]-1 do
- for i = 1, ar[3]-2 do
- up()
- put(down)
- end
- go()
- for j = 1, ar[3]-2 do
- down()
- end
- end
- turtle.turnLeft() -- at bottom right
- for x = 1, ar[1]-2 do
- for i = 1, ar[3]-2 do
- up()
- put(down)
- end
- go()
- for j = 1, ar[3]-2 do
- down()
- end
- end
- for x = 1, ar[3]-2 do
- up()
- put(down)
- end -- wall completed
- turtle.turnLeft()
- for x = 1, ar[2]-1 do
- go()
- end
- turtle.turnLeft()
- for x = 1, ar[1]-2 do
- go()
- end
- turtle.turnLeft()
- turtle.turnLeft()
- end -- position in S facing N
- lside()
- wall()
- up()
- lside()
- back()
- turtle.turnLeft()
- down()
- down()
- put(up)
- go()
- turtle.turnLeft()
- turtle.turnLeft()
- put()
- turtle.turnLeft()
- turtle.turnLeft()
- local function lclear()
- for x = 1, ar[2]-3 do
- go()
- end
- for x = 1, ar[2]-3 do
- back()
- end
- end
- local function hclear()
- for x = 1, ar[3]-3 do
- lcear()
- down()
- end
- lclear()
- for x = 1, ar[3]-3 do
- up()
- end
- end
- local function empty()
- for x = 1, ar[1]-3 do
- hclear()
- turtle.turnLeft()
- go()
- turtle.turnLeft()
- end
- hclear()
- end
- empty()
- for x = 1, ar[3]-4 do
- down()
- end
- turtle.turnLeft()
- go()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement