1
0

DeimplantChoiceWindow.xaml.cs 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. using Content.Client.UserInterface.Controls;
  2. using Robust.Client.AutoGenerated;
  3. using Robust.Client.UserInterface.XAML;
  4. using System.Linq;
  5. namespace Content.Client.Implants.UI;
  6. [GenerateTypedNameReferences]
  7. public sealed partial class DeimplantChoiceWindow : FancyWindow
  8. {
  9. public Action<string?>? OnImplantChange;
  10. private Dictionary<string, string> _implants = new();
  11. private string? _chosenImplant;
  12. public DeimplantChoiceWindow()
  13. {
  14. RobustXamlLoader.Load(this);
  15. ImplantSelector.OnItemSelected += args =>
  16. {
  17. OnImplantChange?.Invoke(_implants.ElementAt(args.Id).Key);
  18. ImplantSelector.SelectId(args.Id);
  19. };
  20. }
  21. public void UpdateImplantList(Dictionary<string, string> implants)
  22. {
  23. _implants = implants;
  24. int i = 0;
  25. ImplantSelector.Clear();
  26. foreach (var implantDict in _implants)
  27. {
  28. ImplantSelector.AddItem(implantDict.Value, i);
  29. i++;
  30. }
  31. }
  32. public void UpdateState(string? implant)
  33. {
  34. _chosenImplant = implant;
  35. for (int id = 0; id < ImplantSelector.ItemCount; id++)
  36. {
  37. if (_implants.ElementAt(id).Key.Equals(_chosenImplant))
  38. {
  39. ImplantSelector.SelectId(id);
  40. break;
  41. }
  42. }
  43. }
  44. }