function makeWall(x,count)
function detectGravity()
sleep(.8)
for i=15,16 do
turtle.select(i)
while (turtle.detect()) and (turtle.compare()) do
turtle.dig()
sleep(0.5)
end
while (turtle.detectUp()) and (turtle.compareUp()) do
turtle.digUp()
sleep(0.5)
end
end
end
function clearLayer(l,w,h)
restock()
for i=1,l-1 do
if turtle.detect() then
turtle.dig()
detectGravity()
end
buildForward()
forward()
end
turtle.turnRight()
restock()
dump()
refuel()
for i=1,w-1 do
if turtle.detect() then
turtle.dig()
detectGravity()
end
buildForward()
forward()
end
turtle.turnRight()
restock()
dump()
refuel()
for i=1,l-1 do
if turtle.detect() then
turtle.dig()
detectGravity()
end
buildForward()
forward()
end
turtle.turnRight()
restock()
dump()
refuel()
for i=1,w-1 do
if turtle.detect() then
turtle.dig()
detectGravity()
end
buildForward()
forward()
end
turtle.turnRight()
restock()
dump()
refuel()
end
function forward()
while not turtle.forward() do
turtle.attack()
end
end
function buildForward()
restock()
refuel()
turtle.digDown()
turtle.placeDown()
end
function dump()
turtle.select(1)
turtle.digDown()
turtle.select(12)
turtle.placeDown()
for i=1,10 do
turtle.select(14)
if not turtle.compareTo(i) then
turtle.select(i)
turtle.dropDown()
end
end
turtle.select(12)
turtle.digDown()
selectMaterial()
turtle.placeDown()
end
function selectMaterial()
x=0
for i=1,10 do
turtle.select(14)
if turtle.compareTo(i) then
if turtle.getItemCount(i)>1 then
turtle.select(i)
x=0
return true
else
turtle.select(1)
x = 1
end
else
turtle.select(1)
x = 1
end
end
if x == 1 then
return false
end
end
function spiral(l,w,h,x)
local p = 0
for o=1,w-2 do
restock()
refuel()
for i=1,l-3 do
if x==1 then
buildRoofIf()
elseif x==2 then
end
if turtle.detect() then
turtle.dig()
detectGravity()
end
forward()
end
if x==1 then
buildRoofIf()
elseif x==2 then
end
dump()
restock()
refuel()
if (p%2==0) and (o~=w-2) then
turtle.turnRight()
if turtle.detect() then
turtle.dig()
detectGravity()
end
forward()
turtle.turnRight()
p = p + 1
elseif (p%2~=0) and (o~=w-2) then
turtle.turnLeft()
turtle.dig()
detectGravity()
forward()
turtle.turnLeft()
p = p + 1
end
end
end
function buildRoofIf()
turtle.digDown()
restock()
turtle.placeDown()
end
function buildRoof(l,w,h)
turtle.down()
turtle.turnRight()
turtle.forward()
turtle.turnLeft()
turtle.dig()
detectGravity()
turtle.forward()
spiral(l,w,h,1)
selectMaterial()
turtle.placeDown()
returnSpiral(l,w,h)
end
function returnSpiral(l,w,h)
refuel()
w=w+0
if w%2==0 then
turtle.turnRight()
for i=1,w-3 do
forward()
end
turtle.turnRight()
elseif w%2~=0 then
turtle.turnRight()
turtle.turnRight()
for i=1,l-3 do
forward()
end
turtle.turnRight()
for i=1,w-3 do
forward()
end
turtle.turnRight()
end
end
function hollow(l,w,h)
h=h+0
turtle.digDown()
turtle.down()
turtle.digDown()
turtle.down()
restock()
refuel()
turtle.placeUp()
while h>1 do
spiral(l,w,h,2)
h=h-1
returnSpiral(l,w,h)
if h>1 then
turtle.digDown()
turtle.down()
end
end
spiral(l,w,h,1)
returnSpiral(l,w,h)
end
function restock()
if not selectMaterial() then
turtle.digDown()
turtle.select(13)
turtle.placeDown()
turtle.select(1)
for i=1,3 do
turtle.suckDown()
end
turtle.select(13)
turtle.digDown()
selectMaterial()
turtle.placeDown()
end
end
function refuel()
if turtle.getFuelLevel()<100 then
dump()
turtle.select(11)
turtle.digDown()
turtle.placeDown()
turtle.select(1)
turtle.suckDown()
turtle.suckDown()
turtle.suckDown()
turtle.select(11)
turtle.digDown()
restock()
turtle.placeDown()
for i=1,10 do
turtle.select(i)
turtle.refuel()
end
end
end
local tArgs = {...}
local l = tonumber(tArgs[1])
local w = tonumber(tArgs[2])
local h = tonumber(tArgs[3])
refuel()
for i=1,h+1 do
dump()
clearLayer(l,w,h)
if turtle.detectUp() then
turtle.digUp()
detectGravity()
end
turtle.digUp()
turtle.up()
end
buildRoof(l,w,h)
hollow(l,w,h)