From 28765e173a6135c7a85f9dada4ddba8996bedbfd Mon Sep 17 00:00:00 2001 From: Franklin Date: Wed, 8 Nov 2023 11:36:04 -0400 Subject: [PATCH] Debug rect --- src/ui/editor/camera.rs | 31 +++++++++++++++++++++++++++++++ src/ui/editor/mod.rs | 3 ++- src/ui/editor/panels.rs | 5 +---- src/ui/editor/plugin.rs | 3 ++- 4 files changed, 36 insertions(+), 6 deletions(-) create mode 100644 src/ui/editor/camera.rs diff --git a/src/ui/editor/camera.rs b/src/ui/editor/camera.rs new file mode 100644 index 0000000..9466047 --- /dev/null +++ b/src/ui/editor/camera.rs @@ -0,0 +1,31 @@ +use bevy::{prelude::*, window::PrimaryWindow, render::camera::Viewport}; +use bevy_inspector_egui::bevy_egui; + +use crate::comps::core::markers::camera::MainCamera; + +pub fn set_camera_viewport( + primary_window: Query<&mut Window, With>, + egui_settings: Res, + mut cameras: Query<&mut Camera, With>, +) { + let Ok(mut cam) = cameras.get_single_mut() else { + return; + }; + + let Ok(window) = primary_window.get_single() else { + return; + }; + + println!("{}, {}", window.width(), window.height()); + + let scale_factor = window.scale_factor() * egui_settings.scale_factor; + + /*let viewport_pos = ui_state.viewport_rect.left_top().to_vec2() * scale_factor as f32; + let viewport_size = ui_state.viewport_rect.size() * scale_factor as f32; + + cam.viewport = Some(Viewport { + physical_position: UVec2::new(viewport_pos.x as u32, viewport_pos.y as u32), + physical_size: UVec2::new(viewport_size.x as u32, viewport_size.y as u32), + depth: 0.0..1.0, + });*/ +} \ No newline at end of file diff --git a/src/ui/editor/mod.rs b/src/ui/editor/mod.rs index 0b8003e..4cf1172 100644 --- a/src/ui/editor/mod.rs +++ b/src/ui/editor/mod.rs @@ -1,4 +1,5 @@ //! Editor UI means everything that won't be in the actual game pub mod plugin; pub mod panels; -pub mod state; \ No newline at end of file +pub mod state; +pub mod camera; \ No newline at end of file diff --git a/src/ui/editor/panels.rs b/src/ui/editor/panels.rs index 426f7f9..649ef54 100644 --- a/src/ui/editor/panels.rs +++ b/src/ui/editor/panels.rs @@ -20,15 +20,13 @@ pub fn editor_ui( .show(egui_context.get_mut(), |ui| { egui::ScrollArea::vertical().show(ui, |ui| { ui.heading("Components Hierarchy"); - bevy_inspector_egui::bevy_inspector::hierarchy::hierarchy_ui( world, ui, &mut selected_entities, ); - + println!("{:#?}", ui.clip_rect()); ui.separator(); - ui.heading("All Resources"); bevy_inspector_egui::bevy_inspector::ui_for_resources(world, ui); ui.allocate_rect(ui.available_rect_before_wrap(), egui::Sense::hover()); @@ -41,7 +39,6 @@ pub fn editor_ui( .show(egui_context.get_mut(), |ui| { egui::ScrollArea::vertical().show(ui, |ui| { ui.heading("Inspector"); - match selected_entities.as_slice() { &[entity] => { bevy_inspector_egui::bevy_inspector::ui_for_entity(world, entity, ui); diff --git a/src/ui/editor/plugin.rs b/src/ui/editor/plugin.rs index c6a60a0..8d97295 100644 --- a/src/ui/editor/plugin.rs +++ b/src/ui/editor/plugin.rs @@ -2,7 +2,7 @@ use bevy::prelude::*; use crate::{logic::core::{guns::{player_firing::PlayerFiringInfo, caliber::Caliber, firearm::Firearm, spray_pattern::FirearmSprayPattern}, player::{player_values_state::PlayerValuesState, camera_player_sync::MouseMovementSettings, player_movement::{PlayerLinearYState, PlayerLinearXZState, PlayerMovementInput}}}, comps::core::markers::{firearm::{FirearmData, MagazineData}, holdable::{HoldableObjectData, InPlayerHands}, player::{PlayerData, Player, PlayerHand}}, scenes::scene1::skybox::Cubemap, setup::{animations::{AllFirearmAnimations, FirearmAnimations}, assets::{GltfAssetType, GltfAssets}, equipment::Equipment, load_state::GameLoadState}}; -use super::{panels::editor_ui, state::EditorUiState}; +use super::{panels::editor_ui, state::EditorUiState, camera::set_camera_viewport}; pub struct MainEditorUiPlugin; @@ -34,5 +34,6 @@ impl Plugin for MainEditorUiPlugin { .register_type::(); app.insert_resource(EditorUiState::new()); app.add_systems(Update, editor_ui); + app.add_systems(PostUpdate, set_camera_viewport); } } \ No newline at end of file