fn traverse_points<S: State, F>( next_point: F, speed_factor: f32, ) -> impl Action<S>where F: FnMut(&mut NpcCtx<'_>) -> Option<Vec2<f32>> + Clone + Send + Sync + 'static,