use carla::client::{ActorBase, Client};
fn main() -> Result<(), Box<dyn std::error::Error>> {
println!("Connecting to CARLA simulator...");
let client = Client::connect("localhost", 2000, None)?;
println!("Connected!");
println!("\nGetting current world...");
let mut world = client.world()?;
println!("World ready!");
let blueprint_library = world.blueprint_library()?;
let walker_bp = blueprint_library
.filter("walker.pedestrian.*")?
.get(0)?
.expect("Failed to find walker blueprint");
println!("Found blueprint: {}", walker_bp.id());
let spawn_points = world.map()?.recommended_spawn_points()?;
println!("Available spawn points: {}", spawn_points.len());
let spawn_point = spawn_points.get(0).expect("No spawn points available");
println!("Spawning walker at spawn point 0...");
let walker = world
.spawn_actor(&walker_bp, spawn_point)
.expect("Failed to spawn walker");
println!("✓ Walker spawned successfully!");
println!(" Type: {}", walker.type_id());
println!(" ID: {}", walker.id());
println!(" Alive: {}", walker.is_alive()?);
let location = walker.location()?;
println!(
" Location: x={:.2}, y={:.2}, z={:.2}",
location.x, location.y, location.z
);
println!("\nWalker will remain in the simulation.");
println!("Note: Walker has no AI controller and won't move automatically.");
println!("Use walker_control example to control walker movement.");
Ok(())
}