31 lines
975 B
C#
Raw Normal View History

2021-08-08 19:59:40 +01:00
using QSB.Events;
using QSB.Messaging;
namespace QSB.ClientServerStateSync.Events
{
internal class ServerStateEvent : QSBEvent<EnumMessage<ServerState>>
{
public override bool RequireWorldObjectsReady => false;
2021-08-08 19:59:40 +01:00
public override void SetupListener()
=> GlobalMessenger<ServerState>.AddListener(EventNames.QSBServerState, Handler);
public override void CloseListener()
=> GlobalMessenger<ServerState>.RemoveListener(EventNames.QSBServerState, Handler);
private void Handler(ServerState state) => SendEvent(CreateMessage(state));
2021-11-20 19:49:50 +00:00
private EnumMessage<ServerState> CreateMessage(ServerState state) => new()
2021-08-08 19:59:40 +01:00
{
AboutId = LocalPlayerId,
EnumValue = state
};
2021-08-22 16:54:48 +01:00
public override void OnReceiveLocal(bool server, EnumMessage<ServerState> message)
2021-08-08 19:59:40 +01:00
=> OnReceiveRemote(server, message);
2021-08-22 16:54:48 +01:00
public override void OnReceiveRemote(bool server, EnumMessage<ServerState> message)
2021-08-08 19:59:40 +01:00
=> ServerStateManager.Instance.ChangeServerState(message.EnumValue);
}
}