diff --git a/Content.Client/_White/Administration/HoursPanelSystems/HoursPanel.xaml.cs b/Content.Client/_White/Administration/HoursPanelSystems/HoursPanel.xaml.cs index f47384cd4c..46b7fea751 100644 --- a/Content.Client/_White/Administration/HoursPanelSystems/HoursPanel.xaml.cs +++ b/Content.Client/_White/Administration/HoursPanelSystems/HoursPanel.xaml.cs @@ -9,6 +9,8 @@ using Robust.Shared.Prototypes; using static Robust.Client.UserInterface.Controls.LineEdit; using Content.Shared._White.Administration; using Robust.Client.UserInterface.Controls; +using System.Diagnostics.CodeAnalysis; +using Robust.Client.Graphics.Clyde; namespace Content.Client._White.Administration.HoursPanelSystems; @@ -16,43 +18,35 @@ namespace Content.Client._White.Administration.HoursPanelSystems; [UsedImplicitly] public sealed partial class HoursPanel : DefaultWindow { - - public HoursPanelSystem _huetaSystem; - - public HoursPanel() { RobustXamlLoader.Load(this); var entityManager = IoCManager.Resolve(); - _huetaSystem = entityManager.System(); - _huetaSystem._panel = this; - var owner = _huetaSystem; + var hoursPanelSystem = entityManager.System(); + hoursPanelSystem.Panel = this; var roles = new Dictionary(); PlayerNameLine.OnTextChanged += _ => OnNamesChanged(); - PlayerNameLine.OnTextEntered += _ => OnNameSubmited(owner, roles); + PlayerNameLine.OnTextEntered += _ => OnNameSubmited(hoursPanelSystem, roles); PlayerList.OnSelectionChanged += OnPlayerSelectionChanged; HourButton.OnPressed += _ => AddMinutes(60); MinutesLine.OnTextChanged += UpdateButtonsText; - RoleOption.OnItemSelected += args => OnItemSelected(args, owner, roles); - SubmitButton.OnPressed += _ => OnSubmitButtonOnPressed(roles); + RoleOption.OnItemSelected += args => OnItemSelected(args, hoursPanelSystem, roles); + SubmitButton.OnPressed += _ => OnSubmitButtonOnPressed(roles, hoursPanelSystem); SaveButton.OnPressed += _ => OnSaveButtonOnPressed(); OnNamesChanged(); InitRoleList(roles); - } - - - public void UpdateTime(TimeSpan? time) { - if (time == null) - TimeDisplayer.Text = $"Время игры: нет данных"; + if (time != null) + { + var t = (TimeSpan) time; + TimeDisplayer.Text = $"Время игры: {Math.Floor(t.TotalHours) + string.Format(" ч {0:%m} м", t)}"; + } else - TimeDisplayer.Text = $"Время игры: {time}"; - - + TimeDisplayer.Text = $"Время игры: нет данных"; } private void OnItemSelected(OptionButton.ItemSelectedEventArgs args, HoursPanelSystem owner, Dictionary roles) @@ -128,13 +122,13 @@ public sealed partial class HoursPanel : DefaultWindow OnNamesChanged(); } - private void OnSubmitButtonOnPressed(Dictionary roles) + private void OnSubmitButtonOnPressed(Dictionary roles, HoursPanelSystem owner) { IoCManager.Resolve().ExecuteCommand( $"playtime_addrole {PlayerNameLine.Text} {roles[RoleOption.SelectedId]} {MinutesLine.Text}"); SaveButton.Disabled = false; - _huetaSystem.SendPlayerTimeRequest(new HoursPanelMessageToServer(PlayerNameLine.Text, roles[RoleOption.SelectedId])); + owner.SendPlayerTimeRequest(new HoursPanelMessageToServer(PlayerNameLine.Text, roles[RoleOption.SelectedId])); } private void OnSaveButtonOnPressed() @@ -143,10 +137,4 @@ public sealed partial class HoursPanel : DefaultWindow $"playtime_save {PlayerNameLine.Text}"); SaveButton.Disabled = true; } - private void GetPlayerTime() - { - if (string.IsNullOrWhiteSpace(PlayerNameLine.Text)) - return; - - } } diff --git a/Content.Client/_White/Administration/HoursPanelSystems/HoursPanelSystem.cs b/Content.Client/_White/Administration/HoursPanelSystems/HoursPanelSystem.cs index 97024d80aa..20af3141e4 100644 --- a/Content.Client/_White/Administration/HoursPanelSystems/HoursPanelSystem.cs +++ b/Content.Client/_White/Administration/HoursPanelSystems/HoursPanelSystem.cs @@ -1,39 +1,25 @@ using Content.Shared._White.Administration; -using static Content.Client._White.Administration.HoursPanelSystems.HoursPanel; namespace Content.Client._White.Administration.HoursPanelSystems; public sealed class HoursPanelSystem : EntitySystem { - public HoursPanel? _panel; - - - - - //private HoursPanel _panel; - public HoursPanelSystem() - { - - } - + public HoursPanel? Panel; public override void Initialize() { base.Initialize(); - + SubscribeNetworkEvent(OnHoursPanelMessage); } private void OnHoursPanelMessage(HoursPanelMessageToClient message, EntitySessionEventArgs eventArgs) { - _panel?.UpdateTime(message.Time); + Panel?.UpdateTime(message.Time); } public void SendPlayerTimeRequest(HoursPanelMessageToServer message) { - var _entityManager = IoCManager.Resolve(); - var _che = _entityManager.System(); - _che.SendNetMessage(message); - // RaiseNetworkEvent(message); + RaiseNetworkEvent(message); } } diff --git a/Content.Server/Content.Server.csproj b/Content.Server/Content.Server.csproj index 1231125268..dfbfccd5a1 100644 --- a/Content.Server/Content.Server.csproj +++ b/Content.Server/Content.Server.csproj @@ -13,7 +13,6 @@ enable true - diff --git a/Content.Server/_White/Administration/HoursPanelSystem.cs b/Content.Server/_White/Administration/HoursPanelSystem.cs index 77f9922e22..bedb6f1ef2 100644 --- a/Content.Server/_White/Administration/HoursPanelSystem.cs +++ b/Content.Server/_White/Administration/HoursPanelSystem.cs @@ -2,19 +2,20 @@ using Content.Shared._White.Administration; using Robust.Server.Player; using Content.Server.Players.PlayTimeTracking; - namespace Content.Server._White.Administration; public sealed class HoursPanelSystem : EntitySystem { [Dependency] private readonly IPlayerManager _playerManager = default!; [Dependency] private readonly IPlayTimeTrackingManager _playTimeTracking = default!; + public override void Initialize() { base.Initialize(); SubscribeNetworkEvent(OnHoursPanelMessage); } + private void OnHoursPanelMessage(HoursPanelMessageToServer message, EntitySessionEventArgs eventArgs) { if (!_playerManager.TryGetSessionByUsername(message.PlayerCKey, out var player))