1
0

ApcBoundUserInterface.cs 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. using Content.Client.Power.APC.UI;
  2. using Content.Shared.Access.Systems;
  3. using Content.Shared.APC;
  4. using JetBrains.Annotations;
  5. using Robust.Client.UserInterface;
  6. using Robust.Shared.Player;
  7. namespace Content.Client.Power.APC
  8. {
  9. [UsedImplicitly]
  10. public sealed class ApcBoundUserInterface : BoundUserInterface
  11. {
  12. [ViewVariables]
  13. private ApcMenu? _menu;
  14. public ApcBoundUserInterface(EntityUid owner, Enum uiKey) : base(owner, uiKey)
  15. {
  16. }
  17. protected override void Open()
  18. {
  19. base.Open();
  20. _menu = this.CreateWindow<ApcMenu>();
  21. _menu.SetEntity(Owner);
  22. _menu.OnBreaker += BreakerPressed;
  23. var hasAccess = false;
  24. if (PlayerManager.LocalEntity != null)
  25. {
  26. var accessReader = EntMan.System<AccessReaderSystem>();
  27. hasAccess = accessReader.IsAllowed((EntityUid)PlayerManager.LocalEntity, Owner);
  28. }
  29. _menu?.SetAccessEnabled(hasAccess);
  30. }
  31. protected override void UpdateState(BoundUserInterfaceState state)
  32. {
  33. base.UpdateState(state);
  34. var castState = (ApcBoundInterfaceState) state;
  35. _menu?.UpdateState(castState);
  36. }
  37. public void BreakerPressed()
  38. {
  39. SendMessage(new ApcToggleMainBreakerMessage());
  40. }
  41. }
  42. }