public void SerializeAreAddedWhenEmptyInStruct()
        {
            NetworkWriter writer = new NetworkWriter();

            const int someValue = 3;

            writer.Write(new SomeStructMessage
            {
                someValue = someValue,
            });

            byte[] arr = writer.ToArray();

            NetworkReader     reader   = new NetworkReader(arr);
            SomeStructMessage received = reader.Read <SomeStructMessage>();

            Assert.AreEqual(someValue, received.someValue);

            int writeLength = writer.Length;
            int readLength  = reader.Position;

            Assert.That(writeLength == readLength, $"OnSerializeAll and OnDeserializeAll calls write the same amount of data\n    writeLength={writeLength}\n    readLength={readLength}");
        }
示例#2
0
        public void SendsVauesInParentAndChildClass()
        {
            var writer = new NetworkWriter();

            writer.Write(new ChildMessage
            {
                parentValue = 3,
                childValue  = 4
            });

            byte[] arr = writer.ToArray();

            var          reader   = new NetworkReader(arr);
            ChildMessage received = reader.Read <ChildMessage>();

            Assert.AreEqual(3, received.parentValue);
            Assert.AreEqual(4, received.childValue);

            int writeLength = writer.Length;
            int readLength  = reader.Position;

            Assert.That(writeLength == readLength, $"OnSerializeAll and OnDeserializeAll calls write the same amount of data\n    writeLength={writeLength}\n    readLength={readLength}");
        }
示例#3
0
    public static Skill ReadItem(this NetworkReader reader)
    {
        byte type = reader.ReadByte();

        switch (type)
        {
        case BASICATTACK:
            return(new BasicAttack
            {
                damage = reader.ReadInt32(),
                name = reader.ReadString(),
                description = reader.ReadString()
            });

        case BASICHEAL:
            return(new BasicHeal
            {
                heal = reader.ReadInt32(),
                name = reader.ReadString(),
                description = reader.ReadString()
            });

        case BASICFIREBALL:
            return(new Fireball
            {
                effect = reader.Read <Effect>(),
                fireDamage = reader.ReadInt32(),
                damage = reader.ReadInt32(),
                name = reader.ReadString(),
                description = reader.ReadString()
            });

        default:
            throw new Exception($"Invalid weapon type {type}");
        }
    }
示例#4
0
        public void AuthRequestMessageTest()
        {
            // try setting value with constructor
            var message = new AuthRequestMessage
            {
                serverCode = "abc",
            };

            Assert.That(message.serverCode, Is.EqualTo("abc"));

            // serialize
            var writer = new NetworkWriter(1300);

            writer.Write(message);

            // try deserialize
            var reader = new NetworkReader();

            reader.Reset(writer.ToArraySegment());
            AuthRequestMessage fresh = reader.Read <AuthRequestMessage>();

            Assert.That(fresh.serverCode, Is.EqualTo("abc"));
            reader.Dispose();
        }
示例#5
0
 /// <summary>
 /// call the base method when overriding
 /// <para/>
 /// note: no constructor is called before this,
 /// so fields won't be initialized.
 /// </summary>
 public virtual void Deserialize(NetworkReader reader)
 {
     From = reader.Read <uint>();
     To   = reader.Read <uint>();
 }
示例#6
0
 public void Deserialize(NetworkReader br)
 {
     br.Read(out onGround);
 }
示例#7
0
 public void Deserialize(NetworkReader br)
 {
     br.Read(out chunkX);
     br.Read(out chunkZ);
 }
 public override void Deserialize(NetworkReader reader)
 {
     base.Deserialize(reader);
     TargetId            = reader.Read <uint>();
     LocalDisturbancePos = reader.ReadVector3();
 }
