public void TransitionTo(IGameState state, ITransitionController transition) { if (_nextState != null) { _logger.LogError( "Cannot start transitioning to a new state while another " + "state transition is in progress!"); return; } _nextState = state; _currentTransitionController = transition; transition.Setup(); transition.TransitionOutFinished += HandleTransitionOutFinished; transition.StartTransitionOut(); }
void UpdateTransition(float dt) { m_currentTransition.Update(dt); if(m_currentTransition.IsFinished) { float remTime = m_currentTransition.OverTime; // end the transition m_currentItem = m_currentTransition.Item2; m_currentTransition = null; m_currentItem.DisplayController.Update(remTime); } }
void BeginTransition(MessageQueueItem from, MessageQueueItem to, float initialStep) { m_currentTransition = GetTransitionController(from, to); m_currentItem = null; UpdateTransition(initialStep); }