25 lines
854 B
C#
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();
|
|
}
|
|
}
|