1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
use bevy::prelude::*;
use bevy_lunex::{UiDebugPlugin, UiGenericPlugin, UiSystems};
use components::PanelUi;
use systems::{build_button_panel, build_status_bar_panel};

use crate::resources::CodexSettings;

pub mod components;
pub mod styles;
pub mod systems;

#[derive(Clone)]
pub struct PanelPlugin;

impl Plugin for PanelPlugin {
    fn build(&self, app: &mut App) {
        app.add_plugins(UiGenericPlugin::<PanelUi>::new());
        if app.world().resource::<CodexSettings>().debug {
            app.add_plugins(UiDebugPlugin::<PanelUi>::new());
        }
        app.add_systems(
            Update,
            (
                build_status_bar_panel,
                build_button_panel.before(UiSystems::Compute),
            ),
        );
    }
}