RevolutionarySystem.cs 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. using Content.Shared.Revolutionary.Components;
  2. using Content.Shared.Revolutionary;
  3. using Content.Shared.StatusIcon.Components;
  4. using Robust.Shared.Prototypes;
  5. namespace Content.Client.Revolutionary;
  6. /// <summary>
  7. /// Used for the client to get status icons from other revs.
  8. /// </summary>
  9. public sealed class RevolutionarySystem : SharedRevolutionarySystem
  10. {
  11. [Dependency] private readonly IPrototypeManager _prototype = default!;
  12. public override void Initialize()
  13. {
  14. base.Initialize();
  15. SubscribeLocalEvent<RevolutionaryComponent, GetStatusIconsEvent>(GetRevIcon);
  16. SubscribeLocalEvent<HeadRevolutionaryComponent, GetStatusIconsEvent>(GetHeadRevIcon);
  17. }
  18. private void GetRevIcon(Entity<RevolutionaryComponent> ent, ref GetStatusIconsEvent args)
  19. {
  20. if (HasComp<HeadRevolutionaryComponent>(ent))
  21. return;
  22. if (_prototype.TryIndex(ent.Comp.StatusIcon, out var iconPrototype))
  23. args.StatusIcons.Add(iconPrototype);
  24. }
  25. private void GetHeadRevIcon(Entity<HeadRevolutionaryComponent> ent, ref GetStatusIconsEvent args)
  26. {
  27. if (_prototype.TryIndex(ent.Comp.StatusIcon, out var iconPrototype))
  28. args.StatusIcons.Add(iconPrototype);
  29. }
  30. }