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); } }
//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--; } } }