bevy_input_sequence/
action.rs1use bevy::ecs::{
3 prelude::{Commands, Event, Message, MessageWriter},
4 system::In,
5};
6
7pub fn write_message<E: Message + Clone>(event: E) -> impl FnMut(MessageWriter<E>) {
23 move |mut writer: MessageWriter<E>| {
24 writer.write(event.clone());
25 }
26}
27
28#[deprecated(since = "0.9.1", note = "please use `write_message` instead")]
30pub fn send_event<E: Message + Clone>(event: E) -> impl FnMut(MessageWriter<E>) {
31 write_message(event)
32}
33
34pub fn trigger<'a, E>(event: E) -> impl FnMut(Commands)
36where
37 E: Event + Clone,
38 <E as Event>::Trigger<'a>: Default,
39{
40 move |mut commands: Commands| {
41 commands.trigger(event.clone());
42 }
43}
44
45pub fn write_message_with_input<E: Message, Input: 'static, F: FnMut(Input) -> E>(
49 mut f: F,
50) -> impl FnMut(In<Input>, MessageWriter<E>) {
51 move |In(x), mut writer: MessageWriter<E>| {
52 writer.write(f(x));
53 }
54}
55
56#[deprecated(
58 since = "0.9.1",
59 note = "please use `write_message_with_input` instead"
60)]
61pub fn send_event_with_input<E: Message, Input: 'static, F: FnMut(Input) -> E>(
62 f: F,
63) -> impl FnMut(In<Input>, MessageWriter<E>) {
64 write_message_with_input(f)
65}