-- stair_or_turn_stone_bricks.lua
-- Loop:
-- - If no block ahead: place STONE BRICKS below, move forward, continue.
-- - If block ahead: place STONE BRICKS below, move up, if block ahead then turn 180°, place STONE BRICKS, continue; else stop.
local function selectStoneBricks()
for s = 1, 16 do
local d = turtle.getItemDetail(s)
if d and (d.name == "minecraft:stone_bricks" or (d.displayName and d.displayName:lower() == "stone bricks")) then
turtle.select(s)
return true
end
end
return false
end
local function placeStoneBricksDown()
if not selectStoneBricks() then
print("Out of stone bricks. Stopping.")
return false
end
if not turtle.placeDown() then
-- If a block is already below, that is fine.
if not turtle.detectDown() then
print("Failed to place stone bricks below. Stopping.")
return false
end
end
return true
end
while true do
if not turtle.detect() then
-- No block ahead: drop bricks below, step forward
if not placeStoneBricksDown() then break end
if not turtle.forward() then
print("Blocked while moving forward. Stopping.")
break
end
else
-- Block ahead: drop bricks below, go up
if not placeStoneBricksDown() then break end
if not turtle.up() then
print("Blocked above. Stopping.")
break
end
if turtle.detect() then
-- Block ahead after moving up: turn around, drop bricks, continue
turtle.turnLeft(); turtle.turnLeft()
if not placeStoneBricksDown() then break end
-- continue loop
else
-- No block ahead after moving up: end
print("Open path found after climbing. Stopping.")
break
end
end
end
print("Done.")
Comments