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)
{
Clear();
ResizeIfNeed(data.Length);
var dataSpan = _data.AsSpan();
data.CopyTo(dataSpan);
_size = data.Length;
@@ -182,7 +183,7 @@ namespace Ragon.Common
if (_offset + lenght < _data.Length)
return;
var newData = new byte[_data.Length * 2];
var newData = new byte[_data.Length * 2 + lenght];
Buffer.BlockCopy(_data, 0, newData, 0, _data.Length);
_data = newData;
}
-4
View File
@@ -26,8 +26,4 @@
<ProjectReference Include="..\Ragon.Common\Ragon.Common.csproj" />
</ItemGroup>
<ItemGroup>
<Folder Include="Sources\Utils" />
</ItemGroup>
</Project>
@@ -9,7 +9,7 @@ namespace Ragon.Core
public static class ConfigurationLoader
{
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()
{
+9 -2
View File
@@ -180,10 +180,10 @@ namespace Ragon.Core
return;
Span<byte> payloadRaw = stackalloc byte[_serializer.Size];
ReadOnlySpan<byte> payload = payloadRaw;
var payloadData = _serializer.ReadData(_serializer.Size);
payloadData.CopyTo(payloadRaw);
ReadOnlySpan<byte> payload = payloadRaw;
if (_plugin.InternalHandle(peerId, entityId, evntId, ref payload))
return;
@@ -200,13 +200,20 @@ namespace Ragon.Core
case RagonOperation.REPLICATE_EVENT:
{
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))
return;
_serializer.Clear();
_serializer.WriteOperation(RagonOperation.REPLICATE_EVENT);
_serializer.WriteUShort(evntId);
_serializer.WriteData(ref payload);
var sendData = _serializer.ToArray();
Broadcast(_readyPlayers, sendData, DeliveryType.Reliable);
break;