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 { /// /// Client-side UI used to control a /// [GenerateTypedNameReferences] public sealed partial class MailingUnitWindow : DefaultWindow { public TimeSpan FullPressure; public MailingUnitWindow() { RobustXamlLoader.Load(this); } /// /// Update the interface state for the disposals window. /// /// true if we should stop updating every frame. public bool UpdateState(MailingUnitBoundUserInterfaceState state) { var disposalState = state.DisposalState; 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; //UnitTag.Text = state.Tag; Target.Text = state.Target; TargetListContainer.Clear(); foreach (var target in state.TargetList) { TargetListContainer.AddItem(target); } return !disposalState.Powered || pressureReached; } protected override void FrameUpdate(FrameEventArgs args) { base.FrameUpdate(args); PressureBar.UpdatePressure(FullPressure); } } }