Пример #1
0
        public void StartServer(int port)
        {
            EventBasedNetListener listener = new EventBasedNetListener();

            listener.ConnectionRequestEvent += OnConnectionRequest;
            listener.PeerConnectedEvent     += OnPeerConnected;
            listener.PeerDisconnectedEvent  += OnPeerDisconnected;
            listener.NetworkReceiveEvent    += OnNetworkReceive;

            server = new NetManager(listener)
            {
                AutoRecycle = true,
#if DEBUG
                SimulateLatency      = true,
                SimulatePacketLoss   = true,
                SimulationMinLatency = 50,
                SimulationMaxLatency = 100,
#endif
            };

            PlayerManager   = new PlayerManager();
            PacketProcessor = new NetPacketProcessor();
            LiteNetLibUtils.RegisterAllPacketNestedTypes(PacketProcessor);
            LiteNetLibUtils.RegisterAllPacketProcessorsInCallingAssembly(PacketProcessor);

            server.Start(port);

            SimulatedWorld.Initialize();

            LocalPlayer.SetNetworkProvider(this);
            LocalPlayer.IsMasterClient = true;

            // TODO: Load saved player info here
            LocalPlayer.SetPlayerData(new PlayerData(PlayerManager.GetNextAvailablePlayerId(), new Float3(1.0f, 0.6846404f, 0.243137181f)));
        }
        public void Connect(string ip, int port)
        {
            serverIp   = ip;
            serverPort = port;

            EventBasedNetListener listener = new EventBasedNetListener();

            listener.PeerConnectedEvent    += OnPeerConnected;
            listener.PeerDisconnectedEvent += OnPeerDisconnected;
            listener.NetworkReceiveEvent   += OnNetworkReceive;

            client = new NetManager(listener)
            {
                AutoRecycle = true,
            };

            PacketProcessor = new NetPacketProcessor();
            LiteNetLibUtils.RegisterAllPacketNestedTypes(PacketProcessor);
            LiteNetLibUtils.RegisterAllPacketProcessorsInCallingAssembly(PacketProcessor);

            client.Start();
            client.Connect(ip, port, "nebula");

            SimulatedWorld.Initialize();

            LocalPlayer.IsMasterClient = false;
            LocalPlayer.SetNetworkProvider(this);
        }
Пример #3
0
        public Server()
        {
            server = new NetManager(this)
            {
                AutoRecycle = true,
            };

            playerManager   = new PlayerManager();
            PacketProcessor = new NetPacketProcessor();
            LiteNetLibUtils.RegisterAllPacketNestedTypes(PacketProcessor);

            PacketProcessor.SubscribeReusable <Movement, NebulaConnection> (OnPlayerMovement);
            PacketProcessor.SubscribeReusable <PlayerAnimationUpdate, NebulaConnection> (OnPlayerAnimationUpdate);
            PacketProcessor.SubscribeReusable <VegeMined, NebulaConnection>(OnVegeMinedUpdate);
        }
Пример #4
0
        public Client()
        {
            EventBasedNetListener listener = new EventBasedNetListener();

            listener.PeerConnectedEvent    += OnPeerConnected;
            listener.PeerDisconnectedEvent += OnPeerDisconnected;
            listener.NetworkReceiveEvent   += OnNetworkReceive;

            client = new NetManager(listener)
            {
                AutoRecycle = true,
            };

            PacketProcessor = new NetPacketProcessor();
            LiteNetLibUtils.RegisterAllPacketNestedTypes(PacketProcessor);

            PacketProcessor.SubscribeReusable <JoinSessionConfirmed>((_) => { IsSessionJoined = true; });
        }