]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Fix mailing unit UI (#30174)
authorthemias <89101928+themias@users.noreply.github.com>
Sat, 20 Jul 2024 02:31:26 +0000 (22:31 -0400)
committerGitHub <noreply@github.com>
Sat, 20 Jul 2024 02:31:26 +0000 (12:31 +1000)
Content.Client/Disposal/UI/MailingUnitWindow.xaml.cs
Content.Server/Disposal/Mailing/MailingUnitSystem.cs

index 797e20ae7d2d12206f8f1b22234d928162cd6a18..489d749a0cfc6bbe2e5a361f832edc889342705d 100644 (file)
@@ -2,6 +2,7 @@ using Content.Shared.Disposal;
 using Robust.Client.AutoGenerated;
 using Robust.Client.UserInterface.CustomControls;
 using Robust.Client.UserInterface.XAML;
+using Robust.Shared.Timing;
 
 namespace Content.Client.Disposal.UI
 {
@@ -11,6 +12,8 @@ namespace Content.Client.Disposal.UI
     [GenerateTypedNameReferences]
     public sealed partial class MailingUnitWindow : DefaultWindow
     {
+        public TimeSpan FullPressure;
+
         public MailingUnitWindow()
         {
             RobustXamlLoader.Load(this);
@@ -26,6 +29,7 @@ namespace Content.Client.Disposal.UI
 
             Title = Loc.GetString("ui-mailing-unit-window-title", ("tag", state.Tag ?? " "));
             UnitState.Text = disposalState.UnitState;
+            FullPressure = disposalState.FullPressureTime;
             var pressureReached = PressureBar.UpdatePressure(disposalState.FullPressureTime);
             Power.Pressed = disposalState.Powered;
             Engage.Pressed = disposalState.Engaged;
@@ -42,9 +46,10 @@ namespace Content.Client.Disposal.UI
             return !disposalState.Powered || pressureReached;
         }
 
-        public bool UpdatePressure(TimeSpan stateFullPressureTime)
+        protected override void FrameUpdate(FrameEventArgs args)
         {
-            return PressureBar.UpdatePressure(stateFullPressureTime);
+            base.FrameUpdate(args);
+            PressureBar.UpdatePressure(FullPressure);
         }
     }
 }
index e1fbdbf0894d53184f7a7f6ffdfc0f36426f5874..6249b9497d8504ee45751e1d826afb7af3d1895d 100644 (file)
@@ -9,6 +9,7 @@ using Content.Shared.Disposal;
 using Content.Shared.Interaction;
 using Robust.Server.GameObjects;
 using Robust.Shared.Player;
+using Robust.Shared.Utility;
 
 namespace Content.Server.Disposal.Mailing;
 
@@ -35,7 +36,7 @@ public sealed class MailingUnitSystem : EntitySystem
         SubscribeLocalEvent<MailingUnitComponent, DeviceNetworkPacketEvent>(OnPacketReceived);
         SubscribeLocalEvent<MailingUnitComponent, BeforeDisposalFlushEvent>(OnBeforeFlush);
         SubscribeLocalEvent<MailingUnitComponent, ConfigurationSystem.ConfigurationUpdatedEvent>(OnConfigurationUpdated);
-        SubscribeLocalEvent<MailingUnitComponent, ActivateInWorldEvent>(HandleActivate);
+        SubscribeLocalEvent<MailingUnitComponent, ActivateInWorldEvent>(HandleActivate, before: new[] { typeof(DisposalUnitSystem) });
         SubscribeLocalEvent<MailingUnitComponent, DisposalUnitUIStateUpdatedEvent>(OnDisposalUnitUIStateChange);
         SubscribeLocalEvent<MailingUnitComponent, TargetSelectedMessage>(OnTargetSelected);
     }
@@ -179,7 +180,7 @@ public sealed class MailingUnitSystem : EntitySystem
         if (component.DisposalUnitInterfaceState == null)
             return;
 
-        var state = new MailingUnitBoundUserInterfaceState(component.DisposalUnitInterfaceState, component.Target, component.TargetList, component.Tag);
+        var state = new MailingUnitBoundUserInterfaceState(component.DisposalUnitInterfaceState, component.Target, component.TargetList.ShallowClone(), component.Tag);
         _userInterfaceSystem.SetUiState(uid, MailingUnitUiKey.Key, state);
     }