示例#9
0
 public void Deserialize(NetworkReader br)
 {
     br.Read(out targetPlayer, 16);
 }
        public void CopyFromOtherWriterAligned()
        {
            otherWriter.Write(1, 8);
            otherWriter.Write(2, 8);
            otherWriter.Write(3, 8);
            otherWriter.Write(4, 8);
            otherWriter.Write(5, 8);


            writer.CopyFromWriter(otherWriter, 0, 5 * 8);

            var segment = writer.ToArraySegment();

            reader.Reset(segment);

            Assert.That(reader.Read(8), Is.EqualTo(1));
            Assert.That(reader.Read(8), Is.EqualTo(2));
            Assert.That(reader.Read(8), Is.EqualTo(3));
            Assert.That(reader.Read(8), Is.EqualTo(4));
            Assert.That(reader.Read(8), Is.EqualTo(5));
        }
 public override void Deserialize(NetworkReader reader)
 {
     base.Deserialize(reader);
     MeteorId    = reader.Read <int>();
     LaunchSpeed = reader.Read <float>();
 }
示例#12
0
 public void Deserialize(NetworkReader br)
 {
     br.Read(out worldAge);
     br.Read(out timeOfDay);
 }
示例#13
0
 public void Deserialize(NetworkReader br)
 {
     br.Read(out experienceBar);
     br.ReadVarInt(out level);
     br.ReadVarInt(out totalExperience);
 }
示例#14
0
 public void Deserialize(NetworkReader br)
 {
     br.ReadVarInt(out entityID);
     br.Read(out animation);
 }
示例#15
0
文件: Pong.cs 项目: walklook/Cubizer
 public void Deserialize(NetworkReader br)
 {
     br.Read(out payload);
 }
示例#16
0
 public void Deserialize(NetworkReader br)
 {
     br.Read(out windowID);
     br.Read(out property);
     br.Read(out value);
 }
示例#17
0
 public void Deserialize(NetworkReader reader)
 {
     this.serializer = OrbSerializerCatalog.GetDef(reader.ReadBits <OrbSerializerCatalog.Index>()) !;
     this.orb        = this.serializer.CreateInstance();
     reader.Read(ref this.orb, this.serializer);
 }
示例#18
0
 public void Deserialize(NetworkReader br)
 {
     br.Read(out health);
     br.ReadVarInt(out food);
     br.Read(out foodSaturation);
 }
示例#19
0
 public void Deserialize(NetworkReader br)
 {
     br.Read(out entityID);
     br.Read(out entityStatus);
 }
 public override void Deserialize(NetworkReader reader)
 {
     base.Deserialize(reader);
     Id      = reader.Read <int>();
     Message = reader.ReadString();
 }
 public void Deserialize(NetworkReader reader)
 {
     _pingType = PingCatalog.Get(reader.ReadInt32());
     _pingData = reader.Read <PingCatalog.PingData>();
 }
 public override void Deserialize(NetworkReader reader)
 {
     base.Deserialize(reader);
     PlayerId = reader.Read <uint>();
 }
 public override void Deserialize(NetworkReader reader)
 {
     base.Deserialize(reader);
     Active = reader.Read <bool>();
     Angle  = reader.Read <float>();
 }
示例#24
0
 public void Deserialize(NetworkReader br)
 {
     br.Read(out matches);
 }
示例#25
0
 public void Deserialize(NetworkReader br)
 {
     br.ReadVarInt(out entityID);
     br.Read(out objectUUID);
     br.Read(out type);
     br.Read(out x);
     br.Read(out y);
     br.Read(out z);
     br.Read(out yaw);
     br.Read(out pitch);
     br.Read(out data);
     br.Read(out velocityX);
     br.Read(out velocityY);
     br.Read(out velocityZ);
 }
示例#26
0
 public override void Deserialize(NetworkReader reader)
 {
     base.Deserialize(reader);
     ServerTime = reader.Read <float>();
     LoopCount  = reader.Read <int>();
 }
 public override void Deserialize(NetworkReader reader)
 {
     base.Deserialize(reader);
     ObjectId = reader.Read <int>();
 }
示例#28
0
 public void Deserialize(NetworkReader br)
 {
     br.Read(out windowID);
     br.Read(out count);
 }
示例#29
0
 protected override void Deserialize(NetworkReader reader) => Value = reader.Read <T>();
示例#30
0
 public T ReadMessage <T>() where T : Message, new()
 {
     return(reader.Read <T>());
 }