-
Notifications
You must be signed in to change notification settings - Fork 47
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
152 changed files
with
11,512 additions
and
578 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
<Control xmlns="https://spacestation14.io" | ||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" | ||
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"> | ||
<BoxContainer Orientation="Horizontal"> | ||
<Label Margin="8 0 0 0" Text="{Loc 'discord-auth-title'}" | ||
StyleClasses="LabelHeading" VAlign="Center" /> | ||
<Button Name="QuitButton" Text="{Loc 'discord-auth-quit-btn'}" | ||
HorizontalAlignment="Right" HorizontalExpand="True" /> | ||
</BoxContainer> | ||
<controls:HighDivider /> | ||
<BoxContainer Orientation="Vertical" Margin="50 20 50 20"> | ||
<Label Text="{Loc 'discord-auth-info'}" Align="Center" /> | ||
<Label Text="{Loc 'discord-auth-warn'}" Margin="0 5 0 0" Align="Center" StyleClasses="LabelSubText" /> | ||
</BoxContainer> | ||
<BoxContainer Orientation="Horizontal" VerticalAlignment="Bottom" Margin="10 0 0 0"> | ||
<Label Text="{Loc 'discord-auth-link'}" Align="Center" /> | ||
<Label Text=" " /> | ||
<LineEdit Name="UrlEdit" HorizontalExpand="True" Editable="False"></LineEdit> | ||
</BoxContainer> | ||
<Button Name="OpenUrlButton" Text="{Loc 'discord-auth-browser-btn'}" HorizontalExpand="True" StyleClasses="OpenRight" /> | ||
</BoxContainer> | ||
</Control> | ||
</Control> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
using Robust.Client.AutoGenerated; | ||
using Robust.Client.Console; | ||
using Robust.Client.UserInterface; | ||
using Robust.Client.UserInterface.Controls; | ||
using Robust.Client.UserInterface.XAML; | ||
|
||
namespace Content.Client.Corvax.DiscordAuth; | ||
|
||
[GenerateTypedNameReferences] | ||
public sealed partial class DiscordAuthGui : Control | ||
{ | ||
[Dependency] private readonly DiscordAuthManager _discordAuthManager = default!; | ||
[Dependency] private readonly IClientConsoleHost _consoleHost = default!; | ||
|
||
public DiscordAuthGui() | ||
{ | ||
RobustXamlLoader.Load(this); | ||
IoCManager.InjectDependencies(this); | ||
LayoutContainer.SetAnchorPreset(this, LayoutContainer.LayoutPreset.Wide); | ||
|
||
QuitButton.OnPressed += (_) => | ||
{ | ||
_consoleHost.ExecuteCommand("quit"); | ||
}; | ||
|
||
UrlEdit.Text = _discordAuthManager.AuthUrl; | ||
OpenUrlButton.OnPressed += (_) => | ||
{ | ||
if (_discordAuthManager.AuthUrl != string.Empty) | ||
{ | ||
IoCManager.Resolve<IUriOpener>().OpenUri(_discordAuthManager.AuthUrl); | ||
} | ||
}; | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
using System.Threading; | ||
using Content.Shared.Corvax.DiscordAuth; | ||
using Robust.Client.State; | ||
using Robust.Shared.Network; | ||
using Timer = Robust.Shared.Timing.Timer; | ||
|
||
namespace Content.Client.Corvax.DiscordAuth; | ||
|
||
public sealed class DiscordAuthManager | ||
{ | ||
[Dependency] private readonly IClientNetManager _netManager = default!; | ||
[Dependency] private readonly IStateManager _stateManager = default!; | ||
|
||
public string AuthUrl { get; private set; } = string.Empty; | ||
|
||
public void Initialize() | ||
{ | ||
_netManager.RegisterNetMessage<MsgDiscordAuthCheck>(); | ||
_netManager.RegisterNetMessage<MsgDiscordAuthRequired>(OnDiscordAuthRequired); | ||
} | ||
|
||
private void OnDiscordAuthRequired(MsgDiscordAuthRequired message) | ||
{ | ||
if (_stateManager.CurrentState is not DiscordAuthState) | ||
{ | ||
AuthUrl = message.AuthUrl; | ||
_stateManager.RequestStateChange<DiscordAuthState>(); | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
using System.Threading; | ||
using Content.Shared.Corvax.DiscordAuth; | ||
using Robust.Client.State; | ||
using Robust.Client.UserInterface; | ||
using Robust.Shared.Network; | ||
using Timer = Robust.Shared.Timing.Timer; | ||
|
||
namespace Content.Client.Corvax.DiscordAuth; | ||
|
||
public sealed class DiscordAuthState : State | ||
{ | ||
[Dependency] private readonly IUserInterfaceManager _userInterfaceManager = default!; | ||
[Dependency] private readonly IClientNetManager _netManager = default!; | ||
|
||
private DiscordAuthGui? _gui; | ||
private readonly CancellationTokenSource _checkTimerCancel = new(); | ||
|
||
protected override void Startup() | ||
{ | ||
_gui = new DiscordAuthGui(); | ||
_userInterfaceManager.StateRoot.AddChild(_gui); | ||
|
||
Timer.SpawnRepeating(TimeSpan.FromSeconds(5), () => | ||
{ | ||
_netManager.ClientSendMessage(new MsgDiscordAuthCheck()); | ||
}, _checkTimerCancel.Token); | ||
} | ||
|
||
protected override void Shutdown() | ||
{ | ||
_checkTimerCancel.Cancel(); | ||
_gui!.Dispose(); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
using Content.Shared.Corvax.JoinQueue; | ||
using Robust.Client.State; | ||
using Robust.Shared.Network; | ||
|
||
namespace Content.Client.Corvax.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); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
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.Corvax.JoinQueue; | ||
|
||
[GenerateTypedNameReferences] | ||
public sealed partial class QueueGui : Control | ||
{ | ||
[Dependency] private readonly IConfigurationManager _cfg = default!; | ||
|
||
public event Action? QuitPressed; | ||
|
||
public QueueGui() | ||
{ | ||
RobustXamlLoader.Load(this); | ||
IoCManager.InjectDependencies(this); | ||
LayoutContainer.SetAnchorPreset(this, LayoutContainer.LayoutPreset.Wide); | ||
|
||
QuitButton.OnPressed += (_) => QuitPressed?.Invoke(); | ||
|
||
// Disable "priority join" button on Steam builds | ||
// since it violates Valve's rules about alternative storefronts. | ||
PriorityJoinButton.Visible = !_cfg.GetCVar(CCVars.BrandingSteam); | ||
|
||
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(); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,51 @@ | ||
using Content.Shared.Corvax.JoinQueue; | ||
using Robust.Client.Console; | ||
using Robust.Client.GameObjects; | ||
using Robust.Client.State; | ||
using Robust.Client.UserInterface; | ||
using Robust.Shared.Audio.Systems; | ||
using Robust.Shared.Player; | ||
|
||
namespace Content.Client.Corvax.JoinQueue; | ||
|
||
public sealed class QueueState : State | ||
{ | ||
[Dependency] private readonly IUserInterfaceManager _userInterfaceManager = default!; | ||
[Dependency] private readonly IClientConsoleHost _consoleHost = default!; | ||
[Dependency] private readonly SharedAudioSystem _audio = 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() | ||
{ | ||
_audio.PlayGlobal(JoinSoundPath, Filter.Local(), false); | ||
} | ||
|
||
public void OnQueueUpdate(MsgQueueUpdate msg) | ||
{ | ||
_gui?.UpdateInfo(msg.Total, msg.Position); | ||
} | ||
|
||
private void OnQuitPressed() | ||
{ | ||
_consoleHost.ExecuteCommand("quit"); | ||
} | ||
} |
38 changes: 38 additions & 0 deletions
38
Content.Client/Corvax/Sponsors/CheckSponsorClientSystem.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
using System.Linq; | ||
using Content.Shared.Corvax.Sponsors; | ||
using Robust.Shared.Configuration; | ||
using Robust.Shared.Network; | ||
using Robust.Shared.Player; | ||
|
||
namespace Content.Client.Corvax.Sponsors | ||
{ | ||
public sealed class CheckSponsorClientSystem : EntitySystem | ||
{ | ||
public bool IsSponsor = false; | ||
public override void Initialize() | ||
{ | ||
base.Initialize(); | ||
SubscribeLocalEvent<CheckedUserSponsor>(SetSponsorStatus); | ||
} | ||
|
||
private void SetSponsorStatus(CheckedUserSponsor ev) | ||
{ | ||
IsSponsor = ev.IsSponsor; | ||
} | ||
|
||
public void TryCheckSponsor(string? player) | ||
{ | ||
if (player != null) | ||
{ | ||
var ev = new CheckUserSponsor(player); | ||
RaiseNetworkEvent(ev); | ||
} | ||
} | ||
|
||
public bool GetSponsorStatus() | ||
{ | ||
return IsSponsor; | ||
} | ||
|
||
} | ||
} |
Oops, something went wrong.