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]); } } }
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); } }
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 _)); } }