From 45639fd0f3fcb7aef950da44ebf5e7625c10c48f Mon Sep 17 00:00:00 2001 From: Franklin Date: Tue, 7 Nov 2023 12:57:27 -0400 Subject: [PATCH] Added fps counter & Settings screen triggered by ESC --- Cargo.lock | 43 ++++++++---------- Cargo.toml | 4 +- src/logic/core/player/camera_player_sync.rs | 15 +++++-- src/main.rs | 7 +-- src/ui/editor/mod.rs | 2 + src/ui/editor/plugin.rs | 9 ++++ src/ui/game/fps_counter.rs | 48 +++++++++++++++++++++ src/ui/game/mod.rs | 5 +++ src/ui/game/plugin.rs | 20 +++++++++ src/ui/game/settings.rs | 26 +++++++++++ src/ui/game/settings_screen.rs | 41 ++++++++++++++++++ src/ui/mod.rs | 2 + 12 files changed, 188 insertions(+), 34 deletions(-) create mode 100644 src/ui/editor/mod.rs create mode 100644 src/ui/editor/plugin.rs create mode 100644 src/ui/game/fps_counter.rs create mode 100644 src/ui/game/mod.rs create mode 100644 src/ui/game/plugin.rs create mode 100644 src/ui/game/settings.rs create mode 100644 src/ui/game/settings_screen.rs create mode 100644 src/ui/mod.rs diff --git a/Cargo.lock b/Cargo.lock index 1af102c..0b7517d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -274,12 +274,6 @@ version = "4.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ecc7ab41815b3c653ccd2978ec3255c81349336702dfdf62ee6f7069b12a3aae" -[[package]] -name = "atomic_refcell" -version = "0.1.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76f2bfe491d41d45507b8431da8274f7feeca64a49e86d980eed2937ec2ff020" - [[package]] name = "autocfg" version = "1.1.0" @@ -325,9 +319,9 @@ dependencies = [ [[package]] name = "bevy-inspector-egui" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd2523be5ae7d482e5435dc75509b80a320989175768fb4b711603b9d2ab8fff" +checksum = "452f1258251b85c06c5bc9df9ea994d8f3b8c0696f346d43878eec52fce8a09c" dependencies = [ "bevy-inspector-egui-derive", "bevy_app", @@ -353,9 +347,9 @@ dependencies = [ [[package]] name = "bevy-inspector-egui-derive" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0edba455601861b8e8b76128ae5d46dd968114edde60f0ac3d2c21535a947548" +checksum = "7a60a8d711fa10879a4e7d10127077505ba9890cead8d1f5ecedc64d14b22b6c" dependencies = [ "proc-macro2", "quote", @@ -564,9 +558,9 @@ dependencies = [ [[package]] name = "bevy_egui" -version = "0.21.0" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a73a93a8cf6b8c744281d1b88f5b0fa278d608e909af9bbf4eb491a7cb1ad2c" +checksum = "fb1c1f6ad293c60fd8559c4502cda5e832e92b0e0f3d994929b33f24d4352d70" dependencies = [ "arboard", "bevy", @@ -1587,18 +1581,18 @@ checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650" [[package]] name = "ecolor" -version = "0.22.0" +version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e479a7fa3f23d4e794f8b2f8b3568dd4e47886ad1b12c9c095e141cb591eb63" +checksum = "cfdf4e52dbbb615cfd30cf5a5265335c217b5fd8d669593cea74a517d9c605af" dependencies = [ "bytemuck", ] [[package]] name = "egui" -version = "0.22.0" +version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3aef8ec3ae1b772f340170c65bf27d5b8c28f543a0116c844d2ac08d01123e7" +checksum = "8bd69fed5fcf4fbb8225b24e80ea6193b61e17a625db105ef0c4d71dde6eb8b7" dependencies = [ "ahash 0.8.3", "epaint", @@ -1613,9 +1607,9 @@ checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" [[package]] name = "emath" -version = "0.22.0" +version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3857d743a6e0741cdd60b622a74c7a36ea75f5f8f11b793b41d905d2c9721a4b" +checksum = "1ef2b29de53074e575c18b694167ccbe6e5191f7b25fe65175a0d905a32eeec0" dependencies = [ "bytemuck", ] @@ -1654,13 +1648,12 @@ dependencies = [ [[package]] name = "epaint" -version = "0.22.0" +version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09333964d4d57f40a85338ba3ca5ed4716070ab184dcfed966b35491c5c64f3b" +checksum = "58067b840d009143934d91d8dcb8ded054d8301d7c11a517ace0a99bb1e1595e" dependencies = [ "ab_glyph", "ahash 0.8.3", - "atomic_refcell", "bytemuck", "ecolor", "emath", @@ -3570,9 +3563,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "toml_datetime" -version = "0.6.3" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" +checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1" [[package]] name = "toml_edit" @@ -4268,9 +4261,9 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "winit" -version = "0.28.6" +version = "0.28.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "866db3f712fffba75d31bf0cdecf357c8aeafd158c5b7ab51dba2a2b2d47f196" +checksum = "9596d90b45384f5281384ab204224876e8e8bf7d58366d9b795ad99aa9894b94" dependencies = [ "android-activity", "bitflags 1.3.2", diff --git a/Cargo.toml b/Cargo.toml index 30c5f6b..90f938e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -15,7 +15,7 @@ opt-level = 3 opt-level = 3 [dependencies] -bevy = { version = "0.11.3", features = ["dynamic_linking"]} -bevy-inspector-egui = "0.19.0" +bevy = { version = "0.11", features = ["dynamic_linking"]} +bevy-inspector-egui = "0.20.0" bevy_rapier3d = { version = "0.22.0", features = ["debug-render-3d"] } bevy_hanabi = { version = "0.7", default-features = false, features = [ "3d" ] } \ No newline at end of file diff --git a/src/logic/core/player/camera_player_sync.rs b/src/logic/core/player/camera_player_sync.rs index d5e890d..fb50424 100644 --- a/src/logic/core/player/camera_player_sync.rs +++ b/src/logic/core/player/camera_player_sync.rs @@ -4,7 +4,7 @@ use bevy::{input::mouse::MouseMotion, prelude::*, window::CursorGrabMode}; use crate::{ comps::core::markers::{camera::MainCamera, player::Player}, constants::player_values::{PLAYER_CAMERA_HEIGHT, PLAYER_CROUCH_HEIGHT, PLAYER_CROUCH_TIME_S, PLAYER_LEAN_TIME, PLAYER_LEAN_ANGLE}, - utils::rad_deg::radians_from_degrees, + utils::rad_deg::radians_from_degrees, ui::game::settings::SettingsScreenUIConfiguration, }; use super::player_movement::PlayerLinearXZState; @@ -74,6 +74,7 @@ pub fn follow_cursor_with_camera( keyboard_input: Res>, btn: Res>, time: Res