コード例 #1
0
        protected override void HandlePacket(PacketQueueEntry queueEntry)
        {
            try
            {
                switch (queueEntry.PacketId)
                {
                case PacketId.PACKET_ID_CAMERA_SYNC:
                    CameraSyncPacket cameraPureSyncPacket = new CameraSyncPacket();
                    cameraPureSyncPacket.Read(queueEntry.Data);
                    HandleCameraSyncPacket(queueEntry.Client, cameraPureSyncPacket);
                    break;

                case PacketId.PACKET_ID_PLAYER_PURESYNC:
                    PlayerPureSyncPacket playerPureSyncPacket = new PlayerPureSyncPacket();
                    playerPureSyncPacket.Read(queueEntry.Data);
                    HandleClientPureSyncPacket(queueEntry.Client, playerPureSyncPacket);
                    break;
                }
            } catch (Exception e)
            {
                Debug.WriteLine("Handling packet failed");
                Debug.WriteLine(string.Join(", ", queueEntry.Data));
                Debug.WriteLine($"{e.Message}\n{e.StackTrace}");
            }
        }
コード例 #2
0
        public async void HandlePackets()
        {
            while (true)
            {
                while (this.packetQueue.TryDequeue(out PacketQueueEntry queueEntry))
                {
                    try
                    {
                        Console.WriteLine(queueEntry.PacketId);
                        switch (queueEntry.PacketId)
                        {
                        case PacketId.PACKET_ID_CAMERA_SYNC:
                            CameraSyncPacket cameraPureSyncPacket = new CameraSyncPacket();
                            cameraPureSyncPacket.Read(queueEntry.Data);
                            HandleCameraSyncPacket(queueEntry.Client, cameraPureSyncPacket);
                            break;

                        case PacketId.PACKET_ID_PLAYER_PURESYNC:
                            PlayerPureSyncPacket playerPureSyncPacket = new PlayerPureSyncPacket();
                            playerPureSyncPacket.Read(queueEntry.Data);
                            HandlePlayerPureSyncPacket(queueEntry.Client, playerPureSyncPacket);
                            break;
                        }
                    } catch (Exception e)
                    {
                        Console.WriteLine("Handling packet failed");
                        Console.WriteLine(string.Join(", ", queueEntry.Data));
                        //Console.WriteLine($"{e.Message}\n{e.StackTrace}");
                    }
                }
                await Task.Delay(this.sleepInterval);
            }
        }
コード例 #3
0
    public void WritePacket_MatchesExpectedByteArray()
    {
        var packet = new CameraSyncPacket(0, new Vector3(-2377, -1636, 700), new Vector3(0, 0, 720));

        var result = packet.Write();

        result.Should().Equal(this.testPacket);
    }
コード例 #4
0
    public void ReadPacket_ReadsValuesProperly()
    {
        var packet = new CameraSyncPacket();

        packet.Read(this.testPacket);

        packet.IsFixed.Should().BeTrue();
        packet.TargetId.Should().Be(0);
        packet.Position.Should().Be(new Vector3(-2377, -1636, 700));
        packet.LookAt.Should().Be(new Vector3(0, 0, 720));
    }
コード例 #5
0
 private void HandleCameraSyncPacket(Client client, CameraSyncPacket packet)
 {
     //Debug.WriteLine($"client {client.Id} camera sync: isFixed: {packet.IsFixed}, position: {packet.Position}, lookAt: {packet.LookAt}, target: {packet.TargetId}");
 }