diff --git a/Content.Client/_Emberfall/Planetside/Systems/SpaceElevatorConsoleSystem.cs b/Content.Client/_Emberfall/Planetside/Systems/SpaceElevatorConsoleSystem.cs new file mode 100644 index 00000000000..c46ad580c5a --- /dev/null +++ b/Content.Client/_Emberfall/Planetside/Systems/SpaceElevatorConsoleSystem.cs @@ -0,0 +1,5 @@ +using Content.Shared._Emberfall.Planetside.Systems; + +namespace Content.Client._Emberfall.Planetside.Systems; + +public sealed class SpaceElevatorConsoleSystem : SharedSpaceElevatorConsoleSystem; diff --git a/Content.Client/_Emberfall/Planetside/Systems/SpaceElevatorSystem.cs b/Content.Client/_Emberfall/Planetside/Systems/SpaceElevatorSystem.cs new file mode 100644 index 00000000000..f00a2ca2ba2 --- /dev/null +++ b/Content.Client/_Emberfall/Planetside/Systems/SpaceElevatorSystem.cs @@ -0,0 +1,5 @@ +using Content.Shared._Emberfall.Planetside.Systems; + +namespace Content.Client._Emberfall.Planetside.Systems; + +public sealed class SpaceElevatorSystem : SharedSpaceElevatorSystem; diff --git a/Content.Client/_Emberfall/Planetside/UI/SpaceElevatorBoundUserInterface.cs b/Content.Client/_Emberfall/Planetside/UI/SpaceElevatorBoundUserInterface.cs new file mode 100644 index 00000000000..d76b60bb6e7 --- /dev/null +++ b/Content.Client/_Emberfall/Planetside/UI/SpaceElevatorBoundUserInterface.cs @@ -0,0 +1,37 @@ +using Content.Shared._Emberfall.Planetside; + +namespace Content.Client._Emberfall.Planetside.UI; + +public sealed class SpaceElevatorBoundUserInterface(EntityUid owner, Enum uiKey) : BoundUserInterface(owner, uiKey) +{ + [ViewVariables] + private SpaceElevatorConsoleWindow? _window; + + protected override void Open() + { + base.Open(); + + _window = new SpaceElevatorConsoleWindow(Owner); + _window.OpenCentered(); + _window.OnClose += Close; + _window.OnFTL += index => SendMessage(new DockingConsoleFTLMessage(index)); + } + + protected override void UpdateState(BoundUserInterfaceState state) + { + base.UpdateState(state); + + if (state is not SpaceElevatorConsoleState cast) + return; + + _window?.UpdateState(cast); + } + + protected override void Dispose(bool disposing) + { + base.Dispose(disposing); + + if (disposing) + _window?.Orphan(); + } +} diff --git a/Content.Client/_Emberfall/Planetside/UI/SpaceElevatorConsoleWindow.xaml b/Content.Client/_Emberfall/Planetside/UI/SpaceElevatorConsoleWindow.xaml new file mode 100644 index 00000000000..da707e47240 --- /dev/null +++ b/Content.Client/_Emberfall/Planetside/UI/SpaceElevatorConsoleWindow.xaml @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +