toggle AR/hud with TAB key

This commit is contained in:
yuni 2024-03-17 19:03:02 +01:00
parent d58e9ebb1e
commit 68d19c3a6a
2 changed files with 55 additions and 26 deletions

View file

@ -1,3 +1,4 @@
use crate::settings;
use bevy::prelude::*; use bevy::prelude::*;
use bevy::diagnostic::{DiagnosticsStore, FrameTimeDiagnosticsPlugin}; use bevy::diagnostic::{DiagnosticsStore, FrameTimeDiagnosticsPlugin};
@ -5,7 +6,7 @@ pub struct OutFlyHudPlugin;
impl Plugin for OutFlyHudPlugin { impl Plugin for OutFlyHudPlugin {
fn build(&self, app: &mut App) { fn build(&self, app: &mut App) {
app.add_systems(Startup, setup); app.add_systems(Startup, setup);
app.add_systems(Update, update); app.add_systems(Update, (update, handle_input));
app.insert_resource(FPSUpdateTimer(Timer::from_seconds(0.25, TimerMode::Repeating))); app.insert_resource(FPSUpdateTimer(Timer::from_seconds(0.25, TimerMode::Repeating)));
} }
} }
@ -18,33 +19,41 @@ struct FPSUpdateTimer(Timer);
fn setup( fn setup(
mut commands: Commands, mut commands: Commands,
settings: Res<settings::Settings>,
) { ) {
let visibility = if settings.ar_active {
Visibility::Inherited
} else {
Visibility::Hidden
};
let mut bundle_fps = TextBundle::from_sections([
TextSection::new(
"FPS: ",
TextStyle {
//font: asset_server.load("fonts/FiraSans-Bold.ttf"),
font_size: 30.0,
..default()
},
),
TextSection::from_style(if cfg!(feature = "default_font") {
TextStyle {
font_size: 30.0,
color: Color::GOLD,
..default()
}
} else {
// "default_font" feature is unavailable, load a font to use instead.
TextStyle {
//font: asset_server.load("fonts/FiraMono-Medium.ttf"),
font_size: 30.0,
color: Color::GOLD,
..default()
}
}),
]);
bundle_fps.visibility = visibility;
commands.spawn(( commands.spawn((
TextBundle::from_sections([ bundle_fps,
TextSection::new(
"FPS: ",
TextStyle {
//font: asset_server.load("fonts/FiraSans-Bold.ttf"),
font_size: 30.0,
..default()
},
),
TextSection::from_style(if cfg!(feature = "default_font") {
TextStyle {
font_size: 30.0,
color: Color::GOLD,
..default()
}
} else {
// "default_font" feature is unavailable, load a font to use instead.
TextStyle {
//font: asset_server.load("fonts/FiraMono-Medium.ttf"),
font_size: 30.0,
color: Color::GOLD,
..default()
}
}),
]),
FpsText, FpsText,
)); ));
} }
@ -66,3 +75,19 @@ fn update(
} }
} }
} }
fn handle_input(
keyboard_input: Res<ButtonInput<KeyCode>>,
settings: Res<settings::Settings>,
mut query: Query<&mut Visibility, With<FpsText>>,
) {
if keyboard_input.just_pressed(settings.key_togglehud) {
for mut vis in &mut query {
if *vis == Visibility::Inherited {
*vis = Visibility::Hidden;
} else {
*vis = Visibility::Inherited;
}
}
}
}

View file

@ -6,6 +6,8 @@ pub struct Settings {
pub mute_music: bool, pub mute_music: bool,
pub volume_sfx: u8, pub volume_sfx: u8,
pub volume_music: u8, pub volume_music: u8,
pub key_togglehud: KeyCode,
pub ar_active: bool,
} }
impl Default for Settings { impl Default for Settings {
@ -15,6 +17,8 @@ impl Default for Settings {
mute_music: false, mute_music: false,
volume_sfx: 100, volume_sfx: 100,
volume_music: 100, volume_music: 100,
key_togglehud: KeyCode::Tab,
ar_active: false,
} }
} }
} }