Пример #1
0
 void OnConnectionStateChanged(RoomConnectionStateData applicationData)
 {
     m_MatchmakerIds = applicationData.users.Select(u => u.matchmakerId).ToArray();
     if (m_DialogWindow.open)
     {
         UpdateList(m_MatchmakerIds);
     }
 }
 private void OnConnectionStateChanged(RoomConnectionStateData obj)
 {
     if (obj.localUser.networkUser != m_User)
     {
         m_User   = obj.localUser.networkUser;
         rootNode = UIStateManager.current.m_RootNode.transform;
     }
 }
Пример #3
0
        void OnRoomConnectionStateChanged(RoomConnectionStateData data)
        {
            // Check if current user had change Id
            var matchmakerId = UIStateManager.current.roomConnectionStateData.localUser.matchmakerId;

            if (!string.IsNullOrEmpty(matchmakerId) && m_CurrentUserId != matchmakerId)
            {
                m_CurrentUserId = matchmakerId;
            }
        }
        void OnConnectionStateChanged(RoomConnectionStateData connectionState)
        {
            var userIds = connectionState.users.Select(u => u.matchmakerId);

            if (EnumerableExtension.SafeSequenceEquals(m_UserIds, userIds))
            {
                m_UserIds = userIds;
                m_CollaboratorsList.UpdateUserList(m_UserIds.ToArray());
            }
        }
Пример #5
0
 void OnConnectionStateChanged(RoomConnectionStateData applicationData)
 {
     UpdateUser(MatchmakerId);
 }
Пример #6
0
        void OnRoomConnectionStateChanged(RoomConnectionStateData data)
        {
            // Check if current user had change Id
            var matchmakerId = UIStateManager.current.roomConnectionStateData.localUser.matchmakerId;

            if (!string.IsNullOrEmpty(matchmakerId) && m_CurrentUserId != matchmakerId)
            {
                if (m_SelectedDatas.Any(s => s.userId == m_CurrentUserId))
                {
                    var selectedData   = m_SelectedDatas.First(s => s.userId == m_CurrentUserId);
                    var selectedObject = selectedData.selectedObject;

                    //Unselect current local selection
                    var info = new ObjectSelectionInfo();
                    info.currentIndex    = 0;
                    info.selectedObjects = new List <GameObject>();
                    info.userId          = m_CurrentUserId;
                    info.colorId         = 0;
                    Dispatcher.Dispatch(Payload <ActionTypes> .From(ActionTypes.SelectObjects, info));

                    m_CurrentUserId = matchmakerId;

                    //Reselect it with new id
                    info.userId          = matchmakerId;
                    info.selectedObjects = new List <GameObject>()
                    {
                        selectedObject
                    };
                    Dispatcher.Dispatch(Payload <ActionTypes> .From(ActionTypes.SelectObjects, info));
                }
                else
                {
                    m_CurrentUserId = matchmakerId;
                }
            }


            foreach (var user in data.users)
            {
                // Check if a user had already a selected object
                if (m_SelectedDatas.Any(s => s.userId == user.matchmakerId))
                {
                    var selectedData = m_SelectedDatas.First(s => s.userId == user.matchmakerId);
                    if (selectedData.selectedObject != user.selectedObject)
                    {
                        m_SelectedDatas.Remove(selectedData);
                    }
                    else
                    {
                        continue;
                    }
                }

                if (user.selectedObject != null)
                {
                    var userIdentity = UIStateManager.current.GetUserIdentityFromSession(user.matchmakerId);
                    m_SelectedDatas.Add(new SelectionData {
                        userId         = user.matchmakerId,
                        selectedObject = user.selectedObject,
                        colorId        = (userIdentity.colorIndex + 1)
                    });
                }
            }

            // Check for disconnected users with ongoing selection
            List <SelectionData> missingUserDatas = new List <SelectionData>();

            foreach (var selectedData in m_SelectedDatas)
            {
                if (selectedData.userId == m_CurrentUserId)
                {
                    continue;
                }

                if (!data.users.Any(u => u.matchmakerId == selectedData.userId))
                {
                    missingUserDatas.Add(selectedData);
                }
            }

            foreach (var missingUserData in missingUserDatas)
            {
                m_SelectedDatas.Remove(missingUserData);
            }

            UpdateMultiSelection();
        }
 void OnRoomDataChanged(RoomConnectionStateData obj)
 {
     UpdateIcon();
 }