Skip to content

FlowPilotComponent.h

File Info

FileName: FlowPilotComponent.h

UFlowPilotComponent

Parent Classes: [ UActorComponent ]

FlowComponent

  • Initializes, Maintains and Runs a Flow Data Asset.

Properties

// Automatically starts FlowPilot on BeginPlay
UPROPERTY(EditAnywhere, Category=FlowPilot)
uint8 bAutoStartOnBeginPlay : 1;
// FlowPilot Asset.
UPROPERTY(EditAnywhere, Category=FlowPilot)
TObjectPtr<UFlowPilot> FlowPilotAsset;
// Overrides FlowPilotAsset with ExecutionMode
UPROPERTY(EditAnywhere, Category=FlowPilot)
EFlowMode ExecutionMode = EFlowMode::RunOnce;
// Execution Mode retry delay
UPROPERTY(EditAnywhere, Category=FlowPilot, meta=(ClampMin="0.0", EditCondition="ExecutionMode != EFlowMode::RunOnce"))
float RetryDelay = 0.0f;
// FlowPilotLifetimeActors are spawned from FlowPilot, and will auto destroy when Ending
TArray<TWeakObjectPtr<AActor>> FlowPilotLifetimeActors;

Functions

SetFlowPilotAsset

Sets FlowPilot data asset

bool SetFlowPilotAsset(UFlowPilot* InFlowPilotAsset);

StartFlow

Start Current FlowData

void StartFlow();

StopFlow

Stops FlowPilot

void StopFlow(EFPStopType StopType = EFPStopType::CancelExecution);

PauseFlow

Pauses FlowPilot. Execution must have been started first

void PauseFlow();

UnPauseFlow

UnPauses FlowPilot, if Paused.

void UnPauseFlow();

IsPaused

Returns true if FlowPilot is Paused

bool IsPaused() const { return FlowState == EFlowState::Paused; }

IsDataSetup

Returns true is setup is valid

bool IsDataSetup() const { return FlowPilotAsset != nullptr; }

GetRunState

Returns FlowPilot state

EFlowState GetRunState() const { return FlowState; }

IsRunning

Returns true if FlowPilot is in Progress

bool IsRunning() const { return FlowState == EFlowState::InProgress; }

FindSingleActor

Finds single actor reference

AActor* FindSingleActor(const FFlowActorReference& ActorReference);

FindActors

Finds all actors with reference (usually external tags on multiple actors)

TArray<AActor*> FindActors(const FFlowActorReference& ActorReference);

FindSingleActorByTag

Finds and Caches Unique Actor via GameplayTag

AActor* FindSingleActorByTag(const FGameplayTag& Tag);

FindActorsByTag

Find All Actors by Tag

TArray<AActor*> FindActorsByTag(const FGameplayTag& Tag);

BindToFlowPilotLifetime

Binds Lifetime of Actor to FlowPilot. Will destroy when FlowPilot Completes

void BindToFlowPilotLifetime(AActor* InActor);

PrefetchActorReference

Will prefect Actor Reference if Referenced via External Tag.

void PrefetchActorReference(const FFlowActorReference& ActorReference);