BeforeClimbEvents.cs 1.5 KB

123456789101112131415161718192021222324252627282930313233343536
  1. using Content.Shared.Inventory;
  2. using Content.Shared.Climbing.Components;
  3. namespace Content.Shared.Climbing.Events;
  4. public abstract partial class BeforeClimbEvent : CancellableEntityEventArgs
  5. {
  6. public readonly EntityUid GettingPutOnTable;
  7. public readonly EntityUid PuttingOnTable;
  8. public readonly Entity<ClimbableComponent> BeingClimbedOn;
  9. public BeforeClimbEvent(EntityUid gettingPutOntable, EntityUid puttingOnTable, Entity<ClimbableComponent> beingClimbedOn)
  10. {
  11. GettingPutOnTable = gettingPutOntable;
  12. PuttingOnTable = puttingOnTable;
  13. BeingClimbedOn = beingClimbedOn;
  14. }
  15. }
  16. /// <summary>
  17. /// This event is raised on the the person either getting put on or going on the table.
  18. /// The event is also called on their clothing as well.
  19. /// </summary>
  20. public sealed class SelfBeforeClimbEvent : BeforeClimbEvent, IInventoryRelayEvent
  21. {
  22. public SlotFlags TargetSlots { get; } = SlotFlags.WITHOUT_POCKET;
  23. public SelfBeforeClimbEvent(EntityUid gettingPutOntable, EntityUid puttingOnTable, Entity<ClimbableComponent> beingClimbedOn) : base(gettingPutOntable, puttingOnTable, beingClimbedOn) { }
  24. }
  25. /// <summary>
  26. /// This event is raised on the thing being climbed on.
  27. /// </summary>
  28. public sealed class TargetBeforeClimbEvent : BeforeClimbEvent
  29. {
  30. public TargetBeforeClimbEvent(EntityUid gettingPutOntable, EntityUid puttingOnTable, Entity<ClimbableComponent> beingClimbedOn) : base(gettingPutOntable, puttingOnTable, beingClimbedOn) { }
  31. }