Skip to main content

subtr_actor/stats/analysis_graph/nodes/
backboard_bounce.rs

1use super::*;
2use crate::stats::calculators::*;
3use crate::*;
4
5/// Tracks ball bounces off the backboard from ball/player/touch state; exposes them as shared state.
6pub struct BackboardBounceStateNode {
7    calculator: BackboardBounceCalculator,
8    state: BackboardBounceState,
9}
10
11impl BackboardBounceStateNode {
12    pub fn new() -> Self {
13        Self {
14            calculator: BackboardBounceCalculator::new(),
15            state: BackboardBounceState::default(),
16        }
17    }
18}
19
20impl_analysis_node! {
21    node = BackboardBounceStateNode,
22    state = BackboardBounceState,
23    name = "backboard_bounce_state",
24    emitted_events = crate::stats::calculators::BACKBOARD_BOUNCE_STATE_EMITTED_EVENTS,
25    dependencies = [
26        frame_info_dependency() => FrameInfo,
27        ball_frame_state_dependency() => BallFrameState,
28        player_frame_state_dependency() => PlayerFrameState,
29        touch_state_dependency() => TouchState,
30        live_play_dependency() => LivePlayState,
31    ],
32    update_state = calculator.update,
33}