private void PushRowsDown(int startFrom, int distance) { for (int j = startFrom; j < grid.Size.y; j++) { for (int i = 0; i < grid.Size.x; i++) { Vector2Int from = new Vector2Int(i, j); Vector2Int to = new Vector2Int(i, j - distance); grid.ReplaceMino(to, grid.GetCell(from)); grid.DeleteMino(from); } } }
private void RemoveTetraminoFromGrid(TetraminoGridData tetraminoGridData) { if (tetraminoGridData == null) { return; } foreach (var minoPosition in tetraminoGridData.GetMinosGridPositions()) { tetraminoGridData.Minos.Remove(grid.GetCell(minoPosition)); grid.DeleteMino(minoPosition); } if (tetraminoGridData.Minos.Count > 0) { throw new InvalidOperationException(); } }