← ClaudeAtlas

rust-bevy-standardslisted

Write idiomatic Rust code for applications that use Bevy Engine. Augments rust-standards skill, does not replace it. Use when writing Rust code for a Bevy application.
kimgoetzke/coding-agent-configs · ★ 3 · AI & Automation · score 76
Install: claude install-skill kimgoetzke/coding-agent-configs
⚠️ Bevy 0.17+ Breaking Changes - Material handles wrapped in `MeshMaterial3d<T>`, not `Handle<T>` - Observer pattern replaces event system (`commands.trigger()`, `add_observer()`) - `Event` split into `Message` (buffered) and `Event` (observers) - `EventWriter`/`EventReader` replaced by `MessageWriter`/`MessageReader` (`message.write()` / `messages.read()`) - Observer trigger API changed: ```rust // Old commands.add_observer(|trigger: Trigger<OnAdd, Player>| { info!("Spawned player {}", trigger.target()); }); // New commands.add_observer(|add: On<Add, Player>| { info!("Spawned player {}", add.entity); }); ``` - Color arithmetic removed; use component extraction instead ⚠️ Bevy 0.18+ Breaking Changes - `RenderTarget` is now a required component on `Camera`, not a `Camera` field: ```rust // Old Camera { target: RenderTarget::Image(handle.into()), ..default() } // New commands.spawn((Camera3d::default(), RenderTarget::Image(handle.into()))); ``` - `BorderRadius` is now a field on `Node`, not a component - `LineHeight` is now a required component on `Text`/`Text2d`/`TextSpan`; removed from `TextFont` - `AmbientLight` resource renamed to `GlobalAmbientLight`; `AmbientLight` is now a component on `Camera` - `clear_children` → `detach_all_children`, `remove_children` → `detach_children`, `remove_child` → `detach_child` (same on `EntityCommands` and `EntityWorldMut`) - `AnimationTarget { id, player }` replaced by separate `AnimationTarget