public void AddRoom(IFloorRoom room, Location origin) { var placedRoom = room.Shift(origin); FloorRooms.Add(placedRoom); foreach (var tile in placedRoom.FloorTiles) { if (tile.X < Width && tile.Y < Height) { var oldTile = GetFloorTile(tile.X, tile.Y); if (oldTile != null) { FloorTiles.Remove(oldTile); } FloorTiles.Add(tile); } } }