using Robust.Shared.Timing; using Content.Shared.Inventory.Events; namespace Content.Shared._White._Engi.DamageableClothing; /// /// WD /// public sealed partial class DamageableClothingSystem : EntitySystem { [Dependency] private readonly IGameTiming _gameTiming = default!; public override void Initialize() { base.Initialize(); InitializeUser(); SubscribeLocalEvent(OnEquipped); SubscribeLocalEvent(OnUnequipped); SubscribeLocalEvent(OnShutdown); } private void OnEquipped(EntityUid uid, DamageableClothingComponent component, GotEquippedEvent args) { if (_gameTiming.ApplyingState) return; component.User = args.Equipee; var userComp = EnsureComp(args.Equipee); userComp.ItemId = args.Equipment; } private void OnUnequipped(EntityUid uid, DamageableClothingComponent component, GotUnequippedEvent args) { RemCompDeferred(args.Equipee); component.User = null; } private void OnShutdown(EntityUid uid, DamageableClothingComponent component, ComponentShutdown args) { if (component.User != null) { RemCompDeferred(component.User.Value); component.User = null; } } }