Files
2026-07-10 10:24:29 +08:00

29 lines
1000 B
C#

using System;
using XWorld.Framework;
namespace XWorld.Server.Host
{
public sealed class RoomCtx : IRoomCtx
{
private readonly IRoomOutput _output;
private readonly Action<RoomEndResult> _endRoom;
public IRandom Random { get; }
public ITimer Timer { get; }
public ILogger Logger { get; }
public IStorage Storage { get; }
public RoomCtx(IRandom random, ITimer timer, ILogger logger, IStorage storage,
IRoomOutput output, Action<RoomEndResult> endRoom)
{
Random = random; Timer = timer; Logger = logger; Storage = storage;
_output = output; _endRoom = endRoom;
}
public void Broadcast(NetMessage message) => _output.Broadcast(message);
public void SendTo(int playerId, NetMessage message) => _output.SendTo(playerId, message);
public void EndRoom() => _endRoom(null);
public void EndRoom(RoomEndResult result) => _endRoom(result);
}
}