Skip to main content

subtr_actor/stats/calculators/
backboard.rs

1use super::*;
2
3/// Derives backboard-play stats from detected backboard bounces.
4#[derive(Debug, Clone, Default)]
5pub struct BackboardCalculator {
6    events: EventStream<BackboardBounceEvent>,
7}
8
9impl BackboardCalculator {
10    pub fn new() -> Self {
11        Self::default()
12    }
13
14    pub fn events(&self) -> &[BackboardBounceEvent] {
15        self.events.all()
16    }
17
18    pub fn new_events(&self) -> &[BackboardBounceEvent] {
19        self.events.new_events()
20    }
21
22    pub fn update(
23        &mut self,
24        _frame: &FrameInfo,
25        backboard_bounce_state: &BackboardBounceState,
26    ) -> SubtrActorResult<()> {
27        self.events.begin_update();
28        self.events
29            .extend(backboard_bounce_state.bounce_events.iter().cloned());
30        Ok(())
31    }
32}