Files
OldThink/Content.Client/_White/Wizard/TeleportSpell/TeleportSpellEui.cs
2024-06-09 20:49:07 +03:00

40 lines
1.0 KiB
C#

using System.Linq;
using Content.Client._White.Cult.UI.TeleportRunesList;
using Content.Client.Eui;
using Content.Shared._White.Wizard.Teleport;
using Content.Shared.Eui;
using JetBrains.Annotations;
namespace Content.Client._White.Wizard.TeleportSpell;
[UsedImplicitly]
public sealed class TeleportSpellEui : BaseEui
{
private readonly TeleportRunesListWindow _window = new();
public override void Opened()
{
_window.OpenCentered();
_window.ItemSelected +=
(index, _) => SendMessage(new TeleportSpellTargetLocationSelected {LocationUid = index});
_window.OnClose += () => SendMessage(new CloseEuiMessage());
base.Opened();
}
public override void Closed()
{
base.Closed();
_window.Close();
}
public override void HandleState(EuiStateBase state)
{
if (state is not TeleportSpellEuiState cast)
return;
_window.Clear();
_window.PopulateList(cast.Locations.Keys.ToList(), cast.Locations.Values.ToList());
}
}