diff --git a/src/camera.rs b/src/camera.rs index ae0555a..5939d4b 100644 --- a/src/camera.rs +++ b/src/camera.rs @@ -310,6 +310,13 @@ pub fn update_map_camera( } else { (player_entity, player_trans) }; + + // Don't jump around when deselecting. + if mapcam.center_on_entity != Some(target_entity) && q_target.is_empty() { + mapcam.offset_x = -player_trans.translation.x as f64; + mapcam.offset_z = -player_trans.translation.z as f64; + } + mapcam.center_on_entity = Some(target_entity); // Update map grid @@ -375,6 +382,8 @@ pub fn update_map_camera( mapcam.target_zoom_level *= target_trans.scale.x as f64 * factor; mapcam.zoom_level *= target_trans.scale.x as f64 * factor; mapcam.initialized = true; + mapcam.offset_x = 0.0; + mapcam.offset_z = 0.0; } let mut change_zoom: f64 = 0.0; if keyboard_input.pressed(settings.key_map_zoom_out) {