subtr_actor/stats/analysis_graph/nodes/
territorial_pressure.rs1use super::*;
2use crate::stats::calculators::*;
3use crate::*;
4
5pub struct TerritorialPressureNode {
7 calculator: TerritorialPressureCalculator,
8}
9
10impl TerritorialPressureNode {
11 pub fn new() -> Self {
12 Self::with_config(TerritorialPressureCalculatorConfig::default())
13 }
14
15 pub fn with_config(config: TerritorialPressureCalculatorConfig) -> Self {
16 Self {
17 calculator: TerritorialPressureCalculator::with_config(config),
18 }
19 }
20}
21
22impl_analysis_node! {
23 node = TerritorialPressureNode,
24 state = TerritorialPressureCalculator,
25 name = "territorial_pressure",
26 emitted_events = crate::stats::calculators::TERRITORIAL_BALL_HALF_EMITTED_EVENTS,
27 dependencies = [
28 frame_info_dependency() => FrameInfo,
29 ball_frame_state_dependency() => BallFrameState,
30 possession_state_dependency() => PossessionState,
31 live_play_dependency() => LivePlayState,
32 ],
33 call = calculator.update,
34 finish = calculator.finish,
35}