From c5cfbd1d1abc67b710aa416f4eb1d54e3aef6cd9 Mon Sep 17 00:00:00 2001 From: Pieter-Jan Briers Date: Mon, 3 Oct 2022 23:43:42 +0200 Subject: [PATCH] Fuck da rules (#11584) --- Content.Client/Info/RulesManager.cs | 28 +++++++++++++++++++------- Content.Client/Info/RulesPopup.xaml.cs | 3 --- 2 files changed, 21 insertions(+), 10 deletions(-) diff --git a/Content.Client/Info/RulesManager.cs b/Content.Client/Info/RulesManager.cs index 366b98d465..b70d9dae88 100644 --- a/Content.Client/Info/RulesManager.cs +++ b/Content.Client/Info/RulesManager.cs @@ -5,6 +5,7 @@ using Content.Shared.Info; using Robust.Client.Console; using Robust.Client.State; using Robust.Client.UserInterface; +using Robust.Client.UserInterface.Controls; using Robust.Shared.Configuration; using Robust.Shared.Network; @@ -20,7 +21,9 @@ public sealed class RulesManager : SharedRulesManager [Dependency] private readonly IEntitySystemManager _sysMan = default!; private InfoSection rulesSection = new InfoSection("", "", false); - private bool _shouldShowRules; + private bool _shouldShowRules = true; + + private RulesPopup? _activePopup; public void Initialize() { @@ -28,6 +31,11 @@ public sealed class RulesManager : SharedRulesManager _netManager.RegisterNetMessage(OnShowRulesPopupMessage); _netManager.RegisterNetMessage(); _stateManager.OnStateChanged += OnStateChanged; + + _consoleHost.RegisterCommand("fuckrules", "", "", (_, _, _) => + { + OnAcceptPressed(); + }); } private void OnShouldShowRules(ShouldShowRulesPopupMessage message) @@ -55,13 +63,17 @@ public sealed class RulesManager : SharedRulesManager private void ShowRules(float time) { - var rulesPopup = new RulesPopup + if (_activePopup != null) + return; + + _activePopup = new RulesPopup { Timer = time }; - rulesPopup.OnQuitPressed += OnQuitPressed; - rulesPopup.OnAcceptPressed += OnAcceptPressed; - _userInterfaceManager.RootControl.AddChild(rulesPopup); + _activePopup.OnQuitPressed += OnQuitPressed; + _activePopup.OnAcceptPressed += OnAcceptPressed; + _userInterfaceManager.StateRoot.AddChild(_activePopup); + LayoutContainer.SetAnchorAndMarginPreset(_activePopup, LayoutContainer.LayoutPreset.Wide); } private void OnQuitPressed() @@ -71,8 +83,10 @@ public sealed class RulesManager : SharedRulesManager private void OnAcceptPressed() { - var message = _netManager.CreateNetMessage(); - _netManager.ClientSendMessage(message); + _netManager.ClientSendMessage(new RulesAcceptedMessage()); + + _activePopup?.Orphan(); + _activePopup = null; } public void UpdateRules() diff --git a/Content.Client/Info/RulesPopup.xaml.cs b/Content.Client/Info/RulesPopup.xaml.cs index 07ddd2d3a6..266c35dbe2 100644 --- a/Content.Client/Info/RulesPopup.xaml.cs +++ b/Content.Client/Info/RulesPopup.xaml.cs @@ -37,14 +37,11 @@ public sealed partial class RulesPopup : Control private void OnQuitButtonPressed(BaseButton.ButtonEventArgs obj) { OnQuitPressed?.Invoke(); - Dispose(); } private void OnAcceptButtonPressed(BaseButton.ButtonEventArgs obj) { - Parent?.RemoveChild(this); OnAcceptPressed?.Invoke(); - Dispose(); } protected override void FrameUpdate(FrameEventArgs args)