Add alt click to hands (#12330)

This commit is contained in:
Jacob Tong
2022-11-03 18:36:45 -07:00
committed by GitHub
parent 88a4ee0ce1
commit 74b63e83fd
4 changed files with 43 additions and 4 deletions

View File

@@ -17,6 +17,7 @@ public abstract partial class SharedHandsSystem : EntitySystem
SubscribeAllEvent<RequestHandInteractUsingEvent>(HandleInteractUsingInHand);
SubscribeAllEvent<RequestUseInHandEvent>(HandleUseInHand);
SubscribeAllEvent<RequestMoveHandItemEvent>(HandleMoveItemFromHand);
SubscribeAllEvent<RequestHandAltInteractEvent>(HandleHandAltInteract);
SubscribeLocalEvent<SharedHandsComponent, ExaminedEvent>(HandleExamined);
@@ -65,6 +66,12 @@ public abstract partial class SharedHandsSystem : EntitySystem
TryInteractHandWithActiveHand(args.SenderSession.AttachedEntity.Value, msg.HandName);
}
private void HandleHandAltInteract(RequestHandAltInteractEvent msg, EntitySessionEventArgs args)
{
if (args.SenderSession.AttachedEntity != null)
TryUseItemInHand(args.SenderSession.AttachedEntity.Value, true);
}
private void SwapHandsPressed(ICommonSession? session)
{
if (!TryComp(session?.AttachedEntity, out SharedHandsComponent? component))

View File

@@ -267,6 +267,20 @@ namespace Content.Shared.Hands
}
}
/// <summary>
/// Event raised by a client when they want to alt interact with the item currently in their hands.
/// </summary>
[Serializable, NetSerializable]
public sealed class RequestHandAltInteractEvent : EntityEventArgs
{
public EntityUid Entity { get; }
public RequestHandAltInteractEvent(EntityUid entity)
{
Entity = entity;
}
}
public sealed class HandCountChangedEvent : EntityEventArgs
{
public HandCountChangedEvent(EntityUid sender)