Exemplo n.º 1
0
        /// <summary>
        /// Convert from <see cref="Participant.ParticipantStatus"/>
        /// to <see cref="GPGS_Participant.ParticipantStatus"/>.
        /// </summary>
        public static GPGS_Participant.ParticipantStatus ToGPGSParticipantStatus(this Participant.ParticipantStatus status)
        {
            switch (status)
            {
            case Participant.ParticipantStatus.NotInvitedYet:
                return(GPGS_Participant.ParticipantStatus.NotInvitedYet);

            case Participant.ParticipantStatus.Invited:
                return(GPGS_Participant.ParticipantStatus.Invited);

            case Participant.ParticipantStatus.Declined:
                return(GPGS_Participant.ParticipantStatus.Declined);

            case Participant.ParticipantStatus.Joined:
                return(GPGS_Participant.ParticipantStatus.Joined);

            case Participant.ParticipantStatus.Unresponsive:
                return(GPGS_Participant.ParticipantStatus.Unresponsive);

            case Participant.ParticipantStatus.Left:
                return(GPGS_Participant.ParticipantStatus.Left);

            case Participant.ParticipantStatus.Done:
                return(GPGS_Participant.ParticipantStatus.Finished);

            case Participant.ParticipantStatus.Matching:
            case Participant.ParticipantStatus.Unknown:
            default:
                return(GPGS_Participant.ParticipantStatus.Unknown);
            }
        }
Exemplo n.º 2
0
 internal Participant(string displayName, string participantId, Participant.ParticipantStatus status, Player player, bool connectedToRoom)
 {
     this.mDisplayName       = displayName;
     this.mParticipantId     = participantId;
     this.mStatus            = status;
     this.mPlayer            = player;
     this.mIsConnectedToRoom = connectedToRoom;
 }
Exemplo n.º 3
0
        public static Participant ConvertParticipant(AndroidJavaObject participant)
        {
            string displayName   = participant.Call <string>("getDisplayName");
            string participantId = participant.Call <string>("getParticipantId");

            Participant.ParticipantStatus status = Participant.ParticipantStatus.Unknown;
            GooglePlayGames.BasicApi.Multiplayer.Player player = null;
            bool connected = participant.Call <bool>("isConnectedToRoom");

            int statusValue = participant.Call <int>("getStatus");

            switch (statusValue)
            {
            case JavaConsts.STATUS_NOT_INVITED_YET:
                status = Participant.ParticipantStatus.NotInvitedYet;
                break;

            case JavaConsts.STATUS_INVITED:
                status = Participant.ParticipantStatus.Invited;
                break;

            case JavaConsts.STATUS_JOINED:
                status = Participant.ParticipantStatus.Joined;
                break;

            case JavaConsts.STATUS_DECLINED:
                status = Participant.ParticipantStatus.Declined;
                break;

            case JavaConsts.STATUS_LEFT:
                status = Participant.ParticipantStatus.Left;
                break;

            case JavaConsts.STATUS_FINISHED:
                status = Participant.ParticipantStatus.Finished;
                break;

            case JavaConsts.STATUS_UNRESPONSIVE:
                status = Participant.ParticipantStatus.Unresponsive;
                break;

            default:
                status = Participant.ParticipantStatus.Unknown;
                break;
            }

            AndroidJavaObject playerObj = JavaUtil.CallNullSafeObjectMethod(participant, "getPlayer");

            if (playerObj != null)
            {
                player = new GooglePlayGames.BasicApi.Multiplayer.Player(playerObj.Call <string>("getDisplayName"),
                                                                         playerObj.Call <string>("getPlayerId"));
                playerObj.Dispose();
                playerObj = null;
            }

            return(new Participant(displayName, participantId, status, player, connected));
        }
Exemplo n.º 4
0
        internal static Participant ToParticipant(AndroidJavaObject participant)
        {
            string displayName   = participant.Call <string>("getDisplayName");
            string participantId = participant.Call <string>("getParticipantId");

            Participant.ParticipantStatus status =
                AndroidJavaConverter.FromParticipantStatus(participant.Call <int>("getStatus"));
            bool   connectedToRoom = participant.Call <bool>("isConnectedToRoom");
            Player player          = null;

            try
            {
                using (var playerObject = participant.Call <AndroidJavaObject>("getPlayer"))
                {
                    player = ToPlayer(playerObject);
                }
            }
            catch (Exception)
            {
                // Unity throws exception for returned null
            }

            return(new Participant(displayName, participantId, status, player, connectedToRoom));
        }