| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- using Content.Client.GameTicking.Managers;
- using Content.Shared.GameTicking;
- using Content.Shared.Input;
- using JetBrains.Annotations;
- using Robust.Client.Input;
- using Robust.Client.UserInterface.Controllers;
- using Robust.Shared.Input.Binding;
- using Robust.Shared.Player;
- namespace Content.Client.RoundEnd;
- [UsedImplicitly]
- public sealed class RoundEndSummaryUIController : UIController,
- IOnSystemLoaded<ClientGameTicker>
- {
- [Dependency] private readonly IInputManager _input = default!;
- private RoundEndSummaryWindow? _window;
- private void ToggleScoreboardWindow(ICommonSession? session = null)
- {
- if (_window == null)
- return;
- if (_window.IsOpen)
- {
- _window.Close();
- }
- else
- {
- _window.OpenCenteredRight();
- _window.MoveToFront();
- }
- }
- public void OpenRoundEndSummaryWindow(RoundEndMessageEvent message)
- {
- // Don't open duplicate windows (mainly for replays).
- if (_window?.RoundId == message.RoundId)
- return;
- _window = new RoundEndSummaryWindow(message.GamemodeTitle, message.RoundEndText,
- message.RoundDuration, message.RoundId, message.AllPlayersEndInfo, EntityManager);
- }
- public void OnSystemLoaded(ClientGameTicker system)
- {
- _input.SetInputCommand(ContentKeyFunctions.ToggleRoundEndSummaryWindow,
- InputCmdHandler.FromDelegate(ToggleScoreboardWindow));
- }
- }
|