diff --git a/examples/Cargo.toml b/examples/Cargo.toml index 884cce19..e18f4cd3 100644 --- a/examples/Cargo.toml +++ b/examples/Cargo.toml @@ -20,6 +20,17 @@ bevy_utilities = { path = "bevy_utilities" } building-blocks = { path = "..", features = ["glam", "mesh", "sdfu"] } utilities = { path = "../crates/utilities", features = ["simdnoise"]} +[dependencies.bevy] +version = "0.5" +# git = "https://github.com/bevyengine/bevy" +# rev = "94c41840" +# path = "../../../bevy" +default-features = false +features = ["bevy_wgpu", "bevy_winit", "render", "png", "x11"] + +[dependencies] +bevy-inspector-egui = "0.6" + [[example]] name = "mesh_showcase" path = "mesh_showcase/mesh_showcase.rs" diff --git a/examples/lod_terrain/lod_terrain.rs b/examples/lod_terrain/lod_terrain.rs index e6725f9b..f2ac9b7c 100644 --- a/examples/lod_terrain/lod_terrain.rs +++ b/examples/lod_terrain/lod_terrain.rs @@ -12,8 +12,10 @@ use voxel_map::{MapConfig, VoxelMap}; use building_blocks::core::prelude::*; +use bevy_inspector_egui::{Inspectable, InspectorPlugin}; use bevy_utilities::{ bevy::{ + diagnostic::{Diagnostics, FrameTimeDiagnosticsPlugin}, pbr::AmbientLight, prelude::*, render::camera::PerspectiveProjection, @@ -69,12 +71,45 @@ fn run_example() { .add_plugin(WireframePlugin) .add_plugin(LookTransformPlugin) .add_plugin(FpsCameraPlugin) + .add_plugin(FrameTimeDiagnosticsPlugin::default()) + .add_plugin(InspectorPlugin::::new()) .add_startup_system(setup::.system()) .add_system(level_of_detail_system::.system()) .add_system(mesh_generator_system::.system()) + .add_system(movement_sensitivity.system()) + .add_system(diagnostics.system()) .run(); } +#[derive(Inspectable, Default)] +pub struct DiagnosticsInspectable { + fps: f64, +} + +fn diagnostics( + diagnostics: Res, + mut diagnostics_inspectable: ResMut, +) { + if let Some(diagnostic) = diagnostics.get(FrameTimeDiagnosticsPlugin::FPS) { + if let Some(value) = diagnostic.value() { + diagnostics_inspectable.fps = value; + } + } +} + +fn movement_sensitivity( + keyboard: Res>, + mut controllers: Query<&mut FpsCameraController>, +) { + if let Ok(mut controller) = controllers.single_mut() { + if keyboard.pressed(KeyCode::LControl) { + controller.translate_sensitivity = 5.; + } else { + controller.translate_sensitivity = 0.5; + } + } +} + fn setup( map_config: Res, mut commands: Commands,