public VoiceChatPacketRouter(IMultiplayerSessionManager sessionManager, VoipSender voipSender, ICodecFactory codecFactory, DiContainer container)
        {
            _container     = container;
            SessionManager = sessionManager;
            //ConnectionManager = connectionManager;
            //VoipReceiver = voipReceiver;
            CodecFactory = codecFactory;
            VoipSender   = voipSender;
#if DEBUG
            dummyReceiver = container.InstantiateComponentOnNewGameObject <VoipReceiver>();
            var settings = new Codecs.Opus.OpusSettings()
            {
                SampleRate = 48000, Channels = 1
            };
            dummyReceiver.Initialize(sessionManager.localPlayer, codecFactory.CreateDecoder(Codecs.Opus.OpusDefaults.CodecId, settings));
            voipSender.OnAudioGenerated += (s, e) => { dummyReceiver.HandleAudioDataReceived(s, e); };
#endif
            AddEvents();
            sessionManager.RegisterSerializer((MultiplayerSessionManager.MessageType) 128, _mainSerializer);
            _mainSerializer.RegisterSubSerializer((byte)VoipPacketType.VoiceData, _voipDataSerializer);
            _mainSerializer.RegisterSubSerializer((byte)VoipPacketType.InfoRequest, _voipMetadataSerializer);
            _mainSerializer.RegisterSubSerializer((byte)VoipPacketType.VoiceMetadata, _voipMetadataSerializer);
            _voipDataSerializer.RegisterCallback((byte)VoipPacketType.VoiceData, HandleVoipDataPacket, VoipDataPacket.Obtain);
            Plugin.Log?.Debug($"VoiceChatPacketRouter Constructed.");
            foreach (IConnectedPlayer?player in sessionManager.connectedPlayers)
            {
                if (!player.isMe)
                {
                    CreatePlayerVoipReceiver(player.userId, player);
                }
            }
            //if (sessionManager.isConnected)
            IsConnected = true;
        }
        internal void Inject(IMultiplayerSessionManager sessionManager, HostLobbySetupViewController hostViewController, MultiplayerLevelLoader levelLoader)
        {
            this.sessionManager = sessionManager;
            base.DidActivate(true, false, true);

            hostViewController.didActivateEvent += OnActivate;
        }
示例#3
0
        internal void Inject(IMultiplayerSessionManager sessionManager, ClientLobbySetupViewController clientViewController)
        {
            this.sessionManager = sessionManager;
            base.DidActivate(true, false, true);

            clientViewController.didActivateEvent += OnActivate;
        }
示例#4
0
 internal CustomAvatarManager(PacketManager packetManager, PlayerAvatarManager avatarManager, IMultiplayerSessionManager sessionManager, IAvatarProvider <AvatarPrefab> avatarProvider)
 {
     _packetManager  = packetManager;
     _avatarManager  = avatarManager;
     _sessionManager = sessionManager;
     _avatarProvider = avatarProvider;
 }
 internal LobbyEnvironmentManager(PacketManager packetManager, IMultiplayerSessionManager sessionManager, LobbyPlaceManager placeManager, ExtendedPlayerManager playerManager)
 {
     _packetManager  = packetManager;
     _sessionManager = sessionManager;
     _placeManager   = placeManager;
     _playerManager  = playerManager;
 }
 internal CustomAvatarManager(PacketManager packetManager, FloorController floorController, PlayerAvatarManager avatarManager, IMultiplayerSessionManager sessionManager, IAvatarProvider <LoadedAvatar> avatarProvider)
 {
     _packetManager   = packetManager;
     _avatarManager   = avatarManager;
     _sessionManager  = sessionManager;
     _avatarProvider  = avatarProvider;
     _floorController = floorController;
 }
示例#7
0
 internal void Inject(IMultiplayerSessionManager sessionManager, ILobbyGameStateController gameStateController, CenterStageScreenController screenController)
 {
     this.sessionManager      = sessionManager;
     this.gameStateController = gameStateController;
     this.screenController    = screenController;
     base.DidActivate(true, false, true);
     loadIndicator.color = Color.white;
 }
示例#8
0
 internal LobbyEnvironmentManager(IMultiplayerSessionManager sessionManager, ILobbyStateDataModel lobbyStateDataModel, MenuEnvironmentManager menuEnvironmentManager, MultiplayerLobbyAvatarPlaceManager placeManager, MultiplayerLobbyCenterStageManager stageManager, ExtendedPlayerManager playerManager)
 {
     _sessionManager         = sessionManager;
     _lobbyStateDataModel    = lobbyStateDataModel;
     _menuEnvironmentManager = menuEnvironmentManager;
     _placeManager           = placeManager;
     _stageManager           = stageManager;
     _playerManager          = playerManager;
 }
 public void Dispose()
 {
     Plugin.Log?.Debug($"VoiceChatPacketRouter Disposed.");
     RemoveEvents();
     SessionManager = null !;
     //ConnectionManager = null!;
     VoipSender = null !;
     PlayerReceivers.Clear();
 }
 public SessionTracker(IMultiplayerSessionManager sessionManager, DiContainer container)
 {
     _sessionManager = sessionManager;
     _sessionManager.playerConnectedEvent    += OnPlayerConnected;
     _sessionManager.playerDisconnectedEvent += OnPlayerDisconnected;
     _sessionManager.disconnectedEvent       += OnDisconnected;
     _sessionManager.connectedEvent          += OnConnected;
     _container = container;
 }
示例#11
0
 internal SessionManager(IMultiplayerSessionManager sessionManager)
 {
     _sessionManager = sessionManager;
 }
示例#12
0
 internal GameStateControllerStub(IMultiplayerSessionManager sessionManager, PacketManager packetManager, ExtendedPlayerManager extendedPlayerManager)
 {
     _sessionManager        = sessionManager;
     _packetManager         = packetManager;
     _extendedPlayerManager = extendedPlayerManager;
 }
示例#13
0
 internal void Inject(IMultiplayerSessionManager sessionManager, HostLobbySetupViewController hostViewController)
 {
     this.sessionManager = sessionManager;
     base.DidActivate(true, false, true);
 }
 internal LobbyPlaceManager(IMultiplayerSessionManager sessionManager, ILobbyStateDataModel lobbyStateDataModel, MultiplayerLobbyAvatarPlaceManager placeManager)
 {
     _sessionManager      = sessionManager;
     _lobbyStateDataModel = lobbyStateDataModel;
     _placeManager        = placeManager;
 }
示例#15
0
 internal PacketManager(IMultiplayerSessionManager sessionManager)
 {
     _sessionManager = (sessionManager as MultiplayerSessionManager) !;
 }