Skip to main content

subtr_actor/stats/export/
wall_aerial.rs

1use crate::*;
2
3use super::*;
4
5impl StatFieldProvider for WallAerialStats {
6    fn visit_stat_fields(&self, visitor: &mut dyn FnMut(ExportedStat)) {
7        visitor(ExportedStat::unsigned(
8            "wall_aerial",
9            "count",
10            StatUnit::Count,
11            self.count,
12        ));
13        visitor(ExportedStat::unsigned(
14            "wall_aerial",
15            "high_confidence_count",
16            StatUnit::Count,
17            self.high_confidence_count,
18        ));
19        visitor(ExportedStat::unsigned(
20            "wall_aerial",
21            "is_last_wall_aerial",
22            StatUnit::Count,
23            u32::from(self.is_last_wall_aerial),
24        ));
25        if let Some(value) = self.last_wall_aerial_time {
26            visitor(ExportedStat::float(
27                "wall_aerial",
28                "last_wall_aerial_time",
29                StatUnit::Seconds,
30                value,
31            ));
32        }
33        if let Some(value) = self.last_wall_aerial_frame {
34            visitor(ExportedStat::unsigned(
35                "wall_aerial",
36                "last_wall_aerial_frame",
37                StatUnit::Count,
38                u32::try_from(value).unwrap_or(u32::MAX),
39            ));
40        }
41        if let Some(value) = self.time_since_last_wall_aerial {
42            visitor(ExportedStat::float(
43                "wall_aerial",
44                "time_since_last_wall_aerial",
45                StatUnit::Seconds,
46                value,
47            ));
48        }
49        if let Some(value) = self.frames_since_last_wall_aerial {
50            visitor(ExportedStat::unsigned(
51                "wall_aerial",
52                "frames_since_last_wall_aerial",
53                StatUnit::Count,
54                u32::try_from(value).unwrap_or(u32::MAX),
55            ));
56        }
57        if let Some(value) = self.last_confidence {
58            visitor(ExportedStat::float(
59                "wall_aerial",
60                "last_confidence",
61                StatUnit::Percent,
62                value * 100.0,
63            ));
64        }
65        visitor(ExportedStat::float(
66            "wall_aerial",
67            "average_confidence",
68            StatUnit::Percent,
69            self.average_confidence() * 100.0,
70        ));
71        visitor(ExportedStat::float(
72            "wall_aerial",
73            "best_confidence",
74            StatUnit::Percent,
75            self.best_confidence * 100.0,
76        ));
77        visitor(ExportedStat::float(
78            "wall_aerial",
79            "average_setup_duration",
80            StatUnit::Seconds,
81            self.average_setup_duration(),
82        ));
83        visitor(ExportedStat::float(
84            "wall_aerial",
85            "average_takeoff_to_touch_time",
86            StatUnit::Seconds,
87            self.average_takeoff_to_touch_time(),
88        ));
89        visitor(ExportedStat::float(
90            "wall_aerial",
91            "average_touch_height",
92            StatUnit::UnrealUnits,
93            self.average_touch_height(),
94        ));
95    }
96}