subtr-actor 0.9.2

Rocket League replay transformer
Documentation
use crate::*;

use super::*;

impl StatFieldProvider for CorePlayerStats {
    fn visit_stat_fields(&self, visitor: &mut dyn FnMut(ExportedStat)) {
        visitor(ExportedStat::signed(
            "core",
            "score",
            StatUnit::Count,
            self.score,
        ));
        visitor(ExportedStat::signed(
            "core",
            "goals",
            StatUnit::Count,
            self.goals,
        ));
        visitor(ExportedStat::signed(
            "core",
            "assists",
            StatUnit::Count,
            self.assists,
        ));
        visitor(ExportedStat::signed(
            "core",
            "saves",
            StatUnit::Count,
            self.saves,
        ));
        visitor(ExportedStat::signed(
            "core",
            "shots",
            StatUnit::Count,
            self.shots,
        ));
        visitor(ExportedStat::unsigned(
            "core",
            "goals_conceded_while_last_defender",
            StatUnit::Count,
            self.scoring_context.goals_conceded_while_last_defender,
        ));
        visitor(ExportedStat::unsigned(
            "core",
            "goals_for_while_most_back",
            StatUnit::Count,
            self.scoring_context.goals_for_while_most_back,
        ));
        visitor(ExportedStat::unsigned(
            "core",
            "goals_against_while_most_back",
            StatUnit::Count,
            self.scoring_context.goals_against_while_most_back,
        ));
        visitor(ExportedStat::unsigned(
            "core",
            "goal_against_boost_sample_count",
            StatUnit::Count,
            self.scoring_context.goal_against_boost_sample_count,
        ));
        visitor(ExportedStat::float(
            "core",
            "average_boost_on_goals_against",
            StatUnit::Boost,
            self.average_boost_on_goals_against(),
        ));
        visitor(ExportedStat::unsigned(
            "core",
            "goal_against_boost_leadup_sample_count",
            StatUnit::Count,
            self.scoring_context.goal_against_boost_leadup_sample_count,
        ));
        visitor(ExportedStat::float(
            "core",
            "average_boost_in_goal_against_leadup",
            StatUnit::Boost,
            self.average_boost_in_goal_against_leadup(),
        ));
        visitor(ExportedStat::float(
            "core",
            "average_min_boost_in_goal_against_leadup",
            StatUnit::Boost,
            self.average_min_boost_in_goal_against_leadup(),
        ));
        visitor(ExportedStat::unsigned(
            "core",
            "goal_against_position_sample_count",
            StatUnit::Count,
            self.scoring_context.goal_against_position_sample_count,
        ));
        visitor(ExportedStat::float(
            "core",
            "average_goal_against_position_x",
            StatUnit::UnrealUnits,
            self.average_goal_against_position_x(),
        ));
        visitor(ExportedStat::float(
            "core",
            "average_goal_against_position_y",
            StatUnit::UnrealUnits,
            self.average_goal_against_position_y(),
        ));
        visitor(ExportedStat::float(
            "core",
            "average_goal_against_position_z",
            StatUnit::UnrealUnits,
            self.average_goal_against_position_z(),
        ));
        visitor(ExportedStat::unsigned(
            "core",
            "scoring_goal_last_touch_position_sample_count",
            StatUnit::Count,
            self.scoring_context
                .scoring_goal_last_touch_position_sample_count,
        ));
        visitor(ExportedStat::float(
            "core",
            "average_scoring_goal_last_touch_position_x",
            StatUnit::UnrealUnits,
            self.average_scoring_goal_last_touch_position_x(),
        ));
        visitor(ExportedStat::float(
            "core",
            "average_scoring_goal_last_touch_position_y",
            StatUnit::UnrealUnits,
            self.average_scoring_goal_last_touch_position_y(),
        ));
        visitor(ExportedStat::float(
            "core",
            "average_scoring_goal_last_touch_position_z",
            StatUnit::UnrealUnits,
            self.average_scoring_goal_last_touch_position_z(),
        ));
        visitor(ExportedStat::float(
            "core",
            "average_goal_time_after_kickoff",
            StatUnit::Seconds,
            self.average_goal_time_after_kickoff(),
        ));
        visitor(ExportedStat::float(
            "core",
            "median_goal_time_after_kickoff",
            StatUnit::Seconds,
            self.median_goal_time_after_kickoff(),
        ));
        visitor(ExportedStat::unsigned(
            "core",
            "goal_ball_air_time_sample_count",
            StatUnit::Count,
            self.scoring_context
                .goal_ball_air_time
                .goal_ball_air_time_sample_count,
        ));
        visitor(ExportedStat::float(
            "core",
            "average_goal_ball_air_time",
            StatUnit::Seconds,
            self.average_goal_ball_air_time(),
        ));
        visitor(ExportedStat::float(
            "core",
            "median_goal_ball_air_time",
            StatUnit::Seconds,
            self.median_goal_ball_air_time(),
        ));
        visitor(ExportedStat::unsigned(
            "core",
            "kickoff_goal_count",
            StatUnit::Count,
            self.scoring_context.goal_after_kickoff.kickoff_goal_count,
        ));
        visitor(ExportedStat::unsigned(
            "core",
            "short_goal_count",
            StatUnit::Count,
            self.scoring_context.goal_after_kickoff.short_goal_count,
        ));
        visitor(ExportedStat::unsigned(
            "core",
            "medium_goal_count",
            StatUnit::Count,
            self.scoring_context.goal_after_kickoff.medium_goal_count,
        ));
        visitor(ExportedStat::unsigned(
            "core",
            "long_goal_count",
            StatUnit::Count,
            self.scoring_context.goal_after_kickoff.long_goal_count,
        ));
        visitor(ExportedStat::float(
            "core",
            "shooting_percentage",
            StatUnit::Percent,
            self.shooting_percentage(),
        ));
        visitor(ExportedStat::unsigned(
            "core",
            "counter_attack_goal_count",
            StatUnit::Count,
            self.scoring_context.goal_buildup.counter_attack_goal_count,
        ));
        visitor(ExportedStat::unsigned(
            "core",
            "sustained_pressure_goal_count",
            StatUnit::Count,
            self.scoring_context
                .goal_buildup
                .sustained_pressure_goal_count,
        ));
        visitor(ExportedStat::unsigned(
            "core",
            "other_buildup_goal_count",
            StatUnit::Count,
            self.scoring_context.goal_buildup.other_buildup_goal_count,
        ));
    }
}

