diff --git a/Content.Client/DeltaV/Shuttles/Systems/DockingConsoleSystem.cs b/Content.Client/DeltaV/Shuttles/Systems/DockingConsoleSystem.cs new file mode 100644 index 0000000000..5e0df6ae5d --- /dev/null +++ b/Content.Client/DeltaV/Shuttles/Systems/DockingConsoleSystem.cs @@ -0,0 +1,5 @@ +using Content.Shared.DeltaV.Shuttles.Systems; + +namespace Content.Client.DeltaV.Shuttles.Systems; + +public sealed class DockingConsoleSystem : SharedDockingConsoleSystem; diff --git a/Content.Client/DeltaV/Shuttles/UI/DockingConsoleBoundUserInterface.cs b/Content.Client/DeltaV/Shuttles/UI/DockingConsoleBoundUserInterface.cs new file mode 100644 index 0000000000..450ffc04a1 --- /dev/null +++ b/Content.Client/DeltaV/Shuttles/UI/DockingConsoleBoundUserInterface.cs @@ -0,0 +1,38 @@ +using Content.Shared.DeltaV.Shuttles; + +namespace Content.Client.DeltaV.Shuttles.UI; + +public sealed class DockingConsoleBoundUserInterface : BoundUserInterface +{ + [ViewVariables] + private DockingConsoleWindow? _window; + + public DockingConsoleBoundUserInterface(EntityUid owner, Enum uiKey) : base(owner, uiKey) + { + } + + protected override void Open() + { + base.Open(); + + _window = new DockingConsoleWindow(Owner); + _window.OnFTL += index => SendMessage(new DockingConsoleFTLMessage(index)); + _window.OnClose += Close; + _window.OpenCentered(); + } + + protected override void UpdateState(BoundUserInterfaceState state) + { + base.UpdateState(state); + if (state is DockingConsoleState cast) + _window?.UpdateState(cast); + } + + protected override void Dispose(bool disposing) + { + base.Dispose(disposing); + + if (disposing) + _window?.Orphan(); + } +} diff --git a/Content.Client/DeltaV/Shuttles/UI/DockingConsoleWindow.xaml b/Content.Client/DeltaV/Shuttles/UI/DockingConsoleWindow.xaml new file mode 100644 index 0000000000..595a30be80 --- /dev/null +++ b/Content.Client/DeltaV/Shuttles/UI/DockingConsoleWindow.xaml @@ -0,0 +1,17 @@ + + + + + + + +