Add the ability to pause singleplayer matches (#68)
Reviewed-on: #68 Co-authored-by: Álex Román Núñez <eirexe@eirteam.moe>
This commit was merged in pull request #68.
This commit is contained in:
+54
-3
@@ -3,7 +3,7 @@ use bevy::prelude::*;
|
||||
use crate::{
|
||||
AppState,
|
||||
match_loading::{MatchConfig, MatchRules},
|
||||
match_runtime::MatchState,
|
||||
match_runtime::{MatchState, PauseState},
|
||||
};
|
||||
|
||||
pub mod battle_ui;
|
||||
@@ -11,6 +11,9 @@ pub mod errors;
|
||||
pub mod fighter_info;
|
||||
pub mod stock_icon;
|
||||
|
||||
#[derive(Component)]
|
||||
pub struct PauseOverlay;
|
||||
|
||||
#[derive(Default)]
|
||||
pub struct InGameUIPlugin;
|
||||
|
||||
@@ -30,8 +33,56 @@ impl Plugin for InGameUIPlugin {
|
||||
} else {
|
||||
false
|
||||
}
|
||||
}),
|
||||
}),
|
||||
),
|
||||
);
|
||||
)
|
||||
.add_systems(Update, sync_pause_overlay);
|
||||
}
|
||||
}
|
||||
|
||||
pub fn sync_pause_overlay(
|
||||
pause: Res<PauseState>,
|
||||
overlay: Query<Entity, With<PauseOverlay>>,
|
||||
mut commands: Commands,
|
||||
) {
|
||||
if !pause.is_changed() {
|
||||
return;
|
||||
}
|
||||
|
||||
if pause.paused {
|
||||
if overlay.is_empty() {
|
||||
commands.spawn((
|
||||
PauseOverlay,
|
||||
Node {
|
||||
position_type: PositionType::Absolute,
|
||||
left: px(0),
|
||||
right: px(0),
|
||||
top: px(0),
|
||||
bottom: px(0),
|
||||
align_items: AlignItems::Center,
|
||||
justify_content: JustifyContent::Center,
|
||||
flex_direction: FlexDirection::Column,
|
||||
..default()
|
||||
},
|
||||
BackgroundColor(Color::srgba(0.0, 0.0, 0.0, 0.7)),
|
||||
ZIndex(100),
|
||||
children![
|
||||
(
|
||||
Text::new("Paused"),
|
||||
TextFont::from_font_size(crate::menus::style::H1_SIZE as f32),
|
||||
TextColor(Color::WHITE),
|
||||
),
|
||||
(
|
||||
Text::new("Press Esc or Start to resume"),
|
||||
TextFont::from_font_size(crate::menus::style::TEXT_SIZE as f32),
|
||||
TextColor(Color::WHITE),
|
||||
),
|
||||
],
|
||||
));
|
||||
}
|
||||
} else {
|
||||
for entity in &overlay {
|
||||
commands.entity(entity).despawn();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user