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 id = reader.ReadString();
var scene = reader.ReadString(); var scene = reader.ReadString();
var players = reader.ReadUShort();
var maxPlayers = reader.ReadUShort(); var maxPlayers = reader.ReadUShort();
var minPlayers = reader.ReadUShort(); var minPlayers = reader.ReadUShort();
var players = reader.ReadUShort();
var roomInfo = new RagonRoomInformation() var roomInfo = new RagonRoomInformation()
{ {
Id = id, Id = id,
+2
View File
@@ -179,6 +179,7 @@ namespace Ragon.Client
public void AddListener(IRagonSceneListener listener) => _listeners.Add(listener); public void AddListener(IRagonSceneListener listener) => _listeners.Add(listener);
public void AddListener(IRagonSceneRequestListener listener) => _listeners.Add(listener); public void AddListener(IRagonSceneRequestListener listener) => _listeners.Add(listener);
public void AddListener(IRagonDataListener 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(IRagonListener listener) => _listeners.Remove(listener);
public void RemoveListener(IRagonAuthorizationListener listener) => _listeners.Remove(listener); public void RemoveListener(IRagonAuthorizationListener listener) => _listeners.Remove(listener);
public void RemoveListener(IRagonConnectionListener 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(IRagonSceneListener listener) => _listeners.Remove(listener);
public void RemoveListener(IRagonSceneRequestListener listener) => _listeners.Remove(listener); public void RemoveListener(IRagonSceneRequestListener listener) => _listeners.Remove(listener);
public void RemoveListener(IRagonDataListener listener) => _listeners.Remove(listener); public void RemoveListener(IRagonDataListener listener) => _listeners.Remove(listener);
public void RemoveListener(IRagonRoomListListener listener) => _listeners.Remove(listener);
#endregion #endregion
+10
View File
@@ -132,6 +132,11 @@ namespace Ragon.Client
_playerLeftListeners.Add(listener); _playerLeftListeners.Add(listener);
} }
public void Add(IRagonRoomListListener listener)
{
_roomListListeners.Add(listener);
}
public void Remove(IRagonDataListener listener) public void Remove(IRagonDataListener listener)
{ {
_delayedActions.Add(() => _dataListeners.Remove(listener)); _delayedActions.Add(() => _dataListeners.Remove(listener));
@@ -186,6 +191,11 @@ namespace Ragon.Client
{ {
_delayedActions.Add(() => _playerLeftListeners.Remove(listener)); _delayedActions.Add(() => _playerLeftListeners.Remove(listener));
} }
public void Remove(IRagonRoomListListener listener)
{
_delayedActions.Add(() => _roomListListeners.Remove(listener));
}
public void OnAuthorizationSuccess(string playerId, string playerName, string payload) public void OnAuthorizationSuccess(string playerId, string playerName, string payload)
{ {
@@ -15,7 +15,7 @@ public class RagonLobbyDispatcher
public void Write(RagonBuffer writer) public void Write(RagonBuffer writer)
{ {
writer.Clear(); writer.Clear();
writer.Write((byte)RagonOperation.ROOM_LIST_UPDATED); writer.WriteOperation(RagonOperation.ROOM_LIST_UPDATED);
var rooms = _lobby.Rooms; var rooms = _lobby.Rooms;
writer.WriteUShort((ushort)rooms.Count); writer.WriteUShort((ushort)rooms.Count);
@@ -2,7 +2,7 @@ namespace Ragon.Server.Logging
{ {
public class LoggerManager public class LoggerManager
{ {
private static IRagonLoggerFactory _factory; private static IRagonLoggerFactory _factory = null!;
public static void SetLoggerFactory(IRagonLoggerFactory loggerFactory) public static void SetLoggerFactory(IRagonLoggerFactory loggerFactory)
{ {
+1 -1
View File
@@ -111,7 +111,7 @@ public class RagonServer : IRagonServer, INetworkListener
if (_timer.ElapsedMilliseconds > _tickRate) if (_timer.ElapsedMilliseconds > _tickRate)
{ {
_timer.Restart(); _timer.Restart();
_scheduler.Update(_timer.ElapsedMilliseconds / 1000.0f); _scheduler.Update(_tickRate);
SendTimestamp(); SendTimestamp();
} }
@@ -16,6 +16,9 @@ public class RagonActionTimer: IRagonAction
{ {
_timer += dt; _timer += dt;
if (_timer >= _time) if (_timer >= _time)
{
_callback?.Invoke(); _callback?.Invoke();
_timer = 0;
}
} }
} }