bevy_codex/pause/
mod.rs

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}