robathome icon

MC wall_dropper

robathome | PRO | 11/04/25 09:18:42 PM UTC | 0 ⭐ | 258 👁️ | Never ⏰ | []
text |

1.74 KB

|

None

|

0 👍

/

0 👎

-- 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