// SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com> // SPDX-FileCopyrightText: 2025 Aviu00 <93730715+Aviu00@users.noreply.github.com> // SPDX-FileCopyrightText: 2025 Misandry // SPDX-FileCopyrightText: 2025 gus // // SPDX-License-Identifier: AGPL-3.0-or-later using Content.Server.Hands.Systems; using Content.Server.NPC; using Content.Server.NPC.HTN; using Content.Server.NPC.HTN.PrimitiveTasks; using Content.Shared.Hands.Components; using Content.Shared.Wieldable; using Content.Shared.Wieldable.Components; namespace Content.Server._Shitcode.Wizard.NPC; public sealed partial class WieldOperator : HTNOperator { [Dependency] private readonly IEntityManager _entManager = default!; public override HTNOperatorStatus Update(NPCBlackboard blackboard, float frameTime) { if (!blackboard.TryGetValue(NPCBlackboard.ActiveHandEntity, out EntityUid? item, _entManager)) return HTNOperatorStatus.Finished; if (!_entManager.TryGetComponent(item, out WieldableComponent? wieldable) || wieldable.Wielded) return HTNOperatorStatus.Finished; var owner = blackboard.GetValueOrDefault(NPCBlackboard.Owner, _entManager); var wieldableSystem = _entManager.System(); return wieldableSystem.TryWield(item.Value, wieldable, owner) ? HTNOperatorStatus.Finished : HTNOperatorStatus.Failed; } }