diff --git a/Content.Client/Ghost/GhostComponent.cs b/Content.Client/Ghost/GhostComponent.cs index 5674a52960..1f38dc84af 100644 --- a/Content.Client/Ghost/GhostComponent.cs +++ b/Content.Client/Ghost/GhostComponent.cs @@ -1,3 +1,4 @@ +using Content.Client.Ghost.UI; using Content.Shared.Ghost; using Robust.Client.Player; using Robust.Shared.GameObjects; diff --git a/Content.Client/Ghost/GhostGui.cs b/Content.Client/Ghost/GhostGui.cs deleted file mode 100644 index 6616e27e7f..0000000000 --- a/Content.Client/Ghost/GhostGui.cs +++ /dev/null @@ -1,170 +0,0 @@ -using System.Collections.Generic; -using Content.Shared.Ghost; -using Robust.Client.Console; -using Robust.Client.UserInterface; -using Robust.Client.UserInterface.Controls; -using Robust.Client.UserInterface.CustomControls; -using Robust.Shared.GameObjects; -using Robust.Shared.IoC; -using Robust.Shared.Localization; -using static Robust.Client.UserInterface.Controls.BoxContainer; - -namespace Content.Client.Ghost -{ - public class GhostGui : Control - { - private readonly Button _returnToBody = new() {Text = Loc.GetString("ghost-gui-return-to-body-button") }; - private readonly Button _ghostWarp = new() {Text = Loc.GetString("ghost-gui-ghost-warp-button") }; - private readonly Button _ghostRoles = new() {Text = Loc.GetString("ghost-gui-ghost-roles-button") }; - private readonly GhostComponent _owner; - - public GhostTargetWindow? TargetWindow { get; } - - public GhostGui(GhostComponent owner, IEntityNetworkManager eventBus) - { - IoCManager.InjectDependencies(this); - - _owner = owner; - - TargetWindow = new GhostTargetWindow(owner, eventBus); - - MouseFilter = MouseFilterMode.Ignore; - - _ghostWarp.OnPressed += _ => - { - eventBus.SendSystemNetworkMessage(new GhostWarpsRequestEvent()); - TargetWindow.Populate(); - TargetWindow.OpenCentered(); - }; - _returnToBody.OnPressed += _ => - { - var msg = new GhostReturnToBodyRequest(); - eventBus.SendSystemNetworkMessage(msg); - }; - _ghostRoles.OnPressed += _ => IoCManager.Resolve() - .RemoteExecuteCommand(null, "ghostroles"); - - AddChild(new BoxContainer - { - Orientation = LayoutOrientation.Horizontal, - Children = - { - _returnToBody, - _ghostWarp, - _ghostRoles, - } - }); - } - - public void Update() - { - _returnToBody.Disabled = !_owner.CanReturnToBody; - TargetWindow?.Populate(); - } - - protected override void Dispose(bool disposing) - { - base.Dispose(disposing); - - if (disposing) - { - TargetWindow?.Dispose(); - } - } - } - - public class GhostTargetWindow : SS14Window - { - private readonly GhostComponent _owner; - private readonly IEntityNetworkManager _netManager; - - private readonly BoxContainer _buttonContainer; - - public List Locations { get; set; } = new(); - - public Dictionary Players { get; set; } = new(); - - public GhostTargetWindow(GhostComponent owner, IEntityNetworkManager netManager) - { - MinSize = SetSize = (300, 450); - Title = Loc.GetString("ghost-target-window-title"); - _owner = owner; - _netManager = netManager; - - _buttonContainer = new BoxContainer - { - Orientation = LayoutOrientation.Vertical, - VerticalExpand = true, - SeparationOverride = 5, - - }; - - var scrollBarContainer = new ScrollContainer() - { - VerticalExpand = true, - HorizontalExpand = true - }; - - scrollBarContainer.AddChild(_buttonContainer); - - Contents.AddChild(scrollBarContainer); - } - - public void Populate() - { - _buttonContainer.DisposeAllChildren(); - AddButtonPlayers(); - AddButtonLocations(); - } - - private void AddButtonPlayers() - { - foreach (var (key, value) in Players) - { - var currentButtonRef = new Button - { - Text = value, - TextAlign = Label.AlignMode.Right, - HorizontalAlignment = HAlignment.Center, - VerticalAlignment = VAlignment.Center, - SizeFlagsStretchRatio = 1, - MinSize = (230, 20), - ClipText = true, - }; - - currentButtonRef.OnPressed += (_) => - { - var msg = new GhostWarpToTargetRequestEvent(key); - _netManager.SendSystemNetworkMessage(msg); - }; - - _buttonContainer.AddChild(currentButtonRef); - } - } - - private void AddButtonLocations() - { - foreach (var name in Locations) - { - var currentButtonRef = new Button - { - Text = Loc.GetString("ghost-target-window-current-button", ("name", name)), - TextAlign = Label.AlignMode.Right, - HorizontalAlignment = HAlignment.Center, - VerticalAlignment = VAlignment.Center, - SizeFlagsStretchRatio = 1, - MinSize = (230,20), - ClipText = true, - }; - - currentButtonRef.OnPressed += (_) => - { - var msg = new GhostWarpToLocationRequestEvent(name); - _netManager.SendSystemNetworkMessage(msg); - }; - - _buttonContainer.AddChild(currentButtonRef); - } - } - } -} diff --git a/Content.Client/Ghost/GhostSystem.cs b/Content.Client/Ghost/GhostSystem.cs index 21cb31adaf..65ffefca1a 100644 --- a/Content.Client/Ghost/GhostSystem.cs +++ b/Content.Client/Ghost/GhostSystem.cs @@ -1,4 +1,5 @@ -using Content.Client.HUD; +using Content.Client.Ghost.UI; +using Content.Client.HUD; using Content.Shared.Ghost; using JetBrains.Annotations; using Robust.Client.GameObjects; diff --git a/Content.Client/Ghost/Roles/UI/GhostRoleWindow.cs b/Content.Client/Ghost/Roles/UI/GhostRoleWindow.cs deleted file mode 100644 index ada3534dd5..0000000000 --- a/Content.Client/Ghost/Roles/UI/GhostRoleWindow.cs +++ /dev/null @@ -1,12 +0,0 @@ -using Robust.Client.UserInterface.CustomControls; - -namespace Content.Client.Ghost.Roles.UI -{ - public class GhostRoleWindow : SS14Window - { - protected override void Opened() - { - base.Opened(); - } - } -} diff --git a/Content.Client/Ghost/Roles/UI/GhostRolesEntry.xaml b/Content.Client/Ghost/Roles/UI/GhostRolesEntry.xaml index b9bd85e06d..52420d1819 100644 --- a/Content.Client/Ghost/Roles/UI/GhostRolesEntry.xaml +++ b/Content.Client/Ghost/Roles/UI/GhostRolesEntry.xaml @@ -1,8 +1,15 @@ - - - -