перенос файлов клиента из папки White в _White
This commit is contained in:
26
Content.Client/_White/JoinQueue/JoinQueueManager.cs
Normal file
26
Content.Client/_White/JoinQueue/JoinQueueManager.cs
Normal file
@@ -0,0 +1,26 @@
|
||||
using Content.Shared.White.JoinQueue;
|
||||
using Robust.Client.State;
|
||||
using Robust.Shared.Network;
|
||||
|
||||
namespace Content.Client._White.JoinQueue;
|
||||
|
||||
public sealed class JoinQueueManager
|
||||
{
|
||||
[Dependency] private readonly IClientNetManager _netManager = default!;
|
||||
[Dependency] private readonly IStateManager _stateManager = default!;
|
||||
|
||||
public void Initialize()
|
||||
{
|
||||
_netManager.RegisterNetMessage<MsgQueueUpdate>(OnQueueUpdate);
|
||||
}
|
||||
|
||||
private void OnQueueUpdate(MsgQueueUpdate msg)
|
||||
{
|
||||
if (_stateManager.CurrentState is not QueueState)
|
||||
{
|
||||
_stateManager.RequestStateChange<QueueState>();
|
||||
}
|
||||
|
||||
((QueueState) _stateManager.CurrentState).OnQueueUpdate(msg);
|
||||
}
|
||||
}
|
||||
34
Content.Client/_White/JoinQueue/QueueGui.xaml
Normal file
34
Content.Client/_White/JoinQueue/QueueGui.xaml
Normal file
@@ -0,0 +1,34 @@
|
||||
<Control xmlns="https://spacestation14.io"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:gfx="clr-namespace:Robust.Client.Graphics;assembly=Robust.Client"
|
||||
xmlns:parallax="clr-namespace:Content.Client.Parallax"
|
||||
xmlns:controls="clr-namespace:Content.Client.UserInterface.Controls">
|
||||
<parallax:ParallaxControl />
|
||||
<Control HorizontalAlignment="Center" VerticalAlignment="Center">
|
||||
<PanelContainer StyleClasses="AngleRect" />
|
||||
<BoxContainer Orientation="Vertical" MinSize="200 200">
|
||||
<BoxContainer Orientation="Horizontal">
|
||||
<Label Margin="8 0 0 0" Text="{Loc 'queue-title'}"
|
||||
StyleClasses="LabelHeading" VAlign="Center" />
|
||||
<Button Name="QuitButton" Text="{Loc 'queue-quit'}"
|
||||
HorizontalAlignment="Right" HorizontalExpand="True" />
|
||||
</BoxContainer>
|
||||
<controls:HighDivider />
|
||||
<BoxContainer Orientation="Vertical" VerticalExpand="True" Margin="0 20 0 0">
|
||||
<BoxContainer Orientation="Vertical">
|
||||
<BoxContainer Orientation="Vertical" VerticalExpand="True">
|
||||
<Label Text="{Loc 'queue-position'}" Align="Center" />
|
||||
<Label Name="QueuePosition" StyleClasses="LabelHeading" Align="Center" />
|
||||
</BoxContainer>
|
||||
<BoxContainer Orientation="Vertical" VerticalExpand="True" Margin="0 10 0 0">
|
||||
<Label Text="{Loc 'queue-total'}" Align="Center" />
|
||||
<Label Name="QueueTotal" StyleClasses="LabelHeading" Align="Center" />
|
||||
</BoxContainer>
|
||||
</BoxContainer>
|
||||
</BoxContainer>
|
||||
<BoxContainer Orientation="Horizontal" VerticalAlignment="Bottom" Margin="0 20 0 0">
|
||||
<Button Name="PriorityJoinButton" Text="{Loc 'queue-priority-join'}" HorizontalExpand="True" StyleClasses="OpenRight" />
|
||||
</BoxContainer>
|
||||
</BoxContainer>
|
||||
</Control>
|
||||
</Control>
|
||||
35
Content.Client/_White/JoinQueue/QueueGui.xaml.cs
Normal file
35
Content.Client/_White/JoinQueue/QueueGui.xaml.cs
Normal file
@@ -0,0 +1,35 @@
|
||||
using Content.Shared.CCVar;
|
||||
using Robust.Client.AutoGenerated;
|
||||
using Robust.Client.UserInterface;
|
||||
using Robust.Client.UserInterface.Controls;
|
||||
using Robust.Client.UserInterface.XAML;
|
||||
using Robust.Shared.Configuration;
|
||||
|
||||
namespace Content.Client._White.JoinQueue;
|
||||
|
||||
[GenerateTypedNameReferences]
|
||||
public sealed partial class QueueGui : Control
|
||||
{
|
||||
[Dependency] private readonly IConfigurationManager _cfg = default!;
|
||||
|
||||
public event Action? QuitPressed;
|
||||
|
||||
public QueueGui()
|
||||
{
|
||||
RobustXamlLoader.Load(this);
|
||||
LayoutContainer.SetAnchorPreset(this, LayoutContainer.LayoutPreset.Wide);
|
||||
|
||||
QuitButton.OnPressed += (_) => QuitPressed?.Invoke();
|
||||
PriorityJoinButton.OnPressed += (_) =>
|
||||
{
|
||||
var linkPatreon = _cfg.GetCVar(CCVars.InfoLinksPatreon);
|
||||
IoCManager.Resolve<IUriOpener>().OpenUri(linkPatreon);
|
||||
};
|
||||
}
|
||||
|
||||
public void UpdateInfo(int total, int position)
|
||||
{
|
||||
QueueTotal.Text = total.ToString();
|
||||
QueuePosition.Text = position.ToString();
|
||||
}
|
||||
}
|
||||
52
Content.Client/_White/JoinQueue/QueueState.cs
Normal file
52
Content.Client/_White/JoinQueue/QueueState.cs
Normal file
@@ -0,0 +1,52 @@
|
||||
using Content.Shared.White.JoinQueue;
|
||||
using Robust.Client.Audio;
|
||||
using Robust.Client.Console;
|
||||
using Robust.Client.State;
|
||||
using Robust.Client.UserInterface;
|
||||
using Robust.Shared.Player;
|
||||
|
||||
namespace Content.Client._White.JoinQueue;
|
||||
|
||||
public sealed class QueueState : State
|
||||
{
|
||||
[Dependency] private readonly IUserInterfaceManager _userInterfaceManager = default!;
|
||||
[Dependency] private readonly IClientConsoleHost _consoleHost = default!;
|
||||
|
||||
private const string JoinSoundPath = "/Audio/Effects/voteding.ogg";
|
||||
|
||||
private QueueGui? _gui;
|
||||
|
||||
protected override void Startup()
|
||||
{
|
||||
_gui = new QueueGui();
|
||||
_userInterfaceManager.StateRoot.AddChild(_gui);
|
||||
|
||||
_gui.QuitPressed += OnQuitPressed;
|
||||
}
|
||||
|
||||
protected override void Shutdown()
|
||||
{
|
||||
_gui!.QuitPressed -= OnQuitPressed;
|
||||
_gui.Dispose();
|
||||
|
||||
Ding();
|
||||
}
|
||||
|
||||
private void Ding()
|
||||
{
|
||||
if (IoCManager.Resolve<IEntityManager>().TrySystem<AudioSystem>(out var audio))
|
||||
{
|
||||
audio.PlayGlobal(JoinSoundPath, Filter.Local(), false);
|
||||
}
|
||||
}
|
||||
|
||||
public void OnQueueUpdate(MsgQueueUpdate msg)
|
||||
{
|
||||
_gui?.UpdateInfo(msg.Total, msg.Position);
|
||||
}
|
||||
|
||||
private void OnQuitPressed()
|
||||
{
|
||||
_consoleHost.ExecuteCommand("quit");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user