using Content.Shared.Eui; using Robust.Shared.IoC; using Robust.Shared.Network; namespace Content.Client.Eui { public abstract class BaseEui { [Dependency] private readonly IClientNetManager _netManager = default!; public EuiManager Manager { get; private set; } = default!; public uint Id { get; private set; } protected BaseEui() { IoCManager.InjectDependencies(this); } internal void Initialize(EuiManager mgr, uint id) { Manager = mgr; Id = id; } /// /// Called when the EUI is opened by the server. /// public virtual void Opened() { } /// /// Called when the EUI is closed by the server. /// public virtual void Closed() { } /// /// Called when a new state comes in from the server. /// public virtual void HandleState(EuiStateBase state) { } /// /// Called when a message comes in from the server. /// public virtual void HandleMessage(EuiMessageBase msg) { } /// /// Send a message to the server-side implementation. /// protected void SendMessage(EuiMessageBase msg) { var netMsg = _netManager.CreateNetMessage(); netMsg.Id = Id; netMsg.Message = msg; _netManager.ClientSendMessage(netMsg); } } }