Exemple #1
0
 /// <summary>
 /// Reloads the players.
 /// </summary>
 /// <param name="callback">Callback.</param>
 internal void ReloadPlayers(Action callback)
 {
     Player.LoadPlayersByIDs(gkMatch.playerIDs.Cast <string>().ToArray(), delegate(Player[] Players) {
         _players = Players;
         callback();
         callback = null;
     });
 }
Exemple #2
0
        /// <summary>
        /// Initializes the wrapper.
        /// </summary>
        /// <param name="nsObj">The NSObject.</param>
        /// <param name="id">Identifier.</param>
        protected override void _InitWrapper(NSObject nsObj, string id = null)
        {
            base._InitWrapper(nsObj, id);

            // raise event when player state changes
            gkVoiceChat.playerStateUpdateHandler = delegate(string playerID, GKVoiceChatPlayerState state) {
                Player.LoadPlayersByIDs(new string[] { playerID }, delegate(Player[] players) {
                    if (_nsObject != null)
                    {
                        if (_playerStateChangedHandlers != null)
                        {
                            _playerStateChangedHandlers(this, new VoiceChatPlayerStateChangedEventArgs(this, (players.Length > 0) ? players[0] : null, state));
                        }
                    }
                });
            };

            nsObj = null;
        }
Exemple #3
0
 /// <summary>
 /// Reloads the players.
 /// </summary>
 /// <param name="callback">Callback.</param>
 public void ReloadPlayers(Action callback)
 {
     if (_participants == null)
     {
         callback();
         callback = null;
     }
     else
     {
         var playerIDs = _participants.Select(x => x.playerID).ToArray();
         //			Debug.Log("ReloadPlayers IDs: " + Json.Serialize(playerIDs));
         Player.LoadPlayersByIDs(playerIDs, delegate(Player[] players) {
             for (int i = 0; i < _participants.Length; i++)
             {
                 _participants[i]._player = players[i];
             }
             callback();
             callback = null;
         });
     }
 }
        internal static void _MatchInviteHandler(GKInvite acceptedInvite, object[] playersToInvite)
        {
            if (acceptedInvite != null)
            {
                // show new view controller
                var mmvc = new GKMatchmakerViewController(acceptedInvite);
                mmvc.matchmakerDelegate = MatchmakerViewControllerDelegate.instance;

                UIApplication.deviceRootViewController.PresentViewController(mmvc, true, null);

                // load players and dispatch event
                Player.LoadPlayersByIDs(new string[] { acceptedInvite.inviter }, delegate(Player[] players) {
                    if (players.Length > 0)
                    {
                        if (_inviteAcceptedHandlers != null)
                        {
                            _inviteAcceptedHandlers(null, new InviteAcceptedEventArgs(players[0], acceptedInvite.playerGroup, acceptedInvite.playerAttributes));
                        }
                    }

                    acceptedInvite = null;
                });

                mmvc = null;
            }
            else if (playersToInvite != null)
            {
                // load players and dispatch event
                Player.LoadPlayersByIDs(playersToInvite.Cast <string>().ToArray(), delegate(Player[] players) {
                    if (players.Length > 0)
                    {
                        if (_playersInvitedHandlers != null)
                        {
                            _playersInvitedHandlers(null, new PlayersInvitedEventArgs(players));
                        }
                    }
                });
            }
        }