BaseEui.cs 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. using Content.Shared.Eui;
  2. using Robust.Shared.IoC;
  3. using Robust.Shared.Network;
  4. namespace Content.Client.Eui
  5. {
  6. public abstract class BaseEui
  7. {
  8. [Dependency] private readonly IClientNetManager _netManager = default!;
  9. public EuiManager Manager { get; private set; } = default!;
  10. public uint Id { get; private set; }
  11. protected BaseEui()
  12. {
  13. IoCManager.InjectDependencies(this);
  14. }
  15. internal void Initialize(EuiManager mgr, uint id)
  16. {
  17. Manager = mgr;
  18. Id = id;
  19. }
  20. /// <summary>
  21. /// Called when the EUI is opened by the server.
  22. /// </summary>
  23. public virtual void Opened()
  24. {
  25. }
  26. /// <summary>
  27. /// Called when the EUI is closed by the server.
  28. /// </summary>
  29. public virtual void Closed()
  30. {
  31. }
  32. /// <summary>
  33. /// Called when a new state comes in from the server.
  34. /// </summary>
  35. public virtual void HandleState(EuiStateBase state)
  36. {
  37. }
  38. /// <summary>
  39. /// Called when a message comes in from the server.
  40. /// </summary>
  41. public virtual void HandleMessage(EuiMessageBase msg)
  42. {
  43. }
  44. /// <summary>
  45. /// Send a message to the server-side implementation.
  46. /// </summary>
  47. protected void SendMessage(EuiMessageBase msg)
  48. {
  49. var netMsg = new MsgEuiMessage();
  50. netMsg.Id = Id;
  51. netMsg.Message = msg;
  52. _netManager.ClientSendMessage(netMsg);
  53. }
  54. }
  55. }