Indiefreaks.Xna.Sessions.Live.LiveSession.OnLivePlayerJoined C# (CSharp) Method

OnLivePlayerJoined() private method

Raised when a player joins the session
private OnLivePlayerJoined ( object sender, Microsoft.Xna.Framework.Net.GamerJoinedEventArgs e ) : void
sender object
e Microsoft.Xna.Framework.Net.GamerJoinedEventArgs
return void
        private void OnLivePlayerJoined(object sender, GamerJoinedEventArgs e)
        {
            IdentifiedPlayer identifiedPlayer = null;

            if (e.Gamer.IsLocal)
            {
                var localNetworkGamer = (LocalNetworkGamer) e.Gamer;

                IdentifiedPlayer[] localPlayersArray = new IdentifiedPlayer[SessionManager.LocalPlayers.Count];
                SessionManager.LocalPlayers.Values.CopyTo(localPlayersArray, 0);
                
                for (int i = 0; i < localPlayersArray.Length; i++)
                {
                    var localPlayer = localPlayersArray[i];

                    if (localPlayer.UniqueId == e.Gamer.Gamertag)
                    {
                        identifiedPlayer = new LiveIdentifiedPlayer(localPlayer.Input, localNetworkGamer);
                        _localPlayers.Add(identifiedPlayer);
                        _allPlayers.Add(identifiedPlayer);
                        break;
                    }
                }
            }
            else
            {
                NetworkGamer networkGamer = e.Gamer;
                identifiedPlayer = new LiveIdentifiedPlayer(networkGamer);
                _remotePlayers.Add(identifiedPlayer);
                _allPlayers.Add(identifiedPlayer);
            }

            OnPlayerJoined(identifiedPlayer);
        }