1use crate::SimulationState;
2
3use self::systems::build_pause;
4use bevy::prelude::*;
5use bevy_lunex::{UiClickEvent, UiSystems};
6use systems::{despawn_pause, pause_button_clicked_system};
7
8pub mod components;
9mod systems;
10
11pub struct PausePlugin;
12
13impl Plugin for PausePlugin {
14 fn build(&self, app: &mut App) {
15 app.add_systems(Update, build_pause.before(UiSystems::Compute))
16 .add_systems(
17 Update,
18 (
19 pause_button_clicked_system.run_if(on_event::<UiClickEvent>()),
20 build_pause.before(UiSystems::Compute),
21 ),
22 )
23 .add_systems(OnExit(SimulationState::Paused), despawn_pause);
24 }
25}