diff --git a/Content.Client/Entry/EntryPoint.cs b/Content.Client/Entry/EntryPoint.cs index af85ff921f..997cfc0b00 100644 --- a/Content.Client/Entry/EntryPoint.cs +++ b/Content.Client/Entry/EntryPoint.cs @@ -1,4 +1,5 @@ using Content.Client._CP14.Discord; +using Content.Client._CP14.JoinQueue; using Content.Client.Administration.Managers; using Content.Client.Changelog; using Content.Client.Chat.Managers; @@ -46,6 +47,7 @@ namespace Content.Client.Entry { //CP14 [Dependency] private readonly DiscordAuthManager _discordAuth = default!; + [Dependency] private readonly JoinQueueManager _joinQueueManager = default!; //CP14 end [Dependency] private readonly IBaseClient _baseClient = default!; [Dependency] private readonly IGameController _gameController = default!; @@ -167,6 +169,7 @@ namespace Content.Client.Entry //CP14 _overlayManager.AddOverlay(new CP14BasePostProcessOverlay()); _discordAuth.Initialize(); + _joinQueueManager.Initialize(); //CP14 end _overlayManager.AddOverlay(new SingularityOverlay()); _overlayManager.AddOverlay(new RadiationPulseOverlay()); diff --git a/Content.Client/IoC/ClientContentIoC.cs b/Content.Client/IoC/ClientContentIoC.cs index 0756800d8d..ebb893c6a5 100644 --- a/Content.Client/IoC/ClientContentIoC.cs +++ b/Content.Client/IoC/ClientContentIoC.cs @@ -1,4 +1,5 @@ using Content.Client._CP14.Discord; +using Content.Client._CP14.JoinQueue; using Content.Client.Administration.Managers; using Content.Client.Changelog; using Content.Client.Chat.Managers; @@ -36,6 +37,7 @@ namespace Content.Client.IoC //CP14 collection.Register(); + collection.Register(); //CP14 end collection.Register(); collection.Register(); diff --git a/Content.Client/_CP14/JoinQueue/JoinQueueManager.cs b/Content.Client/_CP14/JoinQueue/JoinQueueManager.cs new file mode 100644 index 0000000000..81aac3cace --- /dev/null +++ b/Content.Client/_CP14/JoinQueue/JoinQueueManager.cs @@ -0,0 +1,26 @@ +using Content.Shared._CP14.JoinQueue; +using Robust.Client.State; +using Robust.Shared.Network; + +namespace Content.Client._CP14.JoinQueue; + +public sealed class JoinQueueManager +{ + [Dependency] private readonly IClientNetManager _netManager = default!; + [Dependency] private readonly IStateManager _stateManager = default!; + + public void Initialize() + { + _netManager.RegisterNetMessage(OnQueueUpdate); + } + + private void OnQueueUpdate(MsgQueueUpdate msg) + { + if (_stateManager.CurrentState is not QueueState) + { + _stateManager.RequestStateChange(); + } + + ((QueueState) _stateManager.CurrentState).OnQueueUpdate(msg); + } +} diff --git a/Content.Client/_CP14/JoinQueue/QueueGui.xaml b/Content.Client/_CP14/JoinQueue/QueueGui.xaml new file mode 100644 index 0000000000..3599fdd812 --- /dev/null +++ b/Content.Client/_CP14/JoinQueue/QueueGui.xaml @@ -0,0 +1,33 @@ + + + + + + +