public override byte[] Serialize()
        {
            var encoder = new RakEncoder();

            encoder.Encode(TimeSinceStart);
            encoder.Encode(TimeSinceServerStart);

            return(encoder.Get());
        }
示例#2
0
        public override byte[] Serialize()
        {
            var encoder = new RakEncoder();

            encoder.Encode(EID);
            encoder.Encode(ID);

            return(encoder.Get());
        }
示例#3
0
        public override byte[] Serialize()
        {
            var encoder = new RakEncoder();

            encoder.Encode(Username);
            encoder.Encode(Message);

            return(encoder.Get());
        }
示例#4
0
        public override byte[] Serialize()
        {
            RakEncoder encoder = new RakEncoder();

            encoder.Encode((byte)Type);
            encoder.Encode(TimeSinceStart);
            encoder.Encode(Guid.Signed());
            encoder.AddMagic();
            encoder.Encode(Data);

            return(encoder.Get());
        }
示例#5
0
        public override byte[] Serialize()
        {
            RakEncoder encoder = new RakEncoder();

            encoder.Encode((byte)Type);
            encoder.AddMagic();

            switch (Type)
            {
            case PacketType.OpenConnectionReply1: {
                encoder.Encode(ServerGuid.Signed());
                encoder.Encode(UseEncryption);
                encoder.Encode(MtuSize);
                break;
            }

            case PacketType.OpenConnectionReply2: {
                encoder.Encode(ServerGuid.Signed());
                encoder.Encode(ClientAddress);
                encoder.Encode(MtuSize);
                encoder.Encode(UseEncryption);
                break;
            }

            default: Debug.Assert(false, "Unreachable."); break;
            }

            return(encoder.Get());
        }
        public override byte[] Serialize()
        {
            var encoder = new RakEncoder();

            encoder.Encode((int)Status);

            return(encoder.Get());
        }
示例#7
0
        public override byte[] Serialize()
        {
            var encoder = new RakEncoder();

            encoder.Encode(EID);
            encoder.Encode(Block);
            encoder.Encode(Stack);
            encoder.Encode(Meta);
            encoder.Encode(X);
            encoder.Encode(Y);
            encoder.Encode(Z);
            encoder.Encode(Yaw);
            encoder.Encode(Pitch);
            encoder.Encode(Roll);

            return(encoder.Get());
        }
示例#8
0
        public override byte[] Serialize()
        {
            var encoder = new RakEncoder();

            encoder.Encode(Flags);
            if (IsACKorNAK)
            {
                encoder.Encode(Count);
                encoder.Encode(MinEqualsMax);
                encoder.Encode(PacketMin);
                if (!MinEqualsMax)
                {
                    encoder.Encode(PacketMax);
                }
            }
            else
            {
                encoder.Encode(SequenceNumber);
                foreach (var enclosing in Enclosing)
                {
                    if (enclosing != null)
                    {
                        encoder.Encode(RakPacket.Create(enclosing));
                    }
                }
            }
            return(encoder.Get());
        }
示例#9
0
        public override byte[] Serialize()
        {
            var encoder = new RakEncoder();

            encoder.Encode(EID);
            encoder.Encode(Type);
            encoder.Encode(X);
            encoder.Encode(Y);
            encoder.Encode(Z);
            encoder.Encode(Yaw);
            encoder.Encode(Pitch);

            encoder.Encode((byte)0); // Metadata length
            encoder.Encode(Metadata);

            return(encoder.Get());
        }
示例#10
0
        public override byte[] Serialize()
        {
            var encoder = new RakEncoder();

            encoder.Encode(EID);
            encoder.Encode(Type);
            encoder.Encode(X);
            encoder.Encode(Y);
            encoder.Encode(Z);
            encoder.Encode(Did);
            if (Did > 0)
            {
                encoder.Encode(SpeedX);
                encoder.Encode(SpeedY);
                encoder.Encode(SpeedZ);
            }

            return(encoder.Get());
        }
示例#11
0
        public override byte[] Serialize() {
            var encoder = new RakEncoder();

            encoder.Encode(LevelSeed);
            encoder.Encode(Unknown);
            encoder.Encode(Gamemode);
            encoder.Encode(EntityID);
            encoder.Encode(PosX);
            encoder.Encode(PosY);
            encoder.Encode(PosZ);

            return encoder.Get();
        }
示例#12
0
        public override byte[] Serialize()
        {
            var encoder = new RakEncoder();

            encoder.Encode(Client);
            encoder.Encode((short)0); // SystemIndex
            encoder.Encode(new RakAddress(IPAddress.Loopback, 0));
            for (int i = 0; i < 9; i++)
            {
                encoder.Encode(new RakAddress(IPAddress.Any, 0));
            }

            encoder.Encode(TimeSinceStart);
            encoder.Encode(new RakTimestamp(0)); // another time since start

            return(encoder.Get());
        }
示例#13
0
        public static byte[] Create(RakPacket packet)
        {
            var encoder    = new RakEncoder();
            var serialized = packet.Serialize();

            encoder.Encode(packet.MessageFlags);
            encoder.Encode((short)((serialized.Length + 1) * 8));
            if ((packet.MessageFlags & IS_RELIABLE) != 0)
            {
                encoder.Encode(packet.ReliableNum);
            }
            if ((packet.MessageFlags & IS_ORDERED) != 0)
            {
                encoder.Encode(packet.OrderingIndex);
                encoder.Encode(packet.OrderingChannel);
            }
            encoder.Encode((byte)packet.MessageID);
            encoder.Encode(serialized);

            return(encoder.Get());
        }
示例#14
0
 public void Trivial_BigEndian()
 {
     Encoder.Encode(0xAABBCCDD.Signed());
     Assert.AreEqual(Encoder.Get().Length, 4);
     Assert.AreEqual(Encoder.Get(), new byte[] { 0xAA, 0xBB, 0xCC, 0xDD });
 }
示例#15
0
        public override byte[] Serialize()
        {
            var encoder = new RakEncoder();

            encoder.Encode(ID);
            encoder.Encode(Username);
            encoder.Encode(EID);
            encoder.Encode(X);
            encoder.Encode(Y);
            encoder.Encode(Z);
            encoder.Encode(Yaw);
            encoder.Encode(Pitch);
            encoder.Encode(ItemID);
            encoder.Encode(ItemAuxValue);

            encoder.Encode((byte)Metadata.Length); // Metadata length
            encoder.Encode(Metadata);

            return(encoder.Get());
        }