Delta-v/Content.Client/_Harmony/Conspirators/EntitySystems/ConspiratorSystem.cs

37 lines
1.3 KiB
C#

using Content.Shared._Harmony.Conspirators.Components;
using Content.Shared._Harmony.Conspirators.EntitySystems;
using Content.Shared.Antag;
using Content.Shared.Ghost; // DeltaV
using Content.Shared.StatusIcon.Components;
using Robust.Client.Player;
using Robust.Shared.Prototypes;
namespace Content.Client._Harmony.Conspirators.EntitySystems;
public sealed class ConspiratorSystem : SharedConspiratorSystem
{
[Dependency] private readonly IPlayerManager _playerManager = default!;
[Dependency] private readonly IPrototypeManager _prototypeManager = default!;
public override void Initialize()
{
base.Initialize();
SubscribeLocalEvent<ConspiratorComponent, GetStatusIconsEvent>(OnConspiratorGetIcons);
}
private void OnConspiratorGetIcons(Entity<ConspiratorComponent> entity, ref GetStatusIconsEvent args)
{
if (_playerManager.LocalSession?.AttachedEntity is { } playerEntity)
{
if (!HasComp<ShowAntagIconsComponent>(playerEntity) &&
!HasComp<ConspiratorComponent>(playerEntity) &&
!HasComp<GhostComponent>(playerEntity)) // DeltaV - add GhostComponent
return;
}
if (_prototypeManager.TryIndex(entity.Comp.ConspiratorIcon, out var iconPrototype))
args.StatusIcons.Add(iconPrototype);
}
}