1
0

ModifyWearerNameSystem.cs 1.3 KB

12345678910111213141516171819202122232425262728293031323334
  1. using Content.Shared.Clothing;
  2. using Content.Shared.Inventory;
  3. using Content.Shared.NameModifier.Components;
  4. namespace Content.Shared.NameModifier.EntitySystems;
  5. public sealed partial class ModifyWearerNameSystem : EntitySystem
  6. {
  7. [Dependency] private readonly NameModifierSystem _nameMod = default!;
  8. public override void Initialize()
  9. {
  10. base.Initialize();
  11. SubscribeLocalEvent<ModifyWearerNameComponent, InventoryRelayedEvent<RefreshNameModifiersEvent>>(OnRefreshNameModifiers);
  12. SubscribeLocalEvent<ModifyWearerNameComponent, ClothingGotEquippedEvent>(OnGotEquipped);
  13. SubscribeLocalEvent<ModifyWearerNameComponent, ClothingGotUnequippedEvent>(OnGotUnequipped);
  14. }
  15. private void OnGotEquipped(Entity<ModifyWearerNameComponent> entity, ref ClothingGotEquippedEvent args)
  16. {
  17. _nameMod.RefreshNameModifiers(args.Wearer);
  18. }
  19. private void OnGotUnequipped(Entity<ModifyWearerNameComponent> entity, ref ClothingGotUnequippedEvent args)
  20. {
  21. _nameMod.RefreshNameModifiers(args.Wearer);
  22. }
  23. private void OnRefreshNameModifiers(Entity<ModifyWearerNameComponent> entity, ref InventoryRelayedEvent<RefreshNameModifiersEvent> args)
  24. {
  25. args.Args.AddModifier(entity.Comp.LocId, entity.Comp.Priority);
  26. }
  27. }