Adding debug enable/disable indicator light
parent
3a9fdf1c05
commit
c08abc5b67
@ -1 +1 @@
|
||||
/nix/store/4qpbdnz6vq95fb63cr54z1vcpvbjkfq1-home-manager-generation
|
||||
/nix/store/3pbri1x71wcd2b1ggysspqsv5mlisl4r-home-manager-generation
|
||||
@ -1,12 +1,50 @@
|
||||
use super::*;
|
||||
|
||||
/// A good starting place for creating a game building on top of the base Bevy app
|
||||
pub struct BaseGamePlugin;
|
||||
pub struct BaseGamePlugin {
|
||||
pub camera: CameraType
|
||||
}
|
||||
|
||||
impl Plugin for BaseGamePlugin {
|
||||
fn build(&self, app: &mut App) {
|
||||
app.add_plugins(DefaultPlugins)
|
||||
.add_plugins(DebuggingPlugin);
|
||||
|
||||
// Add a camera setup system and startup
|
||||
app.add_systems(Startup, match self.camera {
|
||||
CameraType::Camera2d => setup_camera_2d,
|
||||
CameraType::Camera3d => setup_camera_3d,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
/// For selecting the type of camera this game requires
|
||||
pub enum CameraType {
|
||||
Camera2d,
|
||||
Camera3d
|
||||
}
|
||||
|
||||
|
||||
/// System to toggle the visibility of entities based on their state
|
||||
pub fn toggle_state_visibility<S: States + Component>(mut q: Query<(Entity, &mut Visibility, &S)>, curr: Res<State<S>>) {
|
||||
q.iter_mut().for_each(|(e, mut v, s)| {
|
||||
if curr.get() == s {
|
||||
*v = Visibility::Inherited;
|
||||
} else {
|
||||
*v = Visibility::Hidden;
|
||||
}
|
||||
debug!("Changing visibility of {:?} to {:?}", e, *v);
|
||||
});
|
||||
}
|
||||
|
||||
fn setup_camera_2d(
|
||||
mut commands: Commands,
|
||||
) {
|
||||
commands.spawn((Camera { ..default() }, Camera2d));
|
||||
}
|
||||
|
||||
fn setup_camera_3d(
|
||||
mut commands: Commands,
|
||||
) {
|
||||
commands.spawn((Camera { ..default() }, Camera3d { ..default() }));
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue