45 lines
958 B
C#
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);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|