public UIController(InputModel inputModel, PointModel pointModel, EnemyPool enemyPool, PauseModel pauseModel) { _controllers = new ControllerList(); _pause = inputModel.Pause(); _pause.OnKeyPressed += OnPauseKeyPressed; _pointModel = pointModel; _pointModel.OnPointsChanged += OnPointsChanged; _enemyPool = enemyPool; _enemyPool.OnEnemyKilledAndReturned += OnEnemyKilled; _lastEnemyKilledPanelController = new LastEnemyKilledPanelController(); _scorePanelController = new ScorePanelController(); _pausePanelController = new PausePanelController(pauseModel); _nullPanelController = new NullPanelController(); _controllers.Add(_pausePanelController); _scorePanelController.SetText("0"); _pausePanelController.Close(); _pausePanelController.OnResumeButtonPressed += ChangePanelController; _currentPanelController = _nullPanelController; _controllers.Initialize(); }
private void ChangePanelController(UiStates uiStates) { _currentPanelController?.Close(); switch (uiStates) { case UiStates.None: _currentPanelController = _nullPanelController; break; case UiStates.PausePanel: _currentPanelController = _pausePanelController; break; } _currentPanelController?.Execute(); }