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;
}
}
}