public void Play() { if (!_init) { _gameReplayPlayer.Reset(); _init = true; } _state = ReplayPlayerControlsState.Playing; }
public void Seek(float seekTime) { _state = ReplayPlayerControlsState.Seeking; _seekTime = seekTime; if (_seekTime < _playbackTime) { _gameReplayPlayer.Reset(); _playbackTime = 0.0f; } }
public void Update(float dt) { if (IsPaused()) { return; } float maxDt = _gameReplayPlayer.GetMaxAllowedUpdateTime(); if (_state == ReplayPlayerControlsState.Playing) { dt *= _playbackSpeed; if (dt > maxDt) { dt = maxDt; } } else if (_state == ReplayPlayerControlsState.Seeking) { dt = maxDt; if (_playbackTime + dt > _seekTime) { dt = _seekTime - _playbackTime; _state = ReplayPlayerControlsState.Paused; } } var totalTime = _gameReplayPlayer.GetTotalTime(); if (_playbackTime + dt > totalTime) { dt = totalTime - _playbackTime; _state = ReplayPlayerControlsState.Paused; } _playbackTime += dt; _gameReplayPlayer.Update(dt); }
public void Pause() { _state = ReplayPlayerControlsState.Paused; }