public BlockPreviewRenderController(IBlockPreviewRenderView renderView,
                                            IBlockSpawnController spawnController,
                                            IBlockViewBuilder blockViewBuilder)
        {
            _renderView       = renderView;
            _spawnController  = spawnController;
            _blockViewBuilder = blockViewBuilder;

            _spawnController.OnNextBlockChange += RedrawBlockView;
        }
        public LevelProgressController(ILevelProgressModel progress,
                                       IBlockSpawnController spawnController,
                                       IBlockMergeController mergeController)
        {
            _progress        = progress;
            _spawnController = spawnController;
            _mergeController = mergeController;

            _spawnController.OnBlockSpawned += OnBlockSpawned;
            _mergeController.OnBlocksMerge  += OnBlocksMerge;
        }
 public GameCycleController(ICoroutineManager coroutineManager,
                            IBlockSpawnController spawnController,
                            IBlockGravityController gravityController,
                            IBlockJoinController joinController,
                            IBlockMergeController mergeController,
                            List <IGameFinishListener> gameFinishListeners,
                            List <IGameStartListener> gameStartListeners,
                            ILevelModel levelModel,
                            ILogModuleFactory logModuleFactory)
 {
     _coroutineManager    = coroutineManager;
     _spawnController     = spawnController;
     _gravityController   = gravityController;
     _joinController      = joinController;
     _mergeController     = mergeController;
     _gameFinishListeners = gameFinishListeners;
     _gameStartListeners  = gameStartListeners;
     _levelModel          = levelModel;
     _log = logModuleFactory.Create(this);
 }