notation_bevy_utils 0.4.2

Fun notation - bevy utils
use crate::prelude::*;
use bevy::prelude::*;

use super::theme::BevyUtilsTheme;

#[derive(Debug, Default)]
pub struct BevyUtilsPlugin;

impl Plugin for BevyUtilsPlugin {
    fn build(&self, app: &mut App) {
        app.init_resource::<BevyUtilsTheme>();
        app.add_system(on_add_layout_data);
        app.add_system(on_layout_data_changed);
    }
}

fn on_add_layout_data(
    mut commands: Commands,
    theme: Res<BevyUtilsTheme>,
    layout_query: Query<(Entity, &LayoutData), Added<LayoutData>>,
) {
    for (entity, layout) in layout_query.iter() {
        layout.create(&mut commands, &theme, entity);
    }
}

fn on_layout_data_changed(
    mut commands: Commands,
    theme: Res<BevyUtilsTheme>,
    layout_query: Query<(Entity, &LayoutData), Changed<LayoutData>>,
) {
    for (entity, layout) in layout_query.iter() {
        layout.update(&mut commands, &theme, entity);
    }
}