use bevy::{
prelude::{Camera, MessageReader, Query, Res, Transform},
window::WindowResized,
};
use crate::visualization::simulation_descriptor::SimulationDescriptor;
pub fn camera_system(
mut resize_event: MessageReader<WindowResized>,
sim: Res<SimulationDescriptor>,
mut query: Query<(&Camera, &mut Transform)>,
) {
for e in resize_event.read() {
let Ok((_camera, mut transform)) = query.single_mut() else {
continue;
};
let ui_offset = -sim.ui_width;
let scale_x = sim.width / (e.width + ui_offset);
transform.translation.x = ui_offset * scale_x;
transform.scale.x = scale_x;
transform.scale.y = sim.height / e.height;
}
}