52 lines
1.2 KiB
C#
52 lines
1.2 KiB
C#
|
|
using Content.Shared.Miracle.UI;
|
|||
|
|
|
|||
|
|
namespace Content.Client.Miracle.Changeling.UI.TransformStingUI;
|
|||
|
|
|
|||
|
|
public sealed class TransformStingSelectorBui : BoundUserInterface
|
|||
|
|
{
|
|||
|
|
private TransformStingSelectorWindow? _window;
|
|||
|
|
|
|||
|
|
public TransformStingSelectorBui(EntityUid owner, Enum uiKey) : base(owner, uiKey)
|
|||
|
|
{
|
|||
|
|
IoCManager.InjectDependencies(this);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
protected override void Open()
|
|||
|
|
{
|
|||
|
|
base.Open();
|
|||
|
|
|
|||
|
|
_window = new TransformStingSelectorWindow();
|
|||
|
|
_window.OpenCentered();
|
|||
|
|
_window.OnClose += Close;
|
|||
|
|
|
|||
|
|
_window.ItemSelected += (item, target) =>
|
|||
|
|
{
|
|||
|
|
var msg = new TransformStingItemSelectedMessage(item, target);
|
|||
|
|
SendMessage(msg);
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
if(State != null)
|
|||
|
|
UpdateState(State);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
protected override void UpdateState(BoundUserInterfaceState state)
|
|||
|
|
{
|
|||
|
|
base.UpdateState(state);
|
|||
|
|
|
|||
|
|
if (state is TransformStingBuiState newState)
|
|||
|
|
{
|
|||
|
|
_window?.PopulateList(newState.Items, newState.Target);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
protected override void Dispose(bool disposing)
|
|||
|
|
{
|
|||
|
|
base.Dispose(disposing);
|
|||
|
|
|
|||
|
|
if (!disposing)
|
|||
|
|
return;
|
|||
|
|
|
|||
|
|
_window?.Close();
|
|||
|
|
}
|
|||
|
|
}
|