//RoomGroup

        public static WaterRoom GetRoom(this Thing thing, RegionType allowedRegionTypes = RegionType.Set_Passable)
        {
            if (!thing.Spawned)
            {
                return(null);
            }
            return(WaterRegionAndRoomQuery.RoomAt(thing.Position, thing.Map, allowedRegionTypes));
        }
        public static WaterRoom RoomAtOrAdjacent(IntVec3 c, Map map, RegionType allowedRegionTypes = RegionType.Set_Passable)
        {
            WaterRoom room = WaterRegionAndRoomQuery.RoomAt(c, map, allowedRegionTypes);

            if (!(room is null))
            {
                return(room);
            }
            for (int i = 0; i < 8; i++)
            {
                IntVec3 c2 = c + GenAdj.AdjacentCells[i];
                room = WaterRegionAndRoomQuery.RoomAt(c2, map, allowedRegionTypes);
                if (!(room is null))
                {
                    return(room);
                }
            }
            return(room);
        }