MechGrabberUiFragment.xaml.cs 1.0 KB

1234567891011121314151617181920212223242526272829303132333435
  1. using Content.Shared.Mech;
  2. using Robust.Client.AutoGenerated;
  3. using Robust.Client.UserInterface.Controls;
  4. using Robust.Client.UserInterface.XAML;
  5. namespace Content.Client.Mech.Ui.Equipment;
  6. [GenerateTypedNameReferences]
  7. public sealed partial class MechGrabberUiFragment : BoxContainer
  8. {
  9. [Dependency] private readonly IEntityManager _entity = default!;
  10. public event Action<EntityUid>? OnEjectAction;
  11. public MechGrabberUiFragment()
  12. {
  13. RobustXamlLoader.Load(this);
  14. IoCManager.InjectDependencies(this);
  15. }
  16. public void UpdateContents(MechGrabberUiState state)
  17. {
  18. SpaceLabel.Text = $"{state.Contents.Count}/{state.MaxContents}";
  19. for (var i = 0; i < state.Contents.Count; i++)
  20. {
  21. var ent = _entity.GetEntity(state.Contents[i]);
  22. if (!_entity.TryGetComponent<MetaDataComponent>(ent, out var meta))
  23. continue;
  24. ItemList.AddItem(meta.EntityName);
  25. ItemList[i].OnSelected += _ => OnEjectAction?.Invoke(ent);
  26. }
  27. }
  28. }