bevy
bevy copied to clipboard
Add some missing reflect attributes
Objective
- Some types are missing reflection attributes, which means we can't use them in scene serialization etc.
- Effected types
BorderRadiusAnimationTransitionsOnAddOnInsertOnRemove
- My use-case for
OnAddetc to derive reflect is 'Serializable Observer Components'. Add the component, save the scene, then the observer is re-added on scene load.
#[derive(Reflect)]
struct MySerializeableObserver<T: Event>(#[reflect(ignore)]PhantomData<T>);
impl<T: Event> Component for MySerializeableObserver<T> {
const STORAGE_TYPE: StorageType = StorageType::Table;
fn register_component_hooks(hooks: &mut ComponentHooks) {
hooks.on_add(|mut world, entity, _| {
world
.commands()
.entity(entity)
.observe(|_trigger: Trigger<T>| {
println!("it triggered etc.");
});
});
}
}
Solution
- Add the missing traits