public OutgoingServerChannel( NetworkTransportConfig config, ServerUdpPacketTransport transport, IPacketEncryptor packetEncryption, ILogger logger) { this._config = config ?? throw new ArgumentNullException(nameof(config)); this._transport = transport ?? throw new ArgumentNullException(nameof(transport)); this._packetEncryption = packetEncryption ?? throw new ArgumentNullException(nameof(packetEncryption)); this._logger = logger ?? throw new ArgumentNullException(nameof(logger)); this._clientEntitiesToRemove = new AppendOnlyList <Entity>(64); }
public IncomingServerChannel( ServerUdpPacketTransport transport, IPacketEncryptor packetEncryption, ControlPlaneServerController controlPacketController, SimulationServerController simulationPacketController, ILogger logger) { this._isRunning = false; this._transport = transport ?? throw new ArgumentNullException(nameof(transport)); this._packetEncryption = packetEncryption ?? throw new ArgumentNullException(nameof(packetEncryption)); this._controlPacketController = controlPacketController ?? throw new ArgumentNullException(nameof(controlPacketController)); this._simulationPacketController = simulationPacketController ?? throw new ArgumentNullException(nameof(simulationPacketController)); this._logger = logger ?? throw new ArgumentNullException(nameof(logger)); }
public GameServer( IServerConfig serverConfig, ILogger logger) { this._serverConfig = serverConfig ?? throw new ArgumentNullException(nameof(serverConfig)); this._logger = logger ?? throw new ArgumentNullException(nameof(logger)); this.Commander = new GameServerCommander(this); this._udpTransport = new ServerUdpPacketTransport( this._logger, serverConfig.NetworkTransport.PacketEncryptor, serverConfig.NetworkTransport, serverConfig.UdpServer); this._outgoingChannel = new OutgoingServerChannel( serverConfig.NetworkTransport, this._udpTransport, serverConfig.NetworkTransport.PacketEncryptor, this._logger); this._playerConnectionManager = new PlayerConnectionManager( this._logger, this._serverConfig.PlayerConnection); this._gameWorlds = new GameWorlds( this._logger, this._serverConfig, this._outgoingChannel, serverConfig.Server.WorldsCapacity); this._incomingChannel = new IncomingServerChannel( this._udpTransport, serverConfig.NetworkTransport.PacketEncryptor, new ControlPlaneServerController( this._logger, this._playerConnectionManager, this._outgoingChannel, this._gameWorlds), new SimulationServerController( this._logger, this._playerConnectionManager, this._gameWorlds), this._logger); this._worldLoader = new GameWorldLoader(); }