Files
tbd-station-14/Content.Client/Mech/Ui/Equipment/MechGrabberUiFragment.xaml.cs
2023-09-11 09:42:41 +10:00

36 lines
1.0 KiB
C#

using Content.Shared.Mech;
using Robust.Client.AutoGenerated;
using Robust.Client.UserInterface.Controls;
using Robust.Client.UserInterface.XAML;
namespace Content.Client.Mech.Ui.Equipment;
[GenerateTypedNameReferences]
public sealed partial class MechGrabberUiFragment : BoxContainer
{
[Dependency] private readonly IEntityManager _entity = default!;
public event Action<EntityUid>? OnEjectAction;
public MechGrabberUiFragment()
{
RobustXamlLoader.Load(this);
IoCManager.InjectDependencies(this);
}
public void UpdateContents(MechGrabberUiState state)
{
SpaceLabel.Text = $"{state.Contents.Count}/{state.MaxContents}";
for (var i = 0; i < state.Contents.Count; i++)
{
var ent = _entity.GetEntity(state.Contents[i]);
if (!_entity.TryGetComponent<MetaDataComponent>(ent, out var meta))
continue;
ItemList.AddItem(meta.EntityName);
ItemList[i].OnSelected += _ => OnEjectAction?.Invoke(ent);
}
}
}