public void Spawn() { _currentId = _currentId.HasValue ? _nextId : GetRandomTetraminoID(); _nextId = GetRandomTetraminoID(); _tetraminoBuilder.BuildTetramino((TetraminoID)_currentId).transform.position = TetraminoController.SpawnPosition; EventManager.TriggerEvent(new OnTetraminoSpawnEvent { TetraminoId = _nextId }); }
public Tetramino BuildTetramino(TetraminoID id) { var tetraminoId = id; var rotationPoint = _tetraminoData.GetRotationPoint(tetraminoId); var tetramino = _poolManager.GetOrCreate <Tetramino>(_parentChest); tetramino.transform.SetParent(_parentChest); tetramino.Initialize(rotationPoint); for (int i = 0; i < CUBES_PER_TETRAMINO; i++) { var cube = _poolManager.GetOrCreate <Cube>(_cubePrefab, tetramino.transform); cube.transform.SetParent(tetramino.transform); var color = _tetraminoData.GetColor(tetraminoId); var position = _tetraminoData.GetMatrix(tetraminoId)[i]; cube.Initialize(position, color); } return(tetramino); }
public Sprite GetIcon(TetraminoID id) { return(TetraminoModels.Find(model => model.Id == id).icon); }
public Vector3 GetRotationPoint(TetraminoID id) { return(TetraminoModels.Find(model => model.Id == id).rotationPoint); }
public Vector3[] GetMatrix(TetraminoID id) { return(TetraminoModels.Find(model => model.Id == id).positionMatrix); }
public Color GetColor(TetraminoID id) { return(TetraminoModels.Find(model => model.Id == id).color); }