bevy/crates
Carter Anderson 4d2e30406a AnimationEvent -> Event and other improvements (#16440)
Needing to derive `AnimationEvent` for `Event` is unnecessary, and the
trigger logic coupled to it feels like we're coupling "event producer"
logic with the event itself, which feels wrong. It also comes with a
bunch of complexity, which is again unnecessary. We can have the
flexibility of "custom animation event trigger logic" without this
coupling and complexity.

The current `animation_events` example is also needlessly complicated,
due to it needing to work around system ordering issues. The docs
describing it are also slightly wrong. We can make this all a non-issue
by solving the underlying ordering problem.

Related to this, we use the `bevy_animation::Animation` system set to
solve PostUpdate animation order-of-operations issues. If we move this
to bevy_app as part of our "core schedule", we can cut out needless
`bevy_animation` crate dependencies in these instances.

- Remove `AnimationEvent`, the derive, and all other infrastructure
associated with it (such as the `bevy_animation/derive` crate)
- Replace all instances of `AnimationEvent` traits with `Event + Clone`
- Store and use functions for custom animation trigger logic (ex:
`clip.add_event_fn()`). For "normal" cases users dont need to think
about this and should use the simpler `clip.add_event()`
- Run the `Animation` system set _before_ updating text
- Move `bevy_animation::Animation` to `bevy_app::Animation`. Remove
unnecessary `bevy_animation` dependency from `bevy_ui`
- Adjust `animation_events` example to use the simpler `clip.add_event`
API, as the workarounds are no longer necessary

This is polishing work that will land in 0.15, and I think it is simple
enough and valuable enough to land in 0.15 with it, in the interest of
making the feature as compelling as possible.
2024-11-22 21:20:11 +01:00
..
bevy_a11y Remove accesskit re-export from bevy_a11y (#16257) 2024-11-11 22:14:07 +01:00
bevy_animation AnimationEvent -> Event and other improvements (#16440) 2024-11-22 21:20:11 +01:00
bevy_app AnimationEvent -> Event and other improvements (#16440) 2024-11-22 21:20:11 +01:00
bevy_asset Release 0.15.0-rc.3 2024-11-05 23:26:31 +01:00
bevy_audio AudioPlayer::new() (#16287) 2024-11-11 22:08:10 +01:00
bevy_color Release 0.15.0-rc.3 2024-11-05 23:26:31 +01:00
bevy_core Release 0.15.0-rc.3 2024-11-05 23:26:31 +01:00
bevy_core_pipeline Fix missing import (#16337) 2024-11-11 22:18:05 +01:00
bevy_derive Release 0.15.0-rc.3 2024-11-05 23:26:31 +01:00
bevy_dev_tools Headless by features (#16401) 2024-11-17 18:39:27 +01:00
bevy_diagnostic Release 0.15.0-rc.3 2024-11-05 23:26:31 +01:00
bevy_dylib Release 0.15.0-rc.3 2024-11-05 23:26:31 +01:00
bevy_ecs Add a note to the on_unimplemented message for QueryData recommending &T and &mut T. (#16449) 2024-11-22 21:16:58 +01:00
bevy_encase_derive Release 0.15.0-rc.3 2024-11-05 23:26:31 +01:00
bevy_gilrs Release 0.15.0-rc.3 2024-11-05 23:26:31 +01:00
bevy_gizmos Use normal constructors for EasingCurve, FunctionCurve, ConstantCurve (#16367) 2024-11-16 15:30:10 +01:00
bevy_gltf Use normal constructors for EasingCurve, FunctionCurve, ConstantCurve (#16367) 2024-11-16 15:30:10 +01:00
bevy_hierarchy Fix bevy_hierarchy failing to compile without reflect feature (#16428) 2024-11-19 22:10:25 +01:00
bevy_image Don't reëxport bevy_image from bevy_render (#16163) 2024-11-11 22:16:38 +01:00
bevy_input Revert most of #16222 and add gamepad accessors (#16425) 2024-11-19 22:10:24 +01:00
bevy_internal Fix detailed_trace! (#16452) 2024-11-22 21:16:58 +01:00
bevy_log Release 0.15.0-rc.3 2024-11-05 23:26:31 +01:00
bevy_macro_utils Release 0.15.0-rc.3 2024-11-05 23:26:31 +01:00
bevy_math Use normal constructors for EasingCurve, FunctionCurve, ConstantCurve (#16367) 2024-11-16 15:30:10 +01:00
bevy_mesh Release 0.15.0-rc.3 2024-11-05 23:26:31 +01:00
bevy_mikktspace Release 0.15.0-rc.3 2024-11-05 23:26:31 +01:00
bevy_pbr Do not re-check visibility or re-render shadow maps for point and spot lights for each view (#15156) 2024-11-17 19:06:11 +01:00
bevy_picking Picking out order (#16231) 2024-11-16 15:38:54 +01:00
bevy_ptr Reduce compile time of bevy_ptr::OwnedPtr::make function (#15644) 2024-11-17 19:06:07 +01:00
bevy_reflect bevy_reflect: Add ReflectSerializerProcessor (#15548) 2024-11-17 19:06:13 +01:00
bevy_remote Expose BRP system scheduling and add system set (#16400) 2024-11-17 18:39:34 +01:00
bevy_render Fix detailed_trace! (#16452) 2024-11-22 21:16:58 +01:00
bevy_scene Release 0.15.0-rc.3 2024-11-05 23:26:31 +01:00
bevy_sprite Fix sprite picking backend not considering the viewport of the camera. (#16386) 2024-11-16 15:31:38 +01:00
bevy_state Release 0.15.0-rc.3 2024-11-05 23:26:31 +01:00
bevy_tasks Release 0.15.0-rc.3 2024-11-05 23:26:31 +01:00
bevy_text AnimationEvent -> Event and other improvements (#16440) 2024-11-22 21:20:11 +01:00
bevy_time Release 0.15.0-rc.3 2024-11-05 23:26:31 +01:00
bevy_transform Release 0.15.0-rc.3 2024-11-05 23:26:31 +01:00
bevy_ui AnimationEvent -> Event and other improvements (#16440) 2024-11-22 21:20:11 +01:00
bevy_utils Fix detailed_trace! (#16452) 2024-11-22 21:16:58 +01:00
bevy_window Release 0.15.0-rc.3 2024-11-05 23:26:31 +01:00
bevy_winit Remove accesskit re-export from bevy_a11y (#16257) 2024-11-11 22:14:07 +01:00