diff --git a/Content.Client/Eui/BaseEui.cs b/Content.Client/Eui/BaseEui.cs
index 65ebe3d213..ee5ad3c974 100644
--- a/Content.Client/Eui/BaseEui.cs
+++ b/Content.Client/Eui/BaseEui.cs
@@ -19,34 +19,49 @@ namespace Content.Client.Eui
IoCManager.InjectDependencies(this);
}
- public void Initialize(EuiManager mgr, uint id)
+ 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);
}
}
diff --git a/Content.Server/Eui/BaseEui.cs b/Content.Server/Eui/BaseEui.cs
index 5b58cc4a4a..cd2dc4c52f 100644
--- a/Content.Server/Eui/BaseEui.cs
+++ b/Content.Server/Eui/BaseEui.cs
@@ -9,46 +9,56 @@ using Robust.Shared.IoC;
namespace Content.Server.Eui
{
+ ///
+ /// Base class to implement server-side for an EUI.
+ ///
+ ///
+ /// An EUI is a system for making a relatively-easy connection between client and server
+ /// for the purposes of UIs.
+ ///
+ ///
+ /// An equivalently named class much exist server side for an EUI to work.
+ /// It will be instantiated, opened and closed automatically.
+ ///
public abstract class BaseEui
{
private bool _isStateDirty = false;
+ ///
+ /// The player that this EUI is open for.
+ ///
+ public IPlayerSession Player { get; private set; } = default!;
public bool IsShutDown { get; private set; }
public EuiManager Manager { get; private set; } = default!;
- public IPlayerSession Player { get; private set; } = default!;
public uint Id { get; private set; }
- public void Initialize(EuiManager manager, IPlayerSession player, uint id)
- {
- Manager = manager;
- Player = player;
- Id = id;
- Opened();
- }
-
+ ///
+ /// Called when the UI has been opened. Do initializing logic here.
+ ///
public virtual void Opened()
{
}
+ ///
+ /// Called when the UI has been closed.
+ ///
public virtual void Closed()
{
}
+ ///
+ /// Called when a message comes in from the client.
+ ///
public virtual void HandleMessage(EuiMessageBase msg)
{
}
- public void Shutdown()
- {
- Closed();
- IsShutDown = true;
- }
-
///
/// Mark the current UI state as dirty and queue for an update.
///
+ ///
public void StateDirty()
{
if (_isStateDirty)
@@ -60,17 +70,43 @@ namespace Content.Server.Eui
Manager.QueueStateUpdate(this);
}
+ ///
+ /// Called some time after has been called
+ /// to get a new UI state that can be sent to the client.
+ ///
public virtual EuiStateBase GetNewState()
{
throw new NotSupportedException();
}
+ ///
+ /// Send a message to the client-side EUI.
+ ///
+ public void SendMessage(EuiMessageBase message)
+ {
+ var netMgr = IoCManager.Resolve();
+ var msg = netMgr.CreateNetMessage();
+ msg.Id = Id;
+ msg.Message = message;
+
+ netMgr.ServerSendMessage(msg, Player.ConnectedClient);
+ }
+
+ ///
+ /// Close the EUI, breaking the connection between client and server.
+ ///
public void Close()
{
Manager.CloseEui(this);
}
- public void DoStateUpdate()
+ internal void Shutdown()
+ {
+ Closed();
+ IsShutDown = true;
+ }
+
+ internal void DoStateUpdate()
{
_isStateDirty = false;
@@ -84,14 +120,12 @@ namespace Content.Server.Eui
netMgr.ServerSendMessage(msg, Player.ConnectedClient);
}
- public void SendMessage(EuiMessageBase message)
+ internal void Initialize(EuiManager manager, IPlayerSession player, uint id)
{
- var netMgr = IoCManager.Resolve();
- var msg = netMgr.CreateNetMessage();
- msg.Id = Id;
- msg.Message = message;
-
- netMgr.ServerSendMessage(msg, Player.ConnectedClient);
+ Manager = manager;
+ Player = player;
+ Id = id;
+ Opened();
}
}
}
diff --git a/Content.Server/Eui/EuiManager.cs b/Content.Server/Eui/EuiManager.cs
index 80e0246d08..b5a8ae2a87 100644
--- a/Content.Server/Eui/EuiManager.cs
+++ b/Content.Server/Eui/EuiManager.cs
@@ -82,7 +82,7 @@ namespace Content.Server.Eui
public void CloseEui(BaseEui eui)
{
- eui.Closed();
+ eui.Shutdown();
_playerData[eui.Player].OpenUIs.Remove(eui.Id);
var msg = _net.CreateNetMessage();