AutodocBoundUserInterface.cs 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. // SPDX-FileCopyrightText: 2024 Piras314 <p1r4s@proton.me>
  2. // SPDX-FileCopyrightText: 2024 deltanedas <39013340+deltanedas@users.noreply.github.com>
  3. // SPDX-FileCopyrightText: 2024 deltanedas <@deltanedas:kde.org>
  4. // SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
  5. // SPDX-FileCopyrightText: 2025 JohnOakman <sremy2012@hotmail.fr>
  6. //
  7. // SPDX-License-Identifier: AGPL-3.0-or-later
  8. using Content.Shared._Shitmed.Autodoc;
  9. using Robust.Client.Player;
  10. namespace Content.Client._Shitmed.Autodoc;
  11. public sealed class AutodocBoundUserInterface : BoundUserInterface
  12. {
  13. [Dependency] private readonly IEntityManager _entMan = default!;
  14. [Dependency] private readonly IPlayerManager _player = default!;
  15. [ViewVariables]
  16. private AutodocWindow? _window;
  17. public AutodocBoundUserInterface(EntityUid owner, Enum uiKey) : base(owner, uiKey)
  18. {
  19. _window = new AutodocWindow(owner, _entMan, _player);
  20. _window.OnCreateProgram += title => SendMessage(new AutodocCreateProgramMessage(title));
  21. _window.OnToggleProgramSafety += program => SendMessage(new AutodocToggleProgramSafetyMessage(program));
  22. _window.OnRemoveProgram += program => SendMessage(new AutodocRemoveProgramMessage(program));
  23. _window.OnAddStep += (program, step, index) => SendMessage(new AutodocAddStepMessage(program, step, index));
  24. _window.OnRemoveStep += (program, stepIndex) => SendMessage(new AutodocRemoveStepMessage(program, stepIndex));
  25. _window.OnImportProgram += (program) => SendMessage(new AutodocImportProgramMessage(program));
  26. _window.OnStart += program => SendMessage(new AutodocStartMessage(program));
  27. _window.OnStop += () => SendMessage(new AutodocStopMessage());
  28. _window.OnClose += () => Close();
  29. _window.OpenCentered();
  30. }
  31. protected override void Dispose(bool disposing)
  32. {
  33. base.Dispose(disposing);
  34. if (disposing)
  35. _window?.Dispose();
  36. }
  37. }