Files
Ragon/Ragon.Common/Protocol/Data/SnapshotData.cs
T
2022-04-24 09:05:15 +04:00

45 lines
958 B
C#

using NetStack.Serialization;
using Ragon.Common;
namespace Ragon.Core
{
public class EntityData: IData
{
public int EntityId;
public byte[] State;
public void Serialize(BitBuffer buffer)
{
buffer.AddInt(EntityId);
buffer.AddBytes(State);
}
public void Deserialize(BitBuffer buffer)
{
EntityId = buffer.ReadInt();
State = buffer.ReadBytes();
}
}
public class SnapshotData: IData
{
public EntityData[] Entities;
public void Serialize(BitBuffer buffer)
{
buffer.AddInt(Entities.Length);
foreach (var entityData in Entities)
entityData.Serialize(buffer);
}
public void Deserialize(BitBuffer buffer)
{
var entitiesSize = buffer.ReadInt();
var i = 0;
Entities = new EntityData[entitiesSize];
while (i < entitiesSize)
{
Entities[i] = new EntityData();
Entities[i].Deserialize(buffer);
}
}
}
}