Make the admin player panel overlay button a toggle (#7153)

This commit is contained in:
DrSmugleaf
2022-03-24 17:08:08 +01:00
committed by GitHub
parent 3be7621656
commit 3c15de5f55
4 changed files with 52 additions and 17 deletions

View File

@@ -1,7 +1,5 @@
using Content.Client.Administration.Managers;
using Robust.Client.Graphics;
using Robust.Client.UserInterface.Controls;
using Robust.Shared.IoC;
namespace Content.Client.Administration
{
@@ -9,8 +7,12 @@ namespace Content.Client.Administration
{
[Dependency] private readonly IClientAdminManager _adminManager = default!;
[Dependency] private readonly IEyeManager _eyeManager = default!;
private AdminNameOverlay _adminNameOverlay = default!;
public event Action? OverlayEnabled;
public event Action? OverlayDisabled;
private void InitializeOverlay()
{
_adminNameOverlay = new AdminNameOverlay(this, _entityManager, _eyeManager, _resourceCache, _entityLookup);
@@ -27,15 +29,17 @@ namespace Content.Client.Administration
AdminOverlayOff();
}
public void AdminOverlayOn(BaseButton.ButtonEventArgs? _ = null)
public void AdminOverlayOn()
{
if (!_overlayManager.HasOverlay<AdminNameOverlay>())
_overlayManager.AddOverlay(_adminNameOverlay);
if (_overlayManager.HasOverlay<AdminNameOverlay>()) return;
_overlayManager.AddOverlay(_adminNameOverlay);
OverlayEnabled?.Invoke();
}
public void AdminOverlayOff(BaseButton.ButtonEventArgs? _ = null)
public void AdminOverlayOff()
{
_overlayManager.RemoveOverlay<AdminNameOverlay>();
OverlayDisabled?.Invoke();
}
}
}