From 9d5cb8d2432865e23921df61557adcbb1e05e7c2 Mon Sep 17 00:00:00 2001 From: Joey Pollack Date: Wed, 2 Aug 2023 19:04:13 -0400 Subject: [PATCH] Adds grid auto resizing when window is resized --- src/main.rs | 2 +- src/world.rs | 25 ++++++++++++++++++++++--- 2 files changed, 23 insertions(+), 4 deletions(-) diff --git a/src/main.rs b/src/main.rs index 5df37b1..914e9af 100644 --- a/src/main.rs +++ b/src/main.rs @@ -60,7 +60,7 @@ fn main() WorldPlugin { grid_width: 100., grid_height: 100., - top_margin: 0.0 + top_margin: 50.0 }, ShapePlugin )) diff --git a/src/world.rs b/src/world.rs index ae51901..33b8e38 100644 --- a/src/world.rs +++ b/src/world.rs @@ -1,9 +1,9 @@ -use bevy::prelude::*; +use bevy::{prelude::*, window::WindowResized}; use bevy_prototype_lyon::prelude::*; #[derive(Component)] -struct IsLine; +struct GridLine; #[derive(Resource)] struct WorldPluginState @@ -41,6 +41,7 @@ impl Plugin for WorldPlugin grid_height: self.grid_height, top_margin: self.top_margin, }) + .add_systems(Update, on_resize) .add_systems(Startup, setup); } } @@ -80,6 +81,24 @@ fn add_line(commands: &mut Commands, point_a: Vec2, point_b: Vec2, line_size: f3 ..default() }, Stroke::new(Color::BLACK, line_size), - IsLine, + GridLine, )); +} + +fn on_resize(mut commands: Commands, mut settings: ResMut, mut resize_reader: EventReader, mut grid: Query<(Entity, &GridLine)> ) +{ + for e in resize_reader.iter() + { + // When resolution is being changed + // info!("new window size: {:.1} x {:.1}", e.width, e.height); + settings.window_width = e.width; + settings.window_height = e.height; + } + + for (entity, line) in &grid + { + commands.entity(entity).despawn(); + } + + setup(commands, settings.into()); } \ No newline at end of file