public void Enter(Pax4UiState p_uiState = null) { if (p_uiState == null) { return; } if (p_uiState._persistent) { for (int i = 0; i < _currentUiState.Count; i++) { _currentUiState[i].Exit(); _previousUiState.Add(_currentUiState[i]); _uiRemove.Add(_currentUiState[i]); } } else { _previousUiState.Add(p_uiState); p_uiState.Enter(); return; } if (_uiRemove.Count > 0) { for (int i = 0; i < _uiRemove.Count; i++) { _currentUiState.Remove(_uiRemove[i]); } _uiRemove.Clear(); } _currentUiState.Add(p_uiState); p_uiState.Enter(); }
public virtual void Update(GameTime gameTime) { for (int i = 0; i < _sprite.Count; i++) { _sprite[i].Update(gameTime); } if (_done) { return; } _done = true; foreach (List <Pax4ModifierSprite> spriteModifier in _spriteModifier.Values) { for (int i = 0; i < spriteModifier.Count; i++) { if (!spriteModifier[i]._done) { spriteModifier[i].Update(gameTime); if (_done) { _done = spriteModifier[i]._done; } } } } //timer until moving on to the next state if (_duration > 0.0f) { _done = false; _timer -= (float)gameTime.ElapsedGameTime.TotalSeconds; if (_timer <= 0.0f) { if (_nextState != null) { _nextState.Enter(); } _done = true; } } }