예제 #1
0
        public void Serialize1()
        {
            StateArray sourceStateArray = new StateArray(64);

            sourceStateArray[0]  = true;
            sourceStateArray[1]  = true;
            sourceStateArray[8]  = true;
            sourceStateArray[32] = true;
            sourceStateArray[33] = true;
            sourceStateArray[62] = true;
            sourceStateArray[63] = true;
            byte[] serializedBytes = new byte[8];
            {
                OutgoingMessage outgoingMessage = new OutgoingMessage(serializedBytes);
                sourceStateArray.Serialize(outgoingMessage);
                serializedBytes = outgoingMessage.ToArray();
            }
            StateArray destinationStateArray = new StateArray(64);

            {
                IncomingMessage incomingMessage = new IncomingMessage(serializedBytes);
                destinationStateArray.Deserialize(incomingMessage);
            }
            for (int i = 0; i < 64; i++)
            {
                if (i == 0 || i == 1 || i == 8 || i == 32 || i == 33 || i == 62 || i == 63)
                {
                    Assert.IsTrue(destinationStateArray[i]);
                }
                else
                {
                    Assert.IsFalse(destinationStateArray[i]);
                }
            }
        }
예제 #2
0
 public void ServerUpdateSerializer_Serialization_Empty()
 {
     byte[] serializedData = new byte[1024];
     {
         EntityArray    entityArray    = EntityTests.CreateStandardEntityArray();
         EntitySnapshot entitySnapshot = new EntitySnapshot(3, EntityTests.CreateComponentsDefinition());
         entitySnapshot.Update(66, entityArray);
         OutgoingMessage outgoingMessage = new OutgoingMessage(serializedData);
         ServerUpdateSerializer.Serialize(outgoingMessage, null, entitySnapshot, 63, 13);
         serializedData = outgoingMessage.ToArray();
     }
     {
         EntitySnapshot entitySnapshot = new EntitySnapshot(3, EntityTests.CreateComponentsDefinition());
         ServerUpdateSerializer.Deserialize(new IncomingMessage(serializedData), new EntitySnapshot[0], entitySnapshot, out int latestClientTickAcknowledgedByServer, out int clientCommandingEntityID);
         Assert.AreEqual(63, latestClientTickAcknowledgedByServer);
         Assert.AreEqual(13, clientCommandingEntityID);
         Assert.AreEqual(66, entitySnapshot.ServerFrameTick);
         EntityTests.AssertStandardEntityArray(entitySnapshot.EntityArray);
     }
 }
예제 #3
0
 public void ServerUpdateSerializer_DeserializeIfNewer_IsNewer()
 {
     byte[] serializedData = new byte[1024];
     {
         EntitySnapshot entitySnapshot = new EntitySnapshot(3, EntityTests.CreateComponentsDefinition());
         entitySnapshot.Update(68, entitySnapshot.EntityArray);
         OutgoingMessage outgoingMessage = new OutgoingMessage(serializedData);
         ServerUpdateSerializer.Serialize(outgoingMessage, null, entitySnapshot, 73, 17);
         serializedData = outgoingMessage.ToArray();
     }
     {
         EntityArray    entityArray    = EntityTests.CreateStandardEntityArray();
         EntitySnapshot entitySnapshot = new EntitySnapshot(3, EntityTests.CreateComponentsDefinition());
         entitySnapshot.Update(65, entityArray);
         Assert.IsTrue(ServerUpdateSerializer.DeserializeIfNewer(new IncomingMessage(serializedData), new EntitySnapshot[0], entitySnapshot, out int latestClientTickAcknowledgedByServer, out int clientCommandingEntityID));
         Assert.AreEqual(73, latestClientTickAcknowledgedByServer);
         Assert.AreEqual(17, clientCommandingEntityID);
         Assert.AreEqual(68, entitySnapshot.ServerFrameTick);
         Assert.IsFalse(entitySnapshot.EntityArray.TryGetEntity(0, out _));
         Assert.IsFalse(entitySnapshot.EntityArray.TryGetEntity(1, out _));
         Assert.IsFalse(entitySnapshot.EntityArray.TryGetEntity(2, out _));
     }
 }