void AddTile(Tile tile) { if (!tile.IsDoor) { return; } if (Contains(tile)) { return; } var containableList = FindContainableListAll(tile); if (containableList.Length == 0) { var newDoorTiles = new DoorTiles(); newDoorTiles.Add(tile); doorGroup.Add(newDoorTiles); return; } if (containableList.Length == 1) { containableList[0].Add(tile); return; } var concatedDoorTile = new DoorTiles(); concatedDoorTile.Add(tile); foreach (var doorTiles in containableList) { concatedDoorTile += doorTiles; } doorGroup.RemoveAll(doorTiles => containableList.Contains(doorTiles)); doorGroup.Add(concatedDoorTile); }
public DoorTiles Concat(DoorTiles otherTiles) { return(new DoorTiles(doorTiles.Concat(otherTiles.doorTiles).ToList())); }