Files

68 lines
2.3 KiB
C#
Raw Permalink Normal View History

2021-11-12 19:46:05 +01:00
using Content.Client.Administration.Managers;
2025-04-16 19:04:48 +02:00
using Content.Shared.Roles;
2021-12-10 16:55:01 +11:00
using Robust.Client.Graphics;
2022-09-14 20:42:35 -07:00
using Robust.Client.ResourceManagement;
using Robust.Client.UserInterface;
using Robust.Shared.Configuration;
using Robust.Shared.Prototypes;
namespace Content.Client.Administration.Systems
{
public sealed partial class AdminSystem
{
2022-09-14 20:42:35 -07:00
[Dependency] private readonly IOverlayManager _overlayManager = default!;
[Dependency] private readonly IResourceCache _resourceCache = default!;
2021-11-12 19:46:05 +01:00
[Dependency] private readonly IClientAdminManager _adminManager = default!;
2021-12-10 16:55:01 +11:00
[Dependency] private readonly IEyeManager _eyeManager = default!;
2022-09-14 20:42:35 -07:00
[Dependency] private readonly EntityLookupSystem _entityLookup = default!;
[Dependency] private readonly IUserInterfaceManager _userInterfaceManager = default!;
[Dependency] private readonly IConfigurationManager _configurationManager = default!;
2025-04-16 19:04:48 +02:00
[Dependency] private readonly SharedRoleSystem _roles = default!;
[Dependency] private readonly IPrototypeManager _proto = default!;
private AdminNameOverlay _adminNameOverlay = default!;
public event Action? OverlayEnabled;
public event Action? OverlayDisabled;
private void InitializeOverlay()
{
_adminNameOverlay = new AdminNameOverlay(
this,
EntityManager,
_eyeManager,
_resourceCache,
_entityLookup,
_userInterfaceManager,
2025-04-16 19:04:48 +02:00
_configurationManager,
_roles,
_proto);
2021-11-12 19:46:05 +01:00
_adminManager.AdminStatusUpdated += OnAdminStatusUpdated;
}
private void ShutdownOverlay()
{
_adminManager.AdminStatusUpdated -= OnAdminStatusUpdated;
}
private void OnAdminStatusUpdated()
{
AdminOverlayOff();
}
public void AdminOverlayOn()
{
2025-04-16 19:04:48 +02:00
if (_overlayManager.HasOverlay<AdminNameOverlay>())
return;
_overlayManager.AddOverlay(_adminNameOverlay);
OverlayEnabled?.Invoke();
}
public void AdminOverlayOff()
{
_overlayManager.RemoveOverlay<AdminNameOverlay>();
OverlayDisabled?.Invoke();
}
}
}