29 lines
1000 B
C#
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);
|
|
}
|
|
}
|