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