Delta-v/Content.Client/DeltaV/CartridgeLoader/Cartridges/NanoChatUi.cs

44 lines
1.3 KiB
C#

using Content.Client.UserInterface.Fragments;
using Content.Shared.CartridgeLoader;
using Content.Shared.DeltaV.CartridgeLoader.Cartridges;
using Robust.Client.UserInterface;
namespace Content.Client.DeltaV.CartridgeLoader.Cartridges;
public sealed partial class NanoChatUi : UIFragment
{
private NanoChatUiFragment? _fragment;
public override Control GetUIFragmentRoot()
{
return _fragment!;
}
public override void Setup(BoundUserInterface userInterface, EntityUid? fragmentOwner)
{
_fragment = new NanoChatUiFragment();
_fragment.OnMessageSent += (type, number, content, job) =>
{
SendNanoChatUiMessage(type, number, content, job, userInterface);
};
}
public override void UpdateState(BoundUserInterfaceState state)
{
if (state is NanoChatUiState cast)
_fragment?.UpdateState(cast);
}
private static void SendNanoChatUiMessage(NanoChatUiMessageType type,
uint? number,
string? content,
string? job,
BoundUserInterface userInterface)
{
var nanoChatMessage = new NanoChatUiMessageEvent(type, number, content, job);
var message = new CartridgeUiMessage(nanoChatMessage);
userInterface.SendMessage(message);
}
}