diff --git a/src/navigation.rs b/src/navigation.rs index 33d3eef..e7cab5e 100644 --- a/src/navigation.rs +++ b/src/navigation.rs @@ -6,6 +6,7 @@ use bevy_rapier2d::prelude::*; use bevy_tts::Tts; use crate::{ + commands::RunIfExistsExt, core::{Angle, CardinalDirection, Player}, error::error_handler, exploration::{ExplorationFocused, Exploring}, @@ -281,6 +282,14 @@ fn update_direction( } } +fn remove_direction(mut commands: Commands, removed: RemovedComponents) { + for entity in removed.iter() { + commands.run_if_exists(entity, |mut entity| { + entity.remove::(); + }); + } +} + fn speak_direction( mut tts: ResMut, player: Query< @@ -385,6 +394,7 @@ where .register_type::() .register_type::() .add_system(update_direction.before(SNAP)) + .add_system_to_stage(CoreStage::PostUpdate, remove_direction) .add_system(speak_direction.chain(error_handler)) .add_system(add_speed) .add_system_to_stage(CoreStage::PostUpdate, remove_speed);