using Content.Shared.Clothing.Components; using Content.Shared.Inventory.Events; namespace Content.Shared.Chat.TypingIndicator; /// /// Sync typing indicator icon between client and server. /// public abstract class SharedTypingIndicatorSystem : EntitySystem { /// /// Default ID of /// public const string InitialIndicatorId = "default"; public override void Initialize() { base.Initialize(); SubscribeLocalEvent(OnGotEquipped); SubscribeLocalEvent(OnGotUnequipped); } private void OnGotEquipped(EntityUid uid, TypingIndicatorClothingComponent component, GotEquippedEvent args) { if (!TryComp(uid, out var clothing) || !TryComp(args.Equipee, out var indicator)) return; var isCorrectSlot = clothing.Slots.HasFlag(args.SlotFlags); if (!isCorrectSlot) return; indicator.Prototype = component.Prototype; } private void OnGotUnequipped(EntityUid uid, TypingIndicatorClothingComponent component, GotUnequippedEvent args) { if (!TryComp(args.Equipee, out var indicator)) return; indicator.Prototype = SharedTypingIndicatorSystem.InitialIndicatorId; } }