1
0

AddAtmosWindow.xaml.cs 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. using JetBrains.Annotations;
  2. using Robust.Client.AutoGenerated;
  3. using Robust.Client.Console;
  4. using Robust.Client.Player;
  5. using Robust.Client.UserInterface.Controls;
  6. using Robust.Client.UserInterface.CustomControls;
  7. using Robust.Client.UserInterface.XAML;
  8. using Robust.Shared.Map.Components;
  9. namespace Content.Client.Administration.UI.Tabs.AtmosTab
  10. {
  11. [GenerateTypedNameReferences]
  12. [UsedImplicitly]
  13. public sealed partial class AddAtmosWindow : DefaultWindow
  14. {
  15. [Dependency] private readonly IPlayerManager _players = default!;
  16. [Dependency] private readonly IEntityManager _entities = default!;
  17. private readonly List<Entity<MapGridComponent>> _data = new();
  18. public AddAtmosWindow()
  19. {
  20. RobustXamlLoader.Load(this);
  21. IoCManager.InjectDependencies(this);
  22. }
  23. protected override void EnteredTree()
  24. {
  25. _data.Clear();
  26. var player = _players.LocalEntity;
  27. var playerGrid = _entities.GetComponentOrNull<TransformComponent>(player)?.GridUid;
  28. var query = IoCManager.Resolve<IEntityManager>().AllEntityQueryEnumerator<MapGridComponent>();
  29. while (query.MoveNext(out var uid, out var grid))
  30. {
  31. _data.Add((uid, grid));
  32. GridOptions.AddItem($"{uid} {(playerGrid == uid ? Loc.GetString($"admin-ui-atmos-grid-current") : "")}");
  33. }
  34. GridOptions.OnItemSelected += eventArgs => GridOptions.SelectId(eventArgs.Id);
  35. SubmitButton.OnPressed += SubmitButtonOnOnPressed;
  36. }
  37. private void SubmitButtonOnOnPressed(BaseButton.ButtonEventArgs obj)
  38. {
  39. var selectedGrid = _data[GridOptions.SelectedId].Owner;
  40. IoCManager.Resolve<IClientConsoleHost>().ExecuteCommand($"addatmos {_entities.GetNetEntity(selectedGrid)}");
  41. }
  42. }
  43. }