StepTriggerImmuneSystem.cs 1.1 KB

123456789101112131415161718192021222324252627282930
  1. using Content.Shared.Examine;
  2. using Content.Shared.Inventory;
  3. using Content.Shared.StepTrigger.Components;
  4. namespace Content.Shared.StepTrigger.Systems;
  5. public sealed class StepTriggerImmuneSystem : EntitySystem
  6. {
  7. [Dependency] private readonly InventorySystem _inventory = default!;
  8. /// <inheritdoc/>
  9. public override void Initialize()
  10. {
  11. SubscribeLocalEvent<PreventableStepTriggerComponent, StepTriggerAttemptEvent>(OnStepTriggerClothingAttempt);
  12. SubscribeLocalEvent<PreventableStepTriggerComponent, ExaminedEvent>(OnExamined);
  13. }
  14. private void OnStepTriggerClothingAttempt(Entity<PreventableStepTriggerComponent> ent, ref StepTriggerAttemptEvent args)
  15. {
  16. if (HasComp<ProtectedFromStepTriggersComponent>(args.Tripper) || _inventory.TryGetInventoryEntity<ProtectedFromStepTriggersComponent>(args.Tripper, out _))
  17. {
  18. args.Cancelled = true;
  19. }
  20. }
  21. private void OnExamined(EntityUid uid, PreventableStepTriggerComponent component, ExaminedEvent args)
  22. {
  23. args.PushMarkup(Loc.GetString("clothing-required-step-trigger-examine"));
  24. }
  25. }