MailingUnitWindow.xaml.cs 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. using Content.Shared.Disposal;
  2. using Robust.Client.AutoGenerated;
  3. using Robust.Client.UserInterface.CustomControls;
  4. using Robust.Client.UserInterface.XAML;
  5. using Robust.Shared.Timing;
  6. namespace Content.Client.Disposal.UI
  7. {
  8. /// <summary>
  9. /// Client-side UI used to control a <see cref="MailingUnitComponent"/>
  10. /// </summary>
  11. [GenerateTypedNameReferences]
  12. public sealed partial class MailingUnitWindow : DefaultWindow
  13. {
  14. public TimeSpan FullPressure;
  15. public MailingUnitWindow()
  16. {
  17. RobustXamlLoader.Load(this);
  18. }
  19. /// <summary>
  20. /// Update the interface state for the disposals window.
  21. /// </summary>
  22. /// <returns>true if we should stop updating every frame.</returns>
  23. public bool UpdateState(MailingUnitBoundUserInterfaceState state)
  24. {
  25. var disposalState = state.DisposalState;
  26. Title = Loc.GetString("ui-mailing-unit-window-title", ("tag", state.Tag ?? " "));
  27. UnitState.Text = disposalState.UnitState;
  28. FullPressure = disposalState.FullPressureTime;
  29. var pressureReached = PressureBar.UpdatePressure(disposalState.FullPressureTime);
  30. Power.Pressed = disposalState.Powered;
  31. Engage.Pressed = disposalState.Engaged;
  32. //UnitTag.Text = state.Tag;
  33. Target.Text = state.Target;
  34. TargetListContainer.Clear();
  35. foreach (var target in state.TargetList)
  36. {
  37. TargetListContainer.AddItem(target);
  38. }
  39. return !disposalState.Powered || pressureReached;
  40. }
  41. protected override void FrameUpdate(FrameEventArgs args)
  42. {
  43. base.FrameUpdate(args);
  44. PressureBar.UpdatePressure(FullPressure);
  45. }
  46. }
  47. }