bevy_input_sequence/
action.rs1use bevy::ecs::{
3 prelude::{Commands, Event, Message, MessageWriter},
4 system::In,
5};
6
7pub fn send_event<E: Message + Clone>(event: E) -> impl FnMut(MessageWriter<E>) {
23 move |mut writer: MessageWriter<E>| {
24 writer.write(event.clone());
25 }
26}
27
28pub fn trigger<'a, E>(event: E) -> impl FnMut(Commands)
30where
31 E: Event + Clone,
32 <E as Event>::Trigger<'a>: Default,
33{
34 move |mut commands: Commands| {
35 commands.trigger(event.clone());
36 }
37}
38
39pub fn send_event_with_input<E: Message, Input: 'static, F: FnMut(Input) -> E>(
43 mut f: F,
44) -> impl FnMut(In<Input>, MessageWriter<E>) {
45 move |In(x), mut writer: MessageWriter<E>| {
46 writer.write(f(x));
47 }
48}