+++ /dev/null
-using Content.Server.Speech.EntitySystems;
-
-namespace Content.Server.Speech.Components;
-
-/// <summary>
-/// Applies any accent components on this item to the name of the wearer while worn.
-/// </summary>
-[RegisterComponent]
-[Access(typeof(AccentWearerNameClothingSystem))]
-public sealed partial class AccentWearerNameClothingComponent : Component;
+++ /dev/null
-using Content.Server.Speech.Components;
-using Content.Shared.Clothing;
-using Content.Shared.Inventory;
-using Content.Shared.NameModifier.EntitySystems;
-
-namespace Content.Server.Speech.EntitySystems;
-
-/// <inheritdoc cref="AccentWearerNameClothingComponent"/>
-public sealed class AccentWearerNameClothingSystem : EntitySystem
-{
- [Dependency] private readonly NameModifierSystem _nameMod = default!;
-
- public override void Initialize()
- {
- base.Initialize();
-
- SubscribeLocalEvent<AccentWearerNameClothingComponent, ClothingGotEquippedEvent>(OnGotEquipped);
- SubscribeLocalEvent<AccentWearerNameClothingComponent, ClothingGotUnequippedEvent>(OnGotUnequipped);
- SubscribeLocalEvent<AccentWearerNameClothingComponent, InventoryRelayedEvent<RefreshNameModifiersEvent>>(OnRefreshNameModifiers);
- }
-
- private void OnGotEquipped(Entity<AccentWearerNameClothingComponent> ent, ref ClothingGotEquippedEvent args)
- {
- _nameMod.RefreshNameModifiers(args.Wearer);
- }
-
- private void OnGotUnequipped(Entity<AccentWearerNameClothingComponent> ent, ref ClothingGotUnequippedEvent args)
- {
- _nameMod.RefreshNameModifiers(args.Wearer);
- }
-
- private void OnRefreshNameModifiers(Entity<AccentWearerNameClothingComponent> ent, ref InventoryRelayedEvent<RefreshNameModifiersEvent> args)
- {
- var ev = new AccentGetEvent(ent, args.Args.BaseName);
- RaiseLocalEvent(ent, ev);
- // Use a negative priority since we're going to bulldoze any earlier changes
- args.Args.AddModifier("comp-accent-wearer-name-clothing-format", -1, ("accentedName", ev.Message));
- }
-}