# How to make my turtle stop moving when waiting for building blocks?

3 replies to this topic

### #1ShoeLace1291

• Members
• 8 posts

Posted 20 February 2020 - 06:28 PM

So I am trying to make a script that builds four walls with whatever building blocks are provided. The problem I have with the script right now is that when the turtle's inventory runs out of building blocks, the turtle keeps moving forward along the path. How can I make the turtle stop moving when it runs out of building blocks?

This is my code:
```write("How wide should the room be?")
write("How long should the room be?")
write("How tall should the room be?")

write("Provide fuel and whatever building block you want to use and press enter to continue")

local totalBlocks = ((x*2) + (y*2))*z
local minedBlocks = 0

function go()
if not refuel() then
return
end
if not forward() then
return
end
if not place() then
return
end
minedBlocks = minedBlocks +1
percentComplete = minedBlocks / totalBlocks * 100
if(percentComplete % 5 == 0) then
print(percentComplete.."% Complete")
end
end

function forward()
if not turtle.forward() then
write("Something is in the way!")
return false
end
return true
end

function down()
if not turlte.down() then
write("Something is in the way!")
return false
end
return true
end

function place()
slot = 0
while turtle.placeUp() == false do
slot = slot + 1
if slot == 17 then
print("Waiting for more building blocks...")
return false
end
turtle.select(slot)
end
return true
end

function refuel()
while turtle.getFuelLevel() == 0 do
slot = 0
while(turtle.refuel(1) == false) do
slot = slot + 1
if slot == 17 then
print("Waiting for more fuel...")
return false
end
turtle.select(slot)
end
end
return true
end

write("0% Complete...")

turtle.down()
for h=0,z,1 do
for i=0,1,1 do
for w=0,y,1 do
go()
end
turtle.turnRight()
for l=0,x,1 do
go()
end
turtle.turnRight()
end
turtle.down()
end

print("Construction complete.")```

### #2qwerty

• Members
• 68 posts
• LocationLand of the Pharos

Posted 21 February 2020 - 12:18 PM

add something along the lines of:
```for i=1,16 do
turtle.select(i)
local itemCount = itemCount + turtle.getItemCount(i)
end

if itemCount == 0 then pause
else continue
end
```

Edited by qwerty, 21 February 2020 - 12:18 PM.

### #3Lupus590

• Members
• 2,004 posts
• LocationUK

Posted 23 February 2020 - 02:40 PM

lua doesn't have a continue statement

I would change your place method do that if there are no blocks then it goes into a while true loop which only breaks when there is a turtle_inventory event

### #4qwerty

• Members
• 68 posts
• LocationLand of the Pharos

Posted 24 February 2020 - 09:24 AM

Lupus590, on 23 February 2020 - 02:40 PM, said:

lua doesn't have a continue statement

I know, the "continue" there is just a representation, pseudo code if you will and I speciffically added "along the lines of", implying that that's only a template

#### 1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users