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
use crate::SimulationState;

use self::systems::build_pause;
use bevy::prelude::*;
use bevy_lunex::{UiClickEvent, UiSystems};
use systems::{despawn_pause, pause_button_clicked_system};

pub mod components;
mod systems;

pub struct PausePlugin;

impl Plugin for PausePlugin {
    fn build(&self, app: &mut App) {
        app.add_systems(Update, build_pause.before(UiSystems::Compute))
            .add_systems(
                Update,
                (
                    pause_button_clicked_system.run_if(on_event::<UiClickEvent>()),
                    build_pause.before(UiSystems::Compute),
                ),
            )
            .add_systems(OnExit(SimulationState::Paused), despawn_pause);
    }
}