public BlockRemoval(Block block, BlockRemovalReason removalReason, int destinationRow, int destinationColumn) { this.block = block; this.removalReason = removalReason; this.destinationRow = destinationRow; this.destinationColumn = destinationColumn; }
private void DestroyOrActivateBlock(int row, int column, List <BlockRemoval> removedBlocks, BlockRemovalReason blockRemovalReason) { if (row < 0 || row >= rowCount || column < 0 || column >= columnCount) { return; } var block = blocks[row, column]; if (block.type != BlockType.Normal && block.type != BlockType.Mega) { var blockAndPosition = new BlockAndPosition(block, row, column); if (!activatedBlocks.Contains(blockAndPosition)) { newActivatedBlocks.Add(blockAndPosition); removedBlocks.Add(new BlockRemoval(block, blockRemovalReason, row, column)); } else { Console.WriteLine("Already contains"); } } else if (block.color != BlockColor.Empty) { removedBlocks.Add(new BlockRemoval(block, blockRemovalReason, row, column)); blocks[row, column] = EmptyBlock; } }