using Content.Shared.Hands.EntitySystems; namespace Content.Server.NPC.HTN.PrimitiveTasks.Operators.Interactions; /// /// Uses the item in the NPC's active hand. /// public sealed partial class UseItemInHandOperator : HTNOperator { [Dependency] private IEntityManager _entManager = default!; public override HTNOperatorStatus Update(NPCBlackboard blackboard, float frameTime) { var owner = blackboard.GetValue(NPCBlackboard.Owner); if (!blackboard.TryGetValue(NPCBlackboard.ActiveHand, out var activeHand, _entManager)) return HTNOperatorStatus.Failed; var handsSystem = _entManager.System(); var success = handsSystem.TryUseItemInHand(owner, handName: activeHand); return success ? HTNOperatorStatus.Finished : HTNOperatorStatus.Failed; } }