use bevy::ecs::system::Query;
use crate::accumulative::accumulative_control::AccumulativeControl;
pub trait AccumulativeActionReader<TAction> {
fn read_action_delta(&mut self, action: TAction) -> f32;
}
impl<TContext: Sync + Send + 'static, TAction: Sync + Send + 'static + PartialEq>
AccumulativeActionReader<TAction>
for Query<'_, '_, &mut AccumulativeControl<TContext, TAction>>
{
fn read_action_delta(&mut self, action: TAction) -> f32 {
self.iter_mut()
.find(|c| c.action == action)
.map(|mut a| a.read_delta())
.unwrap_or_default()
}
}