private void Start() { _gameState.ResetData(); _grid = new TetrisGrid(_gridHeight, _gridWidth); _grid.GridOverflowed += GridOnGridOverflowed; _soundManager = GetComponent <SoundManager>(); _spawner = GetComponent <RandomPrefabsSpawner>(); _inputManager = new InputManagersWrapper(new List <IInputManager>() { GetComponent <InputManager>(), GetComponent <TouchInputManager>() }); _scoreCalculator = new ScoreCalculator(_gameState, _scoreData); _levelManager = new LevelManager(_gameState, 10, _maxLevel); _preview = new GameObject("Preview", new Type[] { typeof(SpriteRenderer) }); _preview.transform.position = _previewPosition; _currentTetromino = CreateTetromino(); InitializeCurrentTetromino(); _nextTetromino = CreateTetromino(); SetUpPreview(); }
// TODO: can be injected using zenject public void Initialize(ITetrisGrid grid, IInputManager inputManager, float speed) { _gameGrid = grid; _inputManager = inputManager; _gravityTimer = speed; SubscriveToInput(); gameObject.SetActive(true); }