Files
AIC-Project/Client/Assets/Framework/Shared/IGameServerRoom.cs
T
2026-07-10 10:24:29 +08:00

25 lines
854 B
C#

using System.Collections.Generic;
namespace XWorld.Framework
{
public interface IRoomCtx
{
IRandom Random { get; } // 权威随机
ITimer Timer { get; }
ILogger Logger { get; }
IStorage Storage { get; }
void Broadcast(NetMessage message);
void SendTo(int playerId, NetMessage message);
void EndRoom(); // 由小游戏逻辑请求结束本房间(无结算结果)
void EndRoom(RoomEndResult result); // 带结算结果结束;result 可为 null,等价无参
}
public interface IGameServerRoom
{
void OnRoomStart(IReadOnlyList<PlayerInfo> players, IRoomCtx ctx);
void OnMessage(int playerId, NetMessage message);
void OnTick(float deltaTime); // 10-20Hz,内部调用 Core.Step + 广播快照
void OnRoomEnd();
}
}