use crate::z_ignore_test_common::*;
use flecs_ecs::prelude::*;
#[derive(Debug, Component, Clone)]
struct TirePressure {
value: f32,
}
fn main() {
let world = World::new();
let wheel = world.prefab_named("Wheel");
wheel.set(TirePressure { value: 32.0 });
let car = world.prefab_named("Car");
car.run_in_scope(|| {
world.prefab_named("FrontLeft").is_a(wheel);
world.prefab_named("FrontRight").is_a(wheel);
world.prefab_named("BackLeft").is_a(wheel);
world.prefab_named("BackRight").is_a(wheel);
});
let inst_car = world.entity_named("my_car");
inst_car.is_a(car);
if let Some(inst) = inst_car.try_lookup_recursive("FrontLeft") {
println!("{:?}", inst.archetype());
inst.try_get::<Option<&TirePressure>>(|p| {
if let Some(p) = p {
println!("pressure: {}", p.value);
}
});
} else {
println!("entity lookup failed");
}
}
#[cfg(feature = "flecs_nightly_tests")]
#[test]
fn test() {
let output_capture = OutputCapture::capture().unwrap();
main();
output_capture.test("prefab_nested".to_string());
}