public void HoldPiece() { if (_canHold) { _activePiece.Despawn(); if (_heldPiece == null) { _heldPiece = _activePiece; SpawnNextPiece(); } else { Tetrimino tempPiece = _heldPiece; _heldPiece = _activePiece; _activePiece = tempPiece; _activePiece.Spawn(); _activeOutline = GeneratePiece(_activePiece.GetBlockValue()); } _holdSound.Play(); } _canHold = false; }
public void SpawnNextPiece() { if (_randomPieceIndex > 6) { _randomPieceIndex = 0; ShuffleRandomPieceBag(); } if (_nextPiece == null) { _nextPiece = GeneratePiece(_randomPieceBag[_randomPieceIndex]); _randomPieceIndex++; } _activePiece = _nextPiece; _activePiece.Spawn(); _nextPiece = GeneratePiece(_randomPieceBag[_randomPieceIndex]); _randomPieceIndex++; // Create Piece For Outline _activeOutline = GeneratePiece(_activePiece.GetBlockValue()); }