bevy-hara-utils 0.1.6

Opinionated set of utilities
1
2
3
4
5
6
7
8
9
10
11
12
13
use bevy::{prelude::*, ui::InteractionDisabled};

pub fn on_click_send_message<M: Message + Clone>(message: M) -> impl Scene {
    on(
        move |trigger: On<Pointer<Click>>,
              mut writer: MessageWriter<M>,
              disabled: Query<Has<InteractionDisabled>>| {
            if disabled.get(trigger.entity).ok().is_none_or(|value| !value) {
                writer.write(message.clone());
            }
        },
    )
}