diff --git a/Content.Client/Disposal/UI/MailingUnitWindow.xaml.cs b/Content.Client/Disposal/UI/MailingUnitWindow.xaml.cs index 797e20ae7d..489d749a0c 100644 --- a/Content.Client/Disposal/UI/MailingUnitWindow.xaml.cs +++ b/Content.Client/Disposal/UI/MailingUnitWindow.xaml.cs @@ -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); } } } diff --git a/Content.Server/Disposal/Mailing/MailingUnitSystem.cs b/Content.Server/Disposal/Mailing/MailingUnitSystem.cs index e1fbdbf089..6249b9497d 100644 --- a/Content.Server/Disposal/Mailing/MailingUnitSystem.cs +++ b/Content.Server/Disposal/Mailing/MailingUnitSystem.cs @@ -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(OnPacketReceived); SubscribeLocalEvent(OnBeforeFlush); SubscribeLocalEvent(OnConfigurationUpdated); - SubscribeLocalEvent(HandleActivate); + SubscribeLocalEvent(HandleActivate, before: new[] { typeof(DisposalUnitSystem) }); SubscribeLocalEvent(OnDisposalUnitUIStateChange); SubscribeLocalEvent(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); }