Skip to main content

subtr_actor/stats/analysis_graph/nodes/
player_frame_state.rs

1use super::*;
2use crate::stats::calculators::*;
3use crate::*;
4
5/// Exposes per-frame per-player state (positions/velocities/boost) from raw frame input.
6pub struct PlayerFrameStateNode {
7    state: PlayerFrameState,
8}
9
10impl PlayerFrameStateNode {
11    pub fn new() -> Self {
12        Self {
13            state: PlayerFrameState::default(),
14        }
15    }
16}
17
18impl_analysis_node! {
19    node = PlayerFrameStateNode,
20    state = PlayerFrameState,
21    name = "player_frame_state",
22    dependencies = [AnalysisDependency::required::<FrameInput>()],
23    inputs = { frame_input: FrameInput },
24    evaluate = |node| {
25        node.state = frame_input.player_frame_state();
26        Ok(())
27    },
28    state_ref = |node| &node.state,
29}