using System; using UnityEngine; using VContainer.Unity; public class GameFlowController:IStartable { private readonly Player _player; private readonly StartScreenController _startScreenController; private readonly GameScreenController _gameScreenController; private readonly ScoreService _scoreService; private readonly PauseScreenController _pauseScreenController; private readonly DeathScreenController _deathScreenController; private readonly IInputReader InputReader; public GameFlowController( DeathScreenController deathScreenController, Player player, StartScreenController startScreenController, GameScreenController gameScreenController, ScoreService scoreService, PauseScreenController pauseScreenController, IInputReader inputReader) { _deathScreenController = deathScreenController; _player = player; _startScreenController = startScreenController; _gameScreenController = gameScreenController; _scoreService = scoreService; _pauseScreenController = pauseScreenController; InputReader = inputReader; } public void Start() { Debug.Log("GameFlowController Started"); HookEvents(); } void HookEvents() { _startScreenController.OnStartPressed += HandleGameStart; _gameScreenController.OnPausePressed += HandleGamePause; _pauseScreenController.OnResumePressed += HandleGameResume; _pauseScreenController.OnRestartPressed += HandleGameRestart; _deathScreenController.OnRestartPressed += HandleGameRestart; _deathScreenController.OnExitPressed += HandleGameExit; } private void HandleGameRestart() { throw new NotImplementedException(); } private void HandleGameExit() { throw new NotImplementedException(); } private void HandleGameResume() { throw new NotImplementedException(); } private void HandleGamePause() { throw new NotImplementedException(); } private void HandleGameStart() { throw new NotImplementedException(); } }