示例#1
0
文件: AreaData.cs 项目: c2001324/Leo
 void AddRoomConstructorData(int deep, JAreaConfig.JRoomConfig roomConfig, bool removeConfig)
 {
     RoomData roomData = RoomData.Create(m_IndexCounter++, deep, roomConfig);
     roomDatas.Add(roomData);
     if (removeConfig)
     {
         m_TempRoomConfig.Remove(roomConfig);
     }
 }
 /// <summary>Called rooms have been created or deleted, it fires an event with room info if there are subscribers</summary>
 public void OnRoomListUpdate(List <RoomInfo> roomList)
 {
     if (roomListUpdate != null)
     {
         List <RoomData> data = new List <RoomData>();
         foreach (RoomInfo info in roomList)
         {
             string roomKey = (string)info.CustomProperties[RoomData.PasswordPropertyKey];
             data.Add(RoomData.Create(info.RemovedFromList, info.Name, info.PlayerCount, info.MaxPlayers, info.IsOpen, info.IsVisible, roomKey));
         }
         roomListUpdate(data);
     }
 }
示例#3
0
    //Create grid and room in it
    private void CreateGrid()
    {
        int index = 0;

        for (int i = 0; i < RoomNumber; i++)
        {
            if (maxTry <= 0)
            {
                break;
            }

            int height = Random.Range(minH, maxH);
            int width  = Random.Range(minW, maxW);

            int x1 = Random.Range(width + 2, MapWidth - 2) - width;
            int x2 = x1 + width;

            int y1 = Random.Range(height + 2, MapHeight - 2) - height;
            int y2 = y1 + height;

            if (CheckCollision(x1 - 1, x2 + 1, y1 - 2, y2 + 2) || fusion > 0)
            {
                AddToGrid(x1, y1, x2, y2);

                RoomData newRoom = ScriptableObject.CreateInstance <RoomData>();
                newRoom.Create(x1, y1, x2, y2, height, width, index);

                _roomData.Add(newRoom);
                _rooms.Add(CreateRoom(x1, y1, newRoom));

                index++;
            }
            else
            {
                i--;
            }
        }
    }