Compare commits

..

4 Commits

Author SHA1 Message Date
edmand46 530c6109ea fixed: serializer resize 2022-05-29 16:36:25 +04:00
edmand46 3efd73d8cb chore: update server version 2022-05-29 16:18:55 +04:00
edmand46 a85ac99a3c fixed: event replication 2022-05-29 16:15:26 +04:00
edmand46 e295e9f7db fixed: serializer 2022-05-28 12:11:35 +04:00
4 changed files with 12 additions and 8 deletions
+2 -1
View File
@@ -165,6 +165,7 @@ namespace Ragon.Common
public void FromSpan(ref ReadOnlySpan<byte> data) public void FromSpan(ref ReadOnlySpan<byte> data)
{ {
Clear(); Clear();
ResizeIfNeed(data.Length);
var dataSpan = _data.AsSpan(); var dataSpan = _data.AsSpan();
data.CopyTo(dataSpan); data.CopyTo(dataSpan);
_size = data.Length; _size = data.Length;
@@ -182,7 +183,7 @@ namespace Ragon.Common
if (_offset + lenght < _data.Length) if (_offset + lenght < _data.Length)
return; return;
var newData = new byte[_data.Length * 2]; var newData = new byte[_data.Length * 2 + lenght];
Buffer.BlockCopy(_data, 0, newData, 0, _data.Length); Buffer.BlockCopy(_data, 0, newData, 0, _data.Length);
_data = newData; _data = newData;
} }
-4
View File
@@ -26,8 +26,4 @@
<ProjectReference Include="..\Ragon.Common\Ragon.Common.csproj" /> <ProjectReference Include="..\Ragon.Common\Ragon.Common.csproj" />
</ItemGroup> </ItemGroup>
<ItemGroup>
<Folder Include="Sources\Utils" />
</ItemGroup>
</Project> </Project>
@@ -9,7 +9,7 @@ namespace Ragon.Core
public static class ConfigurationLoader public static class ConfigurationLoader
{ {
private static readonly Logger _logger = LogManager.GetCurrentClassLogger(); private static readonly Logger _logger = LogManager.GetCurrentClassLogger();
private static readonly string _serverVersion = "1.0.3-rc"; private static readonly string _serverVersion = "1.0.4-rc";
private static void CopyrightInfo() private static void CopyrightInfo()
{ {
+9 -2
View File
@@ -180,10 +180,10 @@ namespace Ragon.Core
return; return;
Span<byte> payloadRaw = stackalloc byte[_serializer.Size]; Span<byte> payloadRaw = stackalloc byte[_serializer.Size];
ReadOnlySpan<byte> payload = payloadRaw;
var payloadData = _serializer.ReadData(_serializer.Size); var payloadData = _serializer.ReadData(_serializer.Size);
payloadData.CopyTo(payloadRaw); payloadData.CopyTo(payloadRaw);
ReadOnlySpan<byte> payload = payloadRaw;
if (_plugin.InternalHandle(peerId, entityId, evntId, ref payload)) if (_plugin.InternalHandle(peerId, entityId, evntId, ref payload))
return; return;
@@ -200,13 +200,20 @@ namespace Ragon.Core
case RagonOperation.REPLICATE_EVENT: case RagonOperation.REPLICATE_EVENT:
{ {
var evntId = _serializer.ReadUShort(); var evntId = _serializer.ReadUShort();
var payload = _serializer.ReadData(_serializer.Size);
Span<byte> payloadRaw = stackalloc byte[_serializer.Size];
var payloadData = _serializer.ReadData(_serializer.Size);
payloadData.CopyTo(payloadRaw);
ReadOnlySpan<byte> payload = payloadRaw;
if (_plugin.InternalHandle(peerId, evntId, ref payload)) if (_plugin.InternalHandle(peerId, evntId, ref payload))
return; return;
_serializer.Clear(); _serializer.Clear();
_serializer.WriteOperation(RagonOperation.REPLICATE_EVENT); _serializer.WriteOperation(RagonOperation.REPLICATE_EVENT);
_serializer.WriteUShort(evntId); _serializer.WriteUShort(evntId);
_serializer.WriteData(ref payload);
var sendData = _serializer.ToArray(); var sendData = _serializer.ToArray();
Broadcast(_readyPlayers, sendData, DeliveryType.Reliable); Broadcast(_readyPlayers, sendData, DeliveryType.Reliable);
break; break;