refactor: remove NetStack dependency

This commit is contained in:
2022-07-31 18:02:17 +04:00
parent e2032f381a
commit 944cb65733
21 changed files with 65 additions and 2205 deletions
+1 -5
View File
@@ -1,8 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading;
using ENet;
using ENet;
using NLog;
namespace Ragon.Core
-2
View File
@@ -348,7 +348,6 @@ namespace Ragon.Core
_serializer.WriteUShort((ushort) entity.OwnerId);
_serializer.WriteUShort((ushort) payload.Length);
_serializer.WriteData(ref payload);
_serializer.WriteUShort((ushort) state.Length);
_serializer.WriteData(ref state);
}
@@ -367,7 +366,6 @@ namespace Ragon.Core
_serializer.WriteUShort((ushort) entity.OwnerId);
_serializer.WriteUShort((ushort) payload.Length);
_serializer.WriteData(ref payload);
_serializer.WriteUShort((ushort) state.Length);
_serializer.WriteData(ref state);
}
+2 -16
View File
@@ -1,7 +1,5 @@
using System;
using System.Collections.Generic;
using System.Linq;
using NetStack.Serialization;
using NLog;
using Ragon.Common;
@@ -11,7 +9,6 @@ public class Lobby : ILobby
{
private readonly ILogger _logger = LogManager.GetCurrentClassLogger();
private readonly RagonSerializer _serializer;
private readonly BitBuffer _buffer;
private readonly RoomManager _roomManager;
private readonly AuthorizationManager _authorizationManager;
private readonly IGameThread _gameThread;
@@ -22,7 +19,6 @@ public class Lobby : ILobby
{
_roomManager = manager;
_gameThread = gameThread;
_buffer = new BitBuffer();
_serializer = new RagonSerializer();
_authorizationManager = new AuthorizationManager(provider, gameThread, this, _serializer);
}
@@ -53,7 +49,6 @@ public class Lobby : ILobby
case RagonOperation.JOIN_ROOM:
{
var roomId = _serializer.ReadString();
roomId = _serializer.ReadString();
var exists = _roomManager.Rooms.Any(r => r.Id == roomId);
if (!exists)
{
@@ -90,13 +85,9 @@ public class Lobby : ILobby
return;
}
}
var propertiesPayload = _serializer.ReadData(_serializer.Size);
_buffer.Clear();
_buffer.FromSpan(ref propertiesPayload, propertiesPayload.Length);
var roomProperties = new RagonRoomParameters();
roomProperties.Deserialize(_buffer);
roomProperties.Deserialize(_serializer);
if (_roomManager.RoomsBySocket.ContainsKey(peerId))
_roomManager.Left(player, Array.Empty<byte>());
@@ -108,12 +99,7 @@ public class Lobby : ILobby
{
var roomId = Guid.NewGuid().ToString();
var roomProperties = new RagonRoomParameters();
var propertiesPayload = _serializer.ReadData(_serializer.Size);
_buffer.Clear();
_buffer.FromSpan(ref propertiesPayload, propertiesPayload.Length);
roomProperties.Deserialize(_buffer);
roomProperties.Deserialize(_serializer);
if (_roomManager.RoomsBySocket.ContainsKey(peerId))
_roomManager.Left(player, Array.Empty<byte>());
+13 -32
View File
@@ -1,7 +1,5 @@
using System;
using System.Collections.Generic;
using System.Runtime.CompilerServices;
using NetStack.Serialization;
using NLog;
using Ragon.Common;
@@ -15,7 +13,6 @@ namespace Ragon.Core
private Dictionary<ushort, SubscribeDelegate> _globalEvents = new();
private Dictionary<int, Dictionary<ushort, SubscribeEntityDelegate>> _entityEvents = new();
private readonly BitBuffer _buffer = new();
private readonly RagonSerializer _serializer = new();
protected IGameRoom GameRoom { get; private set; } = null!;
@@ -54,9 +51,9 @@ namespace Ragon.Core
return;
}
_buffer.Clear();
_buffer.FromSpan(ref raw, raw.Length);
data.Deserialize(_buffer);
_serializer.Clear();
_serializer.FromSpan(ref raw);
data.Deserialize(_serializer);
action.Invoke(player, data);
});
}
@@ -91,9 +88,9 @@ namespace Ragon.Core
return;
}
_buffer.Clear();
_buffer.FromSpan(ref raw, raw.Length);
data.Deserialize(_buffer);
_serializer.Clear();
_serializer.FromSpan(ref raw);
data.Deserialize(_serializer);
action.Invoke(player, ent, data);
});
@@ -111,9 +108,9 @@ namespace Ragon.Core
return;
}
_buffer.Clear();
_buffer.FromSpan(ref raw, raw.Length);
data.Deserialize(_buffer);
_serializer.Clear();
_serializer.FromSpan(ref raw);
data.Deserialize(_serializer);
action.Invoke(player, ent, data);
});
}
@@ -177,12 +174,8 @@ namespace Ragon.Core
_serializer.Clear();
_serializer.WriteOperation(RagonOperation.REPLICATE_EVENT);
_buffer.Clear();
payload.Serialize(_buffer);
payload.Serialize(_serializer);
var payloadData = _serializer.GetWritableData(_buffer.Length);
_buffer.ToSpan(ref payloadData);
var sendData = _serializer.ToArray();
GameRoom.Send(player.PeerId, sendData);
}
@@ -192,11 +185,7 @@ namespace Ragon.Core
_serializer.Clear();
_serializer.WriteOperation(RagonOperation.REPLICATE_EVENT);
_buffer.Clear();
payload.Serialize(_buffer);
var payloadData = _serializer.GetWritableData(_buffer.Length);
_buffer.ToSpan(ref payloadData);
payload.Serialize(_serializer);
var sendData = _serializer.ToArray();
GameRoom.Broadcast(sendData, DeliveryType.Reliable);
@@ -208,11 +197,7 @@ namespace Ragon.Core
_serializer.WriteOperation(RagonOperation.REPLICATE_ENTITY_EVENT);
_serializer.WriteInt(entity.EntityId);
_buffer.Clear();
payload.Serialize(_buffer);
var payloadData = _serializer.GetWritableData(_buffer.Length);
_buffer.ToSpan(ref payloadData);
payload.Serialize(_serializer);
var sendData = _serializer.ToArray();
GameRoom.Send(player.PeerId, sendData, DeliveryType.Reliable);
@@ -224,11 +209,7 @@ namespace Ragon.Core
_serializer.WriteOperation(RagonOperation.REPLICATE_ENTITY_EVENT);
_serializer.WriteInt(entity.EntityId);
_buffer.Clear();
payload.Serialize(_buffer);
var payloadData = _serializer.GetWritableData(_buffer.Length);
_buffer.ToSpan(ref payloadData);
payload.Serialize(_serializer);
var sendData = _serializer.ToArray();
GameRoom.Broadcast(sendData);