subtr_actor/stats/analysis_graph/nodes/
live_play.rs1use super::*;
2use crate::stats::calculators::*;
3use crate::*;
4
5pub struct LivePlayNode {
6 tracker: LivePlayTracker,
7 state: LivePlayState,
8}
9
10impl LivePlayNode {
11 pub fn new() -> Self {
12 Self {
13 tracker: LivePlayTracker::default(),
14 state: LivePlayState::default(),
15 }
16 }
17}
18
19impl_analysis_node! {
20 node = LivePlayNode,
21 state = LivePlayState,
22 name = "live_play",
23 dependencies = [
24 AnalysisDependency::required::<FrameInput>(),
25 gameplay_state_dependency(),
26 frame_events_state_dependency(),
27 ],
28 inputs = {
29 frame_input: FrameInput,
30 gameplay: GameplayState,
31 events: FrameEventsState,
32 },
33 evaluate = |node| {
34 node.state = frame_input
35 .live_play_state()
36 .unwrap_or_else(|| node.tracker.state_parts(gameplay, events));
37 Ok(())
38 },
39 state_ref = |node| &node.state,
40}