Skip to content

Commit

Permalink
Add toggle ghost visibility button to ghost GUI (space-wizards#12325)
Browse files Browse the repository at this point in the history
* Add toggle ghost visibility button to ghosts

* Rename to toggleghosts
  • Loading branch information
ShadowCommander authored Nov 2, 2022
1 parent 4cb96db commit 9f485d7
Show file tree
Hide file tree
Showing 6 changed files with 41 additions and 0 deletions.
5 changes: 5 additions & 0 deletions Content.Client/Ghost/GhostSystem.cs
Original file line number Diff line number Diff line change
Expand Up @@ -155,5 +155,10 @@ public void OpenGhostRoles()
{
_console.RemoteExecuteCommand(null, "ghostroles");
}

public void ToggleGhostVisibility()
{
_console.RemoteExecuteCommand(null, "toggleghosts");
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,7 @@ public void LoadGui()
Gui.RequestWarpsPressed += RequestWarps;
Gui.ReturnToBodyPressed += ReturnToBody;
Gui.GhostRolesPressed += GhostRolesPressed;
Gui.ToggleGhostVisibility += ToggleGhostVisibility;
Gui.TargetWindow.WarpClicked += OnWarpClicked;

UpdateGui();
Expand All @@ -112,6 +113,7 @@ public void UnloadGui()
Gui.RequestWarpsPressed -= RequestWarps;
Gui.ReturnToBodyPressed -= ReturnToBody;
Gui.GhostRolesPressed -= GhostRolesPressed;
Gui.ToggleGhostVisibility -= ToggleGhostVisibility;
Gui.TargetWindow.WarpClicked -= OnWarpClicked;

Gui.Hide();
Expand All @@ -133,4 +135,9 @@ private void GhostRolesPressed()
{
_system?.OpenGhostRoles();
}

private void ToggleGhostVisibility()
{
_system?.ToggleGhostVisibility();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,6 @@
<Button Name="ReturnToBodyButton" Text="{Loc ghost-gui-return-to-body-button}" />
<Button Name="GhostWarpButton" Text="{Loc ghost-gui-ghost-warp-button}" />
<Button Name="GhostRolesButton" />
<Button Name="ToggleGhostVisibilityButton" Text="{Loc ghost-gui-toggle-ghost-visibility-button}" />
</BoxContainer>
</widgets:GhostGui>
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ public sealed partial class GhostGui : UIWidget
public event Action? RequestWarpsPressed;
public event Action? ReturnToBodyPressed;
public event Action? GhostRolesPressed;
public event Action? ToggleGhostVisibility;

public GhostGui()
{
Expand All @@ -26,6 +27,7 @@ public GhostGui()
GhostWarpButton.OnPressed += _ => RequestWarpsPressed?.Invoke();
ReturnToBodyButton.OnPressed += _ => ReturnToBodyPressed?.Invoke();
GhostRolesButton.OnPressed += _ => GhostRolesPressed?.Invoke();
ToggleGhostVisibilityButton.OnPressed += _ => ToggleGhostVisibility?.Invoke();
}

public void Hide()
Expand Down
25 changes: 25 additions & 0 deletions Content.Server/Ghost/GhostSystem.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
using Content.Server.Visible;
using Content.Server.Warps;
using Content.Shared.Actions;
using Content.Shared.Administration;
using Content.Shared.Examine;
using Content.Shared.Follower;
using Content.Shared.Ghost;
Expand All @@ -17,6 +18,7 @@
using JetBrains.Annotations;
using Robust.Server.GameObjects;
using Robust.Server.Player;
using Robust.Shared.Console;
using Robust.Shared.Physics.Components;
using Robust.Shared.Timing;

Expand Down Expand Up @@ -296,4 +298,27 @@ public bool DoGhostBooEvent(EntityUid target)
return ghostBoo.Handled;
}
}

[AnyCommand]
public sealed class ToggleGhostVisibility : IConsoleCommand
{
public string Command => "toggleghosts";
public string Description => "Toggles ghost visibility";
public string Help => $"{Command}";
public void Execute(IConsoleShell shell, string argStr, string[] args)
{
if (shell.Player == null)
shell.WriteLine("You can only open the ghost roles UI on a client.");

var entityManager = IoCManager.Resolve<IEntityManager>();

var uid = shell.Player?.AttachedEntity;
if (uid == null
|| !entityManager.HasComponent<GhostComponent>(uid)
|| !entityManager.TryGetComponent<EyeComponent>(uid, out var eyeComponent))
return;

eyeComponent.VisibilityMask ^= (uint) VisibilityFlags.Ghost;
}
}
}
1 change: 1 addition & 0 deletions Resources/Locale/en-US/ghost/ghost-gui.ftl
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
ghost-gui-return-to-body-button = Return to body
ghost-gui-ghost-warp-button = Ghost Warp
ghost-gui-ghost-roles-button = Ghost Roles ({$count})
ghost-gui-toggle-ghost-visibility-button = Toggle Ghosts
ghost-target-window-title = Ghost Warp
ghost-target-window-current-button = Warp: {$name}
Expand Down

0 comments on commit 9f485d7

Please sign in to comment.