private void ProcessMessage(TimeSpan totalGameTime) { bool processingMessage = _messageRenderer != null; bool messageAvailable = !_worldInstance.WorldTime.Paused && _worldInstance.MessageMananger.Count > 0; if (processingMessage || !messageAvailable) { return; } _messageRendererState = new MessageRendererState { Message = _worldInstance.MessageMananger.DequeueMessage() }; _messageRenderer = new MessageRenderer(_messageRendererState); _messageFadeInAndScaleUpdater = new MessageFadeInAndScaleUpdater(_messageRendererState, totalGameTime, MessageOpened); _rendererCollection.Add(_messageRenderer); _updaterCollection.Add(_messageFadeInAndScaleUpdater); _inputManager.ClaimFocus(Focus.Message); }
private void MessageOpened(IXnaGameTime gameTime) { _updaterCollection.Remove(_messageFadeInAndScaleUpdater); _messageFadeInAndScaleUpdater = null; _messageInputHandler = new MessageInputHandler(_worldInstance, _messageRendererState, gameTime.TotalGameTime, MessageClosing); _updaterCollection.Add(_messageInputHandler); _worldInstance.MessageMananger.MessageOpened(_messageRendererState.Message); }