1
0

BandMenu.xaml.cs 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. using Robust.Client.AutoGenerated;
  2. using Robust.Client.UserInterface.Controls;
  3. using Robust.Client.UserInterface.CustomControls;
  4. using Robust.Client.UserInterface.XAML;
  5. using Robust.Shared.Timing;
  6. namespace Content.Client.Instruments.UI;
  7. [GenerateTypedNameReferences]
  8. public sealed partial class BandMenu : DefaultWindow
  9. {
  10. private readonly InstrumentBoundUserInterface _owner;
  11. public EntityUid? Master;
  12. public BandMenu(InstrumentBoundUserInterface owner)
  13. {
  14. RobustXamlLoader.Load(this);
  15. _owner = owner;
  16. BandList.OnItemSelected += OnItemSelected;
  17. RefreshButton.OnPressed += OnRefreshPressed;
  18. }
  19. private void OnRefreshPressed(BaseButton.ButtonEventArgs obj)
  20. {
  21. _owner.RefreshBands();
  22. }
  23. private void OnItemSelected(ItemList.ItemListSelectedEventArgs args)
  24. {
  25. _owner.Instruments.SetMaster(_owner.Owner, (EntityUid)args.ItemList[args.ItemIndex].Metadata!);
  26. BandList.Clear();
  27. Timer.Spawn(0, Close);
  28. }
  29. public void Populate((NetEntity, string)[] nearby, IEntityManager entManager)
  30. {
  31. BandList.Clear();
  32. foreach (var (nent, name) in nearby)
  33. {
  34. var uid = entManager.GetEntity(nent);
  35. var item = BandList.AddItem(name, null, true, uid);
  36. item.Selected = Master == uid;
  37. }
  38. }
  39. }