using JetBrains.Annotations; using Robust.Shared.Map; namespace Content.Shared.Interaction { public sealed class InteractHandEventArgs : EventArgs, ITargetedInteractEventArgs { public InteractHandEventArgs(EntityUid user, EntityUid target) { User = user; Target = target; } public EntityUid User { get; } public EntityUid Target { get; } } /// /// Raised directed on a target entity when it is interacted with by a user with an empty hand. /// [PublicAPI] public sealed class InteractHandEvent : HandledEntityEventArgs, ITargetedInteractEventArgs { /// /// Entity that triggered the interaction. /// public EntityUid User { get; } /// /// Entity that was interacted on. /// public EntityUid Target { get; } public InteractHandEvent(EntityUid user, EntityUid target) { User = user; Target = target; } } /// /// Low-level interaction event used for entities without hands. /// /// /// SHIT IS CURSED. /// //TODO: KILLLLLLL public sealed class InteractNoHandEvent : HandledEntityEventArgs { /// /// Entity that triggered the interaction. /// public EntityUid User; /// /// Entity that was interacted on. /// public EntityUid? Target; public EntityCoordinates ClickLocation; public InteractNoHandEvent(EntityUid user, EntityUid? target, EntityCoordinates clickLocation) { User = user; Target = target; ClickLocation = clickLocation; } } /// /// Reverse of the InteractNoHandEvent - raised on what was interacted on, rather than the other way around. /// public sealed class InteractedNoHandEvent : HandledEntityEventArgs { /// /// Entity that was interacted on /// public EntityUid Target; /// /// Entity that triggered this interaction /// public EntityUid User; public EntityCoordinates ClickLocation; public InteractedNoHandEvent(EntityUid target, EntityUid user, EntityCoordinates clickLocation) { Target = target; User = user; ClickLocation = clickLocation; } } }