| 123456789101112131415161718192021222324252627282930313233343536373839 |
- using System.Diagnostics.CodeAnalysis;
- using Content.Shared.Hands.Components;
- namespace Content.Shared.Hands.EntitySystems;
- // These functions are mostly unused except for some AI operator stuff
- // Nothing stops them from being used in general. If they ever get used elsewhere, then this file probably needs to be renamed.
- public abstract partial class SharedHandsSystem : EntitySystem
- {
- public bool TrySelect(EntityUid uid, EntityUid? entity, HandsComponent? handsComp = null)
- {
- if (!Resolve(uid, ref handsComp, false))
- return false;
- if (!IsHolding(uid, entity, out var hand, handsComp))
- return false;
- SetActiveHand(uid, hand, handsComp);
- return true;
- }
- public bool TrySelect<TComponent>(EntityUid uid, [NotNullWhen(true)] out TComponent? component, HandsComponent? handsComp = null) where TComponent : Component
- {
- component = null;
- if (!Resolve(uid, ref handsComp, false))
- return false;
- foreach (var hand in handsComp.Hands.Values)
- {
- if (TryComp(hand.HeldEntity, out component))
- return true;
- }
- return false;
- }
- public bool TrySelectEmptyHand(EntityUid uid, HandsComponent? handsComp = null) => TrySelect(uid, null, handsComp);
- }
|