subtr-actor 0.5.2

Rocket League replay transformer
Documentation
use super::*;

#[derive(Debug, Clone, Default)]
pub struct PossessionState {
    pub active_team_before_sample: Option<bool>,
    pub current_team_is_team_0: Option<bool>,
    pub active_player_before_sample: Option<PlayerId>,
    pub current_player: Option<PlayerId>,
}

#[derive(Default)]
pub struct PossessionStateCalculator {
    tracker: PossessionTracker,
}

impl PossessionStateCalculator {
    pub fn new() -> Self {
        Self::default()
    }

    pub fn update(
        &mut self,
        frame: &FrameInfo,
        touch_state: &TouchState,
        live_play_state: &LivePlayState,
    ) -> PossessionState {
        if !live_play_state.is_live_play {
            self.tracker.reset();
            return PossessionState::default();
        }

        self.tracker.update(frame.time, &touch_state.touch_events)
    }
}