fix: timer, providing api for listeners

This commit is contained in:
2024-04-13 18:25:39 +03:00
parent c4811ef052
commit bd0c6df5ea
7 changed files with 20 additions and 5 deletions
@@ -21,10 +21,10 @@ internal class RoomListHandler: IHandler
{
var id = reader.ReadString();
var scene = reader.ReadString();
var players = reader.ReadUShort();
var maxPlayers = reader.ReadUShort();
var minPlayers = reader.ReadUShort();
var players = reader.ReadUShort();
var roomInfo = new RagonRoomInformation()
{
Id = id,
+2
View File
@@ -179,6 +179,7 @@ namespace Ragon.Client
public void AddListener(IRagonSceneListener listener) => _listeners.Add(listener);
public void AddListener(IRagonSceneRequestListener listener) => _listeners.Add(listener);
public void AddListener(IRagonDataListener listener) => _listeners.Add(listener);
public void AddListener(IRagonRoomListListener listener) => _listeners.Add(listener);
public void RemoveListener(IRagonListener listener) => _listeners.Remove(listener);
public void RemoveListener(IRagonAuthorizationListener listener) => _listeners.Remove(listener);
public void RemoveListener(IRagonConnectionListener listener) => _listeners.Remove(listener);
@@ -191,6 +192,7 @@ namespace Ragon.Client
public void RemoveListener(IRagonSceneListener listener) => _listeners.Remove(listener);
public void RemoveListener(IRagonSceneRequestListener listener) => _listeners.Remove(listener);
public void RemoveListener(IRagonDataListener listener) => _listeners.Remove(listener);
public void RemoveListener(IRagonRoomListListener listener) => _listeners.Remove(listener);
#endregion
+10
View File
@@ -132,6 +132,11 @@ namespace Ragon.Client
_playerLeftListeners.Add(listener);
}
public void Add(IRagonRoomListListener listener)
{
_roomListListeners.Add(listener);
}
public void Remove(IRagonDataListener listener)
{
_delayedActions.Add(() => _dataListeners.Remove(listener));
@@ -186,6 +191,11 @@ namespace Ragon.Client
{
_delayedActions.Add(() => _playerLeftListeners.Remove(listener));
}
public void Remove(IRagonRoomListListener listener)
{
_delayedActions.Add(() => _roomListListeners.Remove(listener));
}
public void OnAuthorizationSuccess(string playerId, string playerName, string payload)
{
@@ -15,7 +15,7 @@ public class RagonLobbyDispatcher
public void Write(RagonBuffer writer)
{
writer.Clear();
writer.Write((byte)RagonOperation.ROOM_LIST_UPDATED);
writer.WriteOperation(RagonOperation.ROOM_LIST_UPDATED);
var rooms = _lobby.Rooms;
writer.WriteUShort((ushort)rooms.Count);
@@ -2,7 +2,7 @@ namespace Ragon.Server.Logging
{
public class LoggerManager
{
private static IRagonLoggerFactory _factory;
private static IRagonLoggerFactory _factory = null!;
public static void SetLoggerFactory(IRagonLoggerFactory loggerFactory)
{
+1 -1
View File
@@ -111,7 +111,7 @@ public class RagonServer : IRagonServer, INetworkListener
if (_timer.ElapsedMilliseconds > _tickRate)
{
_timer.Restart();
_scheduler.Update(_timer.ElapsedMilliseconds / 1000.0f);
_scheduler.Update(_tickRate);
SendTimestamp();
}
@@ -16,6 +16,9 @@ public class RagonActionTimer: IRagonAction
{
_timer += dt;
if (_timer >= _time)
{
_callback?.Invoke();
_timer = 0;
}
}
}