fixed: missed entity type on restoring state
This commit is contained in:
@@ -281,19 +281,21 @@ namespace Ragon.Core
|
|||||||
}
|
}
|
||||||
case RagonOperation.SCENE_IS_LOADED:
|
case RagonOperation.SCENE_IS_LOADED:
|
||||||
{
|
{
|
||||||
Send(peerId, RagonOperation.RESTORE_BEGIN);
|
Send(peerId, RagonOperation.RESTORE_BEGIN, DeliveryType.Reliable);
|
||||||
foreach (var entity in _entities.Values)
|
foreach (var entity in _entities.Values)
|
||||||
{
|
{
|
||||||
var entityState = entity.State.AsSpan();
|
var entityState = entity.State.AsSpan();
|
||||||
var data = new byte[entity.State.Length + 10];
|
var data = new byte[entity.State.Length + 12];
|
||||||
|
|
||||||
Span<byte> sendData = data.AsSpan();
|
Span<byte> sendData = data.AsSpan();
|
||||||
Span<byte> operationData = sendData.Slice(0, 2);
|
Span<byte> operationData = sendData.Slice(0, 2);
|
||||||
Span<byte> entityData = sendData.Slice(2, 4);
|
Span<byte> entityTypeData = sendData.Slice(2, 2);
|
||||||
Span<byte> ownerData = sendData.Slice(6, 4);
|
Span<byte> entityData = sendData.Slice(4, 4);
|
||||||
Span<byte> entityStateData = sendData.Slice(10, entity.State.Length);
|
Span<byte> ownerData = sendData.Slice(8, 4);
|
||||||
|
Span<byte> entityStateData = sendData.Slice(12, entity.State.Length);
|
||||||
|
|
||||||
RagonHeader.WriteUShort((ushort) RagonOperation.CREATE_ENTITY, ref operationData);
|
RagonHeader.WriteUShort((ushort) RagonOperation.CREATE_ENTITY, ref operationData);
|
||||||
|
RagonHeader.WriteUShort(entity.EntityType, ref entityTypeData);
|
||||||
RagonHeader.WriteInt(entity.EntityId, ref entityData);
|
RagonHeader.WriteInt(entity.EntityId, ref entityData);
|
||||||
RagonHeader.WriteInt((int) entity.OwnerId, ref ownerData);
|
RagonHeader.WriteInt((int) entity.OwnerId, ref ownerData);
|
||||||
|
|
||||||
@@ -302,7 +304,7 @@ namespace Ragon.Core
|
|||||||
Send(peerId, data, DeliveryType.Reliable);
|
Send(peerId, data, DeliveryType.Reliable);
|
||||||
}
|
}
|
||||||
|
|
||||||
Send(peerId, RagonOperation.RESTORE_END);
|
Send(peerId, RagonOperation.RESTORE_END, DeliveryType.Reliable);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case RagonOperation.RESTORED:
|
case RagonOperation.RESTORED:
|
||||||
|
|||||||
Reference in New Issue
Block a user