diff --git a/src/features/grid/utils.rs b/src/features/grid/utils.rs index 4165d82..95c722e 100644 --- a/src/features/grid/utils.rs +++ b/src/features/grid/utils.rs @@ -1,5 +1,3 @@ -use bevy::window::PrimaryWindow; - use super::errors::GridError; use crate::prelude::*; @@ -45,29 +43,3 @@ pub fn grid_to_world_coords( z.unwrap_or(0.0), ) } - -pub fn ui_blocks( - window: Single<&Window, With>, - cursor_pos: Vec2, - ui_query: Query<(&ComputedNode, &GlobalTransform), With>, -) -> bool { - let ui_point = Vec2::new( - cursor_pos.x - window.width() / 2.0, - (window.height() / 2.0) - cursor_pos.y, - ); - - dbg!(ui_point); - - ui_query.iter().any(|(node, global_transform)| { - dbg!(node, global_transform); - - let size = node.size(); - let center = global_transform.translation().truncate(); - let half_size = size / 2.0; - - let min = center - half_size; - let max = center + half_size; - - ui_point.x >= min.x && ui_point.x <= max.x && ui_point.y >= min.y && ui_point.y <= max.y - }) -} diff --git a/src/features/input/mod.rs b/src/features/input/mod.rs index 9b95b8a..58f4846 100644 --- a/src/features/input/mod.rs +++ b/src/features/input/mod.rs @@ -1,5 +1,4 @@ use crate::features::{ - grid::utils::ui_blocks, phase::messages::{NextPhaseMessage, PhaseTimerPauseMessage}, pom::messages::InvalidMoveMessage, }; diff --git a/src/features/ui/mod.rs b/src/features/ui/mod.rs index 6d42304..677f301 100644 --- a/src/features/ui/mod.rs +++ b/src/features/ui/mod.rs @@ -4,6 +4,7 @@ use bevy::{input::mouse::*, picking::hover::HoverMap}; pub mod components; pub mod consts; pub mod ui; +pub mod utils; pub struct UiPlugin; diff --git a/src/features/ui/ui/button.rs b/src/features/ui/ui/button.rs index 11ae87e..7dac536 100644 --- a/src/features/ui/ui/button.rs +++ b/src/features/ui/ui/button.rs @@ -1,3 +1,5 @@ +use bevy::window::PrimaryWindow; + use crate::prelude::*; pub fn button( diff --git a/src/features/ui/utils.rs b/src/features/ui/utils.rs new file mode 100644 index 0000000..6678979 --- /dev/null +++ b/src/features/ui/utils.rs @@ -0,0 +1,28 @@ +use crate::prelude::*; +use bevy::window::PrimaryWindow; + +pub fn ui_blocks( + window: Single<&Window, With>, + cursor_pos: Vec2, + ui_query: Query<(&ComputedNode, &GlobalTransform), With>, +) -> bool { + let ui_point = Vec2::new( + cursor_pos.x - window.width() / 2.0, + (window.height() / 2.0) - cursor_pos.y, + ); + + dbg!(ui_point); + + ui_query.iter().any(|(node, global_transform)| { + dbg!(node, global_transform); + + let size = node.size(); + let center = global_transform.translation().truncate(); + let half_size = size / 2.0; + + let min = center - half_size; + let max = center + half_size; + + ui_point.x >= min.x && ui_point.x <= max.x && ui_point.y >= min.y && ui_point.y <= max.y + }) +} diff --git a/src/prelude.rs b/src/prelude.rs index d5db937..ccc3a7d 100644 --- a/src/prelude.rs +++ b/src/prelude.rs @@ -14,7 +14,7 @@ pub use crate::features::{ messages::{InteractStartMessage, MoveMessage}, }, savegame::components::SavegamePath, - ui::{components::ButtonVariant, consts::*, ui::*}, + ui::{components::ButtonVariant, consts::*, ui::*, utils::*}, }; pub use crate::utils::path::get_internal_path; pub use bevy::prelude::*;