impl StatFieldProvider for CoreTeamStats {
    fn visit_stat_fields(&self, visitor: &mut dyn FnMut(ExportedStat)) {
        visitor(ExportedStat::signed(
            "core",
            "score",
            StatUnit::Count,
            self.score,
        ));
        visitor(ExportedStat::signed(
            "core",
            "goals",
            StatUnit::Count,
            self.goals,
        ));
        visitor(ExportedStat::signed(
            "core",
            "assists",
            StatUnit::Count,
            self.assists,
        ));
        visitor(ExportedStat::signed(
            "core",
            "saves",
            StatUnit::Count,
            self.saves,
        ));
        visitor(ExportedStat::signed(
            "core",
            "shots",
            StatUnit::Count,
            self.shots,
        ));
        visitor(ExportedStat::float(
            "core",
            "average_goal_time_after_kickoff",
            StatUnit::Seconds,
            self.average_goal_time_after_kickoff(),
        ));
        visitor(ExportedStat::float(
            "core",
            "median_goal_time_after_kickoff",
            StatUnit::Seconds,
            self.median_goal_time_after_kickoff(),
        ));
        visitor(ExportedStat::unsigned(
            "core",
            "goal_ball_air_time_sample_count",
            StatUnit::Count,
            self.scoring_context
                .goal_ball_air_time
                .goal_ball_air_time_sample_count,
        ));
        visitor(ExportedStat::float(
            "core",
            "average_goal_ball_air_time",
            StatUnit::Seconds,
            self.average_goal_ball_air_time(),
        ));
        visitor(ExportedStat::float(
            "core",
            "median_goal_ball_air_time",
            StatUnit::Seconds,
            self.median_goal_ball_air_time(),
        ));
        visitor(ExportedStat::unsigned(
            "core",
            "kickoff_goal_count",
            StatUnit::Count,
            self.scoring_context.goal_after_kickoff.kickoff_goal_count,
        ));
        visitor(ExportedStat::unsigned(
            "core",
            "short_goal_count",
            StatUnit::Count,
            self.scoring_context.goal_after_kickoff.short_goal_count,
        ));
        visitor(ExportedStat::unsigned(
            "core",
            "medium_goal_count",
            StatUnit::Count,
            self.scoring_context.goal_after_kickoff.medium_goal_count,
        ));
        visitor(ExportedStat::unsigned(
            "core",
            "long_goal_count",
            StatUnit::Count,
            self.scoring_context.goal_after_kickoff.long_goal_count,
        ));
        visitor(ExportedStat::float(
            "core",
            "shooting_percentage",
            StatUnit::Percent,
            self.shooting_percentage(),
        ));
        visitor(ExportedStat::unsigned(
            "core",
            "counter_attack_goal_count",
            StatUnit::Count,
            self.scoring_context.goal_buildup.counter_attack_goal_count,
        ));
        visitor(ExportedStat::unsigned(
            "core",
            "sustained_pressure_goal_count",
            StatUnit::Count,
            self.scoring_context
                .goal_buildup
                .sustained_pressure_goal_count,
        ));
        visitor(ExportedStat::unsigned(
            "core",
            "other_buildup_goal_count",
            StatUnit::Count,
            self.scoring_context.goal_buildup.other_buildup_goal_count,
        ));
    }
}