public static PlayerRoomLayout FromPlaceableObjects(List <PlaceableObject> placeableObjects)
    {
        List <CompoundRoomItem> list = new List <CompoundRoomItem>(placeableObjects.Count);

        while (placeableObjects.Count > 0)
        {
            PlaceableObject placeableObject = placeableObjects[0];
            placeableObjects.Remove(placeableObject);
            if (placeableObject.PieceNumber == 1)
            {
                List <PlaceableObject> list2 = new List <PlaceableObject>();
                list2.Add(placeableObject);
                while (placeableObject.Next != null)
                {
                    list2.Add(placeableObject.Next);
                    placeableObjects.Remove(placeableObject.Next);
                    placeableObject = placeableObject.Next;
                }
                list.Add(CompoundRoomItem.FromPlaceableObjects(list2));
            }
        }
        PlayerRoomLayout playerRoomLayout = new PlayerRoomLayout();

        playerRoomLayout._compoundRoomItems = list;
        return(playerRoomLayout);
    }
 protected bool Equals(PlayerRoomLayout other)
 {
     return(object.Equals(_compoundRoomItems, other._compoundRoomItems));
 }