document.write("
class UPathFollowingComponent; class ADandelionPlayerController; class UDandelionGameplayAbility; DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam( FMoveToLocationSimpleDelegate, EPathFollowingResult::Type, PathingResultType ); UCLASS(Abstract) class DANDELION_API UAbilityTask_MoveCharacterToLocation : public UAbilityTask { GENERATED_BODY() public: UPROPERTY(BlueprintAssignable) FMoveToLocationSimpleDelegate OnMoveComplete; UAbilityTask_MoveCharacterToLocation(); UFUNCTION( BlueprintCallable, Category = "Ability|Tasks", meta = (HidePin = "OwningAbility", DefaultToSelf = "OwningAbility", BlueprintInternalUseOnly = "TRUE") ) static UAbilityTask_MoveCharacterToLocation* MoveCharacterToLocation( UDandelionGameplayAbility* OwningAbility, const FName TaskInstanceName ); FVector GetTargetLocation() const; virtual void ExternalCancel() override; protected: UPROPERTY(Transient) TObjectPtr<ADandelionPlayerController> PlayerController; FVector TargetLocation; virtual void Activate() override; virtual void OnDestroy(bool bInOwnerFinished) override; void InitializeBaseMoveTask(const UDandelionGameplayAbility* OwningAbility); private: UPROPERTY(Transient) TObjectPtr<UPathFollowingComponent> PlayerPathFollowingComponent; FAIRequestID PathRequestID; FDelegateHandle HandleOnRequestFinishedBinding; void HandleOnRequestFinished(const FAIRequestID& AIRequestID, const FPathFollowingResult& Result) const; };