Ejemplo n.º 1
0
 public void LeaveCurrentRoom()
 {
     if (roomID != 0)
     {
         Rooms.Leave(roomID);
         roomID = 0;
     }
     SocialPlatformManager.TransitionToState(SocialPlatformManager.State.LEAVING_A_ROOM);
 }
Ejemplo n.º 2
0
    void ProcessRoomData(Message <Room> msg)
    {
        if (msg.Data.OwnerOptional != null && msg.Data.OwnerOptional.ID == SocialPlatformManager.MyID)
        {
            amIServer = true;
        }
        else
        {
            amIServer = false;
        }

        // if the caller left while I was in the process of joining, just use that as our new room
        if (msg.Data.UsersOptional != null && msg.Data.UsersOptional.Count == 1)
        {
            SocialPlatformManager.TransitionToState(SocialPlatformManager.State.WAITING_IN_A_ROOM);
        }
        else
        {
            SocialPlatformManager.TransitionToState(SocialPlatformManager.State.CONNECTED_IN_A_ROOM);
        }

        // Look for users that left
        SocialPlatformManager.MarkAllRemoteUsersAsNotInRoom();

        if (msg.Data.UsersOptional != null)
        {
            foreach (User user in msg.Data.UsersOptional)
            {
                if (user.ID != SocialPlatformManager.MyID)
                {
                    if (!SocialPlatformManager.IsUserInRoom(user.ID))
                    {
                        SocialPlatformManager.AddRemoteUser(user.ID);
                    }
                    else
                    {
                        SocialPlatformManager.MarkRemoteUserInRoom(user.ID);
                    }
                }
            }
        }

        SocialPlatformManager.ForgetRemoteUsersNotInRoom();
        SocialPlatformManager.SetFloorColorForState(amIServer);
    }
Ejemplo n.º 3
0
    void CreateAndJoinPrivateRoomCallback(Message <Room> msg)
    {
        if (msg.IsError)
        {
            SocialPlatformManager.TerminateWithError(msg);
            return;
        }

        roomID = msg.Data.ID;

        if (msg.Data.OwnerOptional != null && msg.Data.OwnerOptional.ID == SocialPlatformManager.MyID)
        {
            amIServer = true;
        }
        else
        {
            amIServer = false;
        }

        SocialPlatformManager.TransitionToState(SocialPlatformManager.State.WAITING_IN_A_ROOM);
        SocialPlatformManager.SetFloorColorForState(amIServer);
    }
Ejemplo n.º 4
0
 public void JoinExistingRoom(ulong roomID)
 {
     SocialPlatformManager.TransitionToState(SocialPlatformManager.State.JOINING_A_ROOM);
     Rooms.Join(roomID, true).OnComplete(JoinRoomCallback);
 }