Files
crystall-punk-14/Content.Client/Eui/BaseEui.cs

66 lines
1.6 KiB
C#
Raw Normal View History

2020-11-10 16:50:28 +01:00
using Content.Shared.Eui;
using Robust.Shared.IoC;
using Robust.Shared.Network;
2020-11-10 16:50:28 +01:00
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);
}
2020-11-10 22:00:07 +01:00
internal void Initialize(EuiManager mgr, uint id)
2020-11-10 16:50:28 +01:00
{
Manager = mgr;
Id = id;
}
2020-11-10 22:00:07 +01:00
/// <summary>
/// Called when the EUI is opened by the server.
/// </summary>
2020-11-10 16:50:28 +01:00
public virtual void Opened()
{
}
2020-11-10 22:00:07 +01:00
/// <summary>
/// Called when the EUI is closed by the server.
/// </summary>
2020-11-10 16:50:28 +01:00
public virtual void Closed()
{
}
2020-11-10 22:00:07 +01:00
/// <summary>
/// Called when a new state comes in from the server.
/// </summary>
2020-11-10 16:50:28 +01:00
public virtual void HandleState(EuiStateBase state)
{
}
2020-11-10 22:00:07 +01:00
/// <summary>
/// Called when a message comes in from the server.
/// </summary>
2020-11-10 16:50:28 +01:00
public virtual void HandleMessage(EuiMessageBase msg)
{
}
2020-11-10 22:00:07 +01:00
/// <summary>
/// Send a message to the server-side implementation.
/// </summary>
2020-11-10 16:50:28 +01:00
protected void SendMessage(EuiMessageBase msg)
{
var netMsg = _netManager.CreateNetMessage<MsgEuiMessage>();
netMsg.Id = Id;
netMsg.Message = msg;
2020-11-10 22:00:07 +01:00
2020-11-10 16:50:28 +01:00
_netManager.ClientSendMessage(netMsg);
}
}
}