#pragma once #include "CoreMinimal.h" #include "AITypes.h" #include "Actions/PawnAction_Move.h" #include "UObject/NoExportTypes.h" #include "EPathObstacleAction.h" #include "FortAITask_Move.h" #include "MoveAIDelegateDelegate.h" #include "Templates/SubclassOf.h" #include "FortAbilityTask_MoveAI.generated.h" class AActor; class AFortPawn; class UFortAbilityTask_MoveAI; class UGameplayAbility; class UNavigationQueryFilter; UCLASS(Blueprintable, MinimalAPI) class UFortAbilityTask_MoveAI : public UFortAITask_Move { GENERATED_BODY() public: UPROPERTY(BlueprintAssignable, BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true)) FMoveAIDelegate OnComplete; UPROPERTY(BlueprintAssignable, BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true)) FMoveAIDelegate OnInterrupted; UPROPERTY(BlueprintAssignable, BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true)) FMoveAIDelegate OnCancelled; UFortAbilityTask_MoveAI(); UFUNCTION(BlueprintCallable) static UFortAbilityTask_MoveAI* CreateMoveAITask(UGameplayAbility* OwningAbility, FName TaskInstanceName, AActor* MoveActor, FVector MoveLocation, TEnumAsByte MoveMode, TEnumAsByte PathObstacleAction, bool bStopAtEnd, TEnumAsByte AcceptPartialPath, bool bFinishOnPlayerCollision, bool bProjectGoalLocationOnNavMesh, float AcceptableRadius, TSubclassOf PushBumpedPawnClass, TSubclassOf FilterClass, bool bUseContinuousGoalTracking); };