diff --git a/src/content/docs/reference/FPTagActorComponent.mdx b/src/content/docs/reference/FPTagActorComponent.mdx new file mode 100644 index 0000000..70a585d --- /dev/null +++ b/src/content/docs/reference/FPTagActorComponent.mdx @@ -0,0 +1,37 @@ +--- +title: UFPTagActorComponent +description: Reference page for UFPTagActorComponent class +--- + +import Ref from '../../../components/Ref.astro' + + + +### Description + +`UFPTagActorComponent` is a helper component that adds `FGameplayTag`'s to an Actor. +You can add the tag in `BeingPlay`, or by default in `InitializeComponent`. + +## Class Info +__Parent Class:__ `UActorComponent` + +### Properties + +| Property | Description | +| :--- | :--- | +| `FGameplayTagContainer TagsToAdd;` | | + +### Functions + +#### `UFPTagActorComponent` + +```cpp +UFPTagActorComponent(); +``` + +#### `InitializeComponent` + +```cpp +virtual void InitializeComponent() override; +``` + diff --git a/src/content/docs/reference/FPTaskRunner.mdx b/src/content/docs/reference/FPTaskRunner.mdx new file mode 100644 index 0000000..8b18d31 --- /dev/null +++ b/src/content/docs/reference/FPTaskRunner.mdx @@ -0,0 +1,69 @@ +--- +title: UFPTaskRunner +description: Reference page for UFPTaskRunner class +--- + +## Class Info +__Parent Class:__ `UFlowPilotParent` + +### Properties + +| Property | Description | +| :--- | :--- | + +### Functions + +#### `UFPTaskRunner` + +```cpp +UFPTaskRunner(); +``` + +#### `Setup` + +```cpp +virtual void Setup(FFlowContext* InContext) override; +``` + +#### `Enter` + +```cpp +virtual bool Enter() override; +``` + +#### `Tick` + +```cpp +virtual EFPTaskResult Tick(float DeltaTime) override; +``` + +#### `Exit` + +```cpp +virtual void Exit(EFPTaskResult TaskResult) override; +``` + +#### `Reset` + +```cpp +virtual void Reset() override; +``` + +#### `InternalEnterChildTask` + +```cpp +bool InternalEnterChildTask(); +``` + +#### `InternalExitChildTask` + +```cpp +void InternalExitChildTask(EFPTaskResult TaskResult); +``` + +#### `GetNextTaskIndex` + +```cpp +uint32 GetNextTaskIndex() const; +``` + diff --git a/src/content/docs/reference/FPTask_BlueprintBase.mdx b/src/content/docs/reference/FPTask_BlueprintBase.mdx new file mode 100644 index 0000000..0015ea8 --- /dev/null +++ b/src/content/docs/reference/FPTask_BlueprintBase.mdx @@ -0,0 +1,73 @@ +--- +title: UFPTask_BlueprintBase +description: Reference page for UFPTask_BlueprintBase class +--- + +## Class Info +### Properties + +| Property | Description | +| :--- | :--- | + +### Functions + +#### `Setup` + +```cpp +virtual void Setup(FFlowContext* InContext) override; +``` + +#### `Enter` + +```cpp +virtual bool Enter() override; +``` + +#### `Tick` + +```cpp +virtual EFPTaskResult Tick(float DeltaTime) override; +``` + +#### `Exit` + +```cpp +virtual void Exit(EFPTaskResult TaskResult) override; +``` + +#### `ReceiveSetup` +Implement setup method. +Called once, during FlowPilot Execution, even after restarts. +```cpp +UFUNCTION(BlueprintImplementableEvent, Category = "FlowPilot") +void ReceiveSetup(); +``` + +#### `ReceiveEnter` +Implement enter Task +```cpp +UFUNCTION(BlueprintImplementableEvent, Category = "FlowPilot") +bool ReceiveEnter(); +``` + +#### `ReceiveTick` +Implement tick Task +```cpp +UFUNCTION(BlueprintImplementableEvent, Category = "FlowPilot") +EFPTaskResult ReceiveTick(float DeltaTime); +``` + +#### `ReceiveExit` +Implement exit Task +```cpp +UFUNCTION(BlueprintImplementableEvent, Category = "FlowPilot") +void ReceiveExit(EFPTaskResult TaskResult); +``` + +#### `ReceiveGetRuntimeDescription` +Implement Runtime Description for debug purposes +```cpp +UFUNCTION(BlueprintImplementableEvent, Category = "FlowPilot") +void ReceiveGetRuntimeDescription(TArray& OutLines) const; +``` + diff --git a/src/content/docs/reference/FPTask_Delay.mdx b/src/content/docs/reference/FPTask_Delay.mdx new file mode 100644 index 0000000..d82b39f --- /dev/null +++ b/src/content/docs/reference/FPTask_Delay.mdx @@ -0,0 +1,35 @@ +--- +title: UFPTask_Delay +description: Reference page for UFPTask_Delay class +--- + +## Class Info +__Parent Class:__ `UFlowPilotTask` + +### Properties + +| Property | Description | +| :--- | :--- | +| `float DelayTime = 0.0f;` | | +| `float RandomDeviation = 0.0f;` | Adds random deviation (TimeAmount - RndDev, TimeAmount + RndDev), Clamped (0.0f - T) | + +### Functions + +#### `UFPTask_Delay` + +```cpp +UFPTask_Delay(); +``` + +#### `Enter` + +```cpp +virtual bool Enter() override; +``` + +#### `Tick` + +```cpp +virtual EFPTaskResult Tick(float DeltaTime) override; +``` + diff --git a/src/content/docs/reference/FPTask_DestroyActor.mdx b/src/content/docs/reference/FPTask_DestroyActor.mdx new file mode 100644 index 0000000..8a8b49d --- /dev/null +++ b/src/content/docs/reference/FPTask_DestroyActor.mdx @@ -0,0 +1,35 @@ +--- +title: UFPTask_DestroyActor +description: Reference page for UFPTask_DestroyActor class +--- + +## Class Info +__Parent Class:__ `UFlowPilotTask` + +### Properties + +| Property | Description | +| :--- | :--- | +| `FFlowActorReference ActorReference;` | Actors to Destroy | +| `float Delay = 0.0f;` | Destroy Delay | + +### Functions + +#### `UFPTask_DestroyActor` + +```cpp +UFPTask_DestroyActor(); +``` + +#### `Setup` + +```cpp +virtual void Setup(FFlowContext* InContext) override; +``` + +#### `Enter` + +```cpp +virtual bool Enter() override; +``` + diff --git a/src/content/docs/reference/FPTask_FlowAsset.mdx b/src/content/docs/reference/FPTask_FlowAsset.mdx new file mode 100644 index 0000000..460fe02 --- /dev/null +++ b/src/content/docs/reference/FPTask_FlowAsset.mdx @@ -0,0 +1,53 @@ +--- +title: UFPTask_FlowAsset +description: Reference page for UFPTask_FlowAsset class +--- + +## Class Info +__Parent Class:__ `UFlowPilotTask` + +### Properties + +| Property | Description | +| :--- | :--- | +| `TObjectPtr FlowPilotAsset;` | | +| `UFlowPilot* FlowPilotInstance = nullptr;` | | + +### Functions + +#### `UFPTask_FlowAsset` + +```cpp +UFPTask_FlowAsset(); +``` + +#### `Setup` + +```cpp +virtual void Setup(FFlowContext* InContext) override; +``` + +#### `Enter` + +```cpp +virtual bool Enter() override; +``` + +#### `Tick` + +```cpp +virtual EFPTaskResult Tick(float DeltaTime) override; +``` + +#### `Exit` + +```cpp +virtual void Exit(EFPTaskResult TaskResult) override; +``` + +#### `Reset` + +```cpp +virtual void Reset() override; +``` + diff --git a/src/content/docs/reference/FPTask_FlowPilotControl.mdx b/src/content/docs/reference/FPTask_FlowPilotControl.mdx new file mode 100644 index 0000000..4f4f322 --- /dev/null +++ b/src/content/docs/reference/FPTask_FlowPilotControl.mdx @@ -0,0 +1,45 @@ +--- +title: UFPTask_FlowPilotControl +description: Reference page for UFPTask_FlowPilotControl class +--- + +## Class Info +__Parent Class:__ `UFlowPilotTask` + +### Properties + +| Property | Description | +| :--- | :--- | +| `FFlowActorReference ActorReference;` | Flow Actor reference to an Actors that have FlowPilotComponents | +| `EFlowPilotControlType ControlType = EFlowPilotControlType::StartFlow;` | Flow Control Type | +| `EFPStopType StopType = EFPStopType::CancelExecution;` | Flow Stop Type | +| `EFlowControlSuccessCondition SuccessCondition = EFlowControlSuccessCondition::Instant;` | When starting a new FlowPilot, what's this Task's success condition? +Essentially, we can Succeed instantly, or wait for InProgress or Stopped/Complete execution of the +Controlled FlowPilot Component we're controlling. | + +### Functions + +#### `UFPTask_FlowPilotControl` + +```cpp +UFPTask_FlowPilotControl(); +``` + +#### `Setup` + +```cpp +virtual void Setup(FFlowContext* InContext) override; +``` + +#### `Enter` + +```cpp +virtual bool Enter() override; +``` + +#### `Tick` + +```cpp +virtual EFPTaskResult Tick(float DeltaTime) override; +``` + diff --git a/src/content/docs/reference/FPTask_LoadLevel.mdx b/src/content/docs/reference/FPTask_LoadLevel.mdx new file mode 100644 index 0000000..cbca5a9 --- /dev/null +++ b/src/content/docs/reference/FPTask_LoadLevel.mdx @@ -0,0 +1,33 @@ +--- +title: UFPTask_LoadLevel +description: Reference page for UFPTask_LoadLevel class +--- + +## Class Info +__Parent Class:__ `UFlowPilotTask` + +### Properties + +| Property | Description | +| :--- | :--- | +| `TSoftObjectPtr Level;` | | +| `uint8 bStreamLevel : 1;` | | +| `uint8 bBlockOnLoad : 1;` | | +| `uint8 bMakeVisibleAfterLoad : 1;` | | +| `uint8 bAbsolute : 1;` | | +| `FString OpenOptions;` | | + +### Functions + +#### `UFPTask_LoadLevel` + +```cpp +UFPTask_LoadLevel(); +``` + +#### `Enter` + +```cpp +virtual bool Enter() override; +``` + diff --git a/src/content/docs/reference/FPTask_Loop.mdx b/src/content/docs/reference/FPTask_Loop.mdx new file mode 100644 index 0000000..bf5148c --- /dev/null +++ b/src/content/docs/reference/FPTask_Loop.mdx @@ -0,0 +1,60 @@ +--- +title: UFPTask_Loop +description: Reference page for UFPTask_Loop class +--- + +## Class Info +__Parent Class:__ `UFlowPilotTask` + +### Properties + +| Property | Description | +| :--- | :--- | +| `TObjectPtr Task;` | | +| `uint8 bIsInfinite : 1;` | | +| `int32 Loops = 3;` | | + +### Functions + +#### `UFPTask_Loop` + +```cpp +UFPTask_Loop(); +``` + +#### `Setup` + +```cpp +virtual void Setup(FFlowContext* InContext) override; +``` + +#### `Enter` + +```cpp +virtual bool Enter() override; +``` + +#### `Tick` + +```cpp +virtual EFPTaskResult Tick(float DeltaTime) override; +``` + +#### `Exit` + +```cpp +virtual void Exit(EFPTaskResult TaskResult) override; +``` + +#### `Reset` + +```cpp +virtual void Reset() override; +``` + +#### `SetTask` + +```cpp +void SetTask(TObjectPtr NewTask); +``` + diff --git a/src/content/docs/reference/UFPTask_Parallel.mdx b/src/content/docs/reference/FPTask_Parallel.mdx similarity index 50% rename from src/content/docs/reference/UFPTask_Parallel.mdx rename to src/content/docs/reference/FPTask_Parallel.mdx index b0d940e..f1760e9 100644 --- a/src/content/docs/reference/UFPTask_Parallel.mdx +++ b/src/content/docs/reference/FPTask_Parallel.mdx @@ -1,9 +1,9 @@ --- title: UFPTask_Parallel -description: UFPTask_Parallel reference page +description: Reference page for UFPTask_Parallel class --- -import Ref from '../../../components/Ref.astro' -import LinkRef from '../../../components/LinkRef.astro' +import Ref from '../../../components/Ref.astro' +import LinkRef from '../../../components/LinkRef.astro' import { Image } from 'astro:assets'; import schema from '../../../assets/ufptask_parallel.png'; @@ -14,11 +14,59 @@ import schema from '../../../assets/ufptask_parallel.png'; UFPTask_Parallel Schema -`UFPTask_Parallel` is a Task that can run multiple tasks at the same time (in parallel). +`UFPTask_Parallel` is a Task that can run multiple tasks at the same time (in parallel). There are various _Completion types_ for this task: - Any Succeed: `UFPTask_Parallel` will succeed at the first Children Task that succeeds. It won't wait for all tasks to be complete. Otherwise fail. - All Succeed: `UFPTask_Parallel` will wait for all Child Task's results, and if they all succeeded, then `UFPTask_Parallel` succeeds. Otherwise fail. - Any Fail: `UFPTask_Parallel` will succeed at the first Children Task failure. It won't wait for all tasks to be complete. Otherwise fail. -- All Fail: `UFPTask_Parallel` will wait for all Child Task's results and if they all failed, then `UFPTask_Parallel` succeeds. Otherwise fail. \ No newline at end of file +- All Fail: `UFPTask_Parallel` will wait for all Child Task's results and if they all failed, then `UFPTask_Parallel` succeeds. Otherwise fail. + +## Class Info +__Parent Class:__ `UFlowPilotParent` + +### Properties + +| Property | Description | +| :--- | :--- | +| `EFlowParallelCompletionType DesiredCompletionType = EFlowParallelCompletionType::AllSucceed;` | This defines what makes this Task succeed to continue flow. | + +### Functions + +#### `UFPTask_Parallel` + +```cpp +UFPTask_Parallel(); +``` + +#### `Setup` + +```cpp +virtual void Setup(FFlowContext* InContext) override; +``` + +#### `Enter` + +```cpp +virtual bool Enter() override; +``` + +#### `Tick` + +```cpp +virtual EFPTaskResult Tick(float DeltaTime) override; +``` + +#### `Exit` + +```cpp +virtual void Exit(EFPTaskResult TaskResult) override; +``` + +#### `Reset` + +```cpp +virtual void Reset() override; +``` + diff --git a/src/content/docs/reference/FPTask_PlayAnimation.mdx b/src/content/docs/reference/FPTask_PlayAnimation.mdx new file mode 100644 index 0000000..d142897 --- /dev/null +++ b/src/content/docs/reference/FPTask_PlayAnimation.mdx @@ -0,0 +1,49 @@ +--- +title: UFPTask_PlayAnimation +description: Reference page for UFPTask_PlayAnimation class +--- + +## Class Info +__Parent Class:__ `UFlowPilotTask` + +### Properties + +| Property | Description | +| :--- | :--- | +| `FFlowActorReference ActorsToPlayAnimationOn;` | | +| `TSoftObjectPtr AnimationAsset;` | | +| `uint8 bLooping : 1;` | | +| `uint8 bWaitForAnimationEnd : 1;` | | + +### Functions + +#### `UFPTask_PlayAnimation` + +```cpp +UFPTask_PlayAnimation(); +``` + +#### `Setup` + +```cpp +virtual void Setup(FFlowContext* InContext) override; +``` + +#### `Enter` + +```cpp +virtual bool Enter() override; +``` + +#### `Tick` + +```cpp +virtual EFPTaskResult Tick(float DeltaTime) override; +``` + +#### `Exit` + +```cpp +virtual void Exit(EFPTaskResult TaskResult) override; +``` + diff --git a/src/content/docs/reference/FPTask_PlaySound.mdx b/src/content/docs/reference/FPTask_PlaySound.mdx new file mode 100644 index 0000000..5f20cb5 --- /dev/null +++ b/src/content/docs/reference/FPTask_PlaySound.mdx @@ -0,0 +1,30 @@ +--- +title: UFPTask_PlaySound +description: Reference page for UFPTask_PlaySound class +--- + +## Class Info +__Parent Class:__ `UFlowPilotTask` + +### Properties + +| Property | Description | +| :--- | :--- | +| `FFlowActorReference ActorReference;` | Where to play sound from. | +| `TObjectPtr SoundToPlay;` | | +| `TObjectPtr SoundWaveToPlay;` | | + +### Functions + +#### `UFPTask_PlaySound` + +```cpp +UFPTask_PlaySound(); +``` + +#### `Enter` + +```cpp +virtual bool Enter() override; +``` + diff --git a/src/content/docs/reference/FPTask_PlaySound2D.mdx b/src/content/docs/reference/FPTask_PlaySound2D.mdx new file mode 100644 index 0000000..2c720ab --- /dev/null +++ b/src/content/docs/reference/FPTask_PlaySound2D.mdx @@ -0,0 +1,36 @@ +--- +title: UFPTask_PlaySound2D +description: Reference page for UFPTask_PlaySound2D class +--- + +## Class Info +__Parent Class:__ `UFlowPilotTask` + +### Properties + +| Property | Description | +| :--- | :--- | +| `TObjectPtr SoundToPlay;` | | +| `TObjectPtr SoundWaveToPlay;` | | +| `uint8 bIsUISound : 1;` | | +| `float VolumeMultiplier = 1.0f;` | | +| `float PitchMultiplier = 1.0f;` | | +| `float StartTime = 0.0f;` | | +| `USoundConcurrency* ConcurrencySettings = nullptr;` | | +| `bool bPersistAcrossLevels = false;` | | +| `bool bAutoDestroy = true;` | | + +### Functions + +#### `UFPTask_PlaySound2D` + +```cpp +UFPTask_PlaySound2D(); +``` + +#### `Enter` + +```cpp +virtual bool Enter() override; +``` + diff --git a/src/content/docs/reference/FPTask_PossessPawn.mdx b/src/content/docs/reference/FPTask_PossessPawn.mdx new file mode 100644 index 0000000..5943ca6 --- /dev/null +++ b/src/content/docs/reference/FPTask_PossessPawn.mdx @@ -0,0 +1,37 @@ +--- +title: UFPTask_PossessPawn +description: Reference page for UFPTask_PossessPawn class +--- + +## Class Info +__Parent Class:__ `UFlowPilotTask` + +### Properties + +| Property | Description | +| :--- | :--- | +| `FFlowActorReference PawnsToPossess;` | Pawns to Possess | +| `bool bPossessByPlayer = false;` | Player Possesses only 1 Pawn | +| `int32 PlayerIndex = 0;` | | +| `TSubclassOf ControllerClass;` | AI Controller Class to Posses Pawns with. | + +### Functions + +#### `UFPTask_PossessPawn` + +```cpp +UFPTask_PossessPawn(); +``` + +#### `Setup` + +```cpp +virtual void Setup(FFlowContext* InContext) override; +``` + +#### `Enter` + +```cpp +virtual bool Enter() override; +``` + diff --git a/src/content/docs/reference/UFPTask_Selector.mdx b/src/content/docs/reference/FPTask_Selector.mdx similarity index 59% rename from src/content/docs/reference/UFPTask_Selector.mdx rename to src/content/docs/reference/FPTask_Selector.mdx index a349c48..d166f82 100644 --- a/src/content/docs/reference/UFPTask_Selector.mdx +++ b/src/content/docs/reference/FPTask_Selector.mdx @@ -1,9 +1,9 @@ --- title: UFPTask_Selector -description: UFPTask_Selector reference page +description: Reference page for UFPTask_Selector class --- -import Ref from '../../../components/Ref.astro' -import LinkRef from '../../../components/LinkRef.astro' +import Ref from '../../../components/Ref.astro' +import LinkRef from '../../../components/LinkRef.astro' import { Image } from 'astro:assets'; import schema from '../../../assets/ufptask_selector.png'; @@ -17,8 +17,31 @@ import schema from '../../../assets/ufptask_selector.png'; `UFPTask_Selector` is a Task can contain many other tasks. Its purpose is to run each task sequentially. The schema above explains how it should work. -`UFPTask_Selector` will succeed at the first task that returns success. +`UFPTask_Selector` will succeed at the first task that returns success. If one task fails, `UFPTask_Selector` will try running the next task after the next, until one of them succeeds. -If no task succeeded, then `UFPTask_Selector` will return failure. \ No newline at end of file +If no task succeeded, then `UFPTask_Selector` will return failure. + +## Class Info +__Parent Class:__ `UFPTaskRunner` + +### Properties + +| Property | Description | +| :--- | :--- | + +### Functions + +#### `UFPTask_Selector` + +```cpp +UFPTask_Selector(); +``` + +#### `Tick` + +```cpp +virtual EFPTaskResult Tick(float DeltaTime) override; +``` + diff --git a/src/content/docs/reference/UFPTask_Sequence.mdx b/src/content/docs/reference/FPTask_Sequence.mdx similarity index 56% rename from src/content/docs/reference/UFPTask_Sequence.mdx rename to src/content/docs/reference/FPTask_Sequence.mdx index b924830..5b264e5 100644 --- a/src/content/docs/reference/UFPTask_Sequence.mdx +++ b/src/content/docs/reference/FPTask_Sequence.mdx @@ -1,9 +1,9 @@ --- title: UFPTask_Sequence -description: UFPTask_Sequence reference page +description: Reference page for UFPTask_Sequence class --- -import Ref from '../../../components/Ref.astro' -import LinkRef from '../../../components/LinkRef.astro' +import Ref from '../../../components/Ref.astro' +import LinkRef from '../../../components/LinkRef.astro' import { Image } from 'astro:assets'; import schema from '../../../assets/ufptask_sequence.png'; @@ -18,7 +18,30 @@ import schema from '../../../assets/ufptask_sequence.png'; The schema above explains how it should work. `UFPTask_Sequence` will succeed if all of its tasks ran and all succeeded. - + If one of the Tasks fail, `UFPTask_Sequence` will return failure. + +## Class Info +__Parent Class:__ `UFPTaskRunner` + +### Properties + +| Property | Description | +| :--- | :--- | + +### Functions + +#### `UFPTask_Sequence` + +```cpp +UFPTask_Sequence(); +``` + +#### `Tick` + +```cpp +virtual EFPTaskResult Tick(float DeltaTime) override; +``` + diff --git a/src/content/docs/reference/FPTask_SpawnClass.mdx b/src/content/docs/reference/FPTask_SpawnClass.mdx new file mode 100644 index 0000000..9dac04e --- /dev/null +++ b/src/content/docs/reference/FPTask_SpawnClass.mdx @@ -0,0 +1,39 @@ +--- +title: UFPTask_SpawnClass +description: Reference page for UFPTask_SpawnClass class +--- + +## Class Info +__Parent Class:__ `UFlowPilotTask` + +### Properties + +| Property | Description | +| :--- | :--- | +| `EFlowActorSpawnLifetime ActorSpawnLifetime = EFlowActorSpawnLifetime::FlowPilot;` | SpawnLifetime dictates when we Destroy this Actor, (or leave it alive forever) | +| `TObjectPtr SpawnClass;` | UClass to Spawn | +| `FFlowActorReference SpawnLocationReference;` | Spawn Location Reference | +| `FVector SpawnOffset = FVector::ZeroVector;` | Spawn Offset | +| `FGameplayTagContainer TagsToAddActor;` | GameplayTags to add Spawned Actor | +| `ESpawnActorCollisionHandlingMethod SpawnCollisionMethods = ESpawnActorCollisionHandlingMethod::AdjustIfPossibleButAlwaysSpawn;` | Spawn Collision Method | + +### Functions + +#### `UFPTask_SpawnClass` + +```cpp +UFPTask_SpawnClass(); +``` + +#### `Setup` + +```cpp +virtual void Setup(FFlowContext* InContext) override; +``` + +#### `Enter` + +```cpp +virtual bool Enter() override; +``` + diff --git a/src/content/docs/reference/FPTask_TriggerDistance.mdx b/src/content/docs/reference/FPTask_TriggerDistance.mdx new file mode 100644 index 0000000..8a5ff23 --- /dev/null +++ b/src/content/docs/reference/FPTask_TriggerDistance.mdx @@ -0,0 +1,44 @@ +--- +title: UFPTask_TriggerDistance +description: Reference page for UFPTask_TriggerDistance class +--- + +## Class Info +__Parent Class:__ `UFlowPilotTask` + +### Properties + +| Property | Description | +| :--- | :--- | +| `FFlowActorReference FirstActorReference;` | First Actor Tag | +| `ETriggerDistanceOp Operation = ETriggerDistanceOp::LessThan;` | Distance Operation | +| `EDistanceMethod Method = EDistanceMethod::Distance3D;` | | +| `float ThresholdDistance;` | Threshold to check distance against | +| `FFlowActorReference SecondActorReference;` | Second Actor Tag | + +### Functions + +#### `UFPTask_TriggerDistance` + +```cpp +UFPTask_TriggerDistance(); +``` + +#### `Setup` + +```cpp +virtual void Setup(FFlowContext* InContext) override; +``` + +#### `Enter` + +```cpp +virtual bool Enter() override; +``` + +#### `Tick` + +```cpp +virtual EFPTaskResult Tick(float DeltaTime) override; +``` + diff --git a/src/content/docs/reference/FPTask_TriggerVolume.mdx b/src/content/docs/reference/FPTask_TriggerVolume.mdx new file mode 100644 index 0000000..04b6b1d --- /dev/null +++ b/src/content/docs/reference/FPTask_TriggerVolume.mdx @@ -0,0 +1,50 @@ +--- +title: UFPTask_TriggerVolume +description: Reference page for UFPTask_TriggerVolume class +--- + +## Class Info +__Parent Class:__ `UFlowPilotTask` + +### Properties + +| Property | Description | +| :--- | :--- | +| `ETriggerVolumeEvent TriggerEvent;` | Trigger to Listen to | +| `FFlowActorReference VolumeReference;` | Volume Reference Actor | +| `FFlowActorReference ActorReferences;` | Actor References to Interact with Volume +Will wait for All Actors this reference finds. +Use unique actor/tag if you want only one resulting actor | + +### Functions + +#### `UFPTask_TriggerVolume` + +```cpp +UFPTask_TriggerVolume(); +``` + +#### `Setup` + +```cpp +virtual void Setup(FFlowContext* InContext) override; +``` + +#### `Enter` + +```cpp +virtual bool Enter() override; +``` + +#### `Tick` + +```cpp +virtual EFPTaskResult Tick(float DeltaTime) override; +``` + +#### `Exit` + +```cpp +virtual void Exit(EFPTaskResult TaskResult) override; +``` + diff --git a/src/content/docs/reference/FPTask_UnloadStreamedLevel.mdx b/src/content/docs/reference/FPTask_UnloadStreamedLevel.mdx new file mode 100644 index 0000000..17a528c --- /dev/null +++ b/src/content/docs/reference/FPTask_UnloadStreamedLevel.mdx @@ -0,0 +1,29 @@ +--- +title: UFPTask_UnloadStreamedLevel +description: Reference page for UFPTask_UnloadStreamedLevel class +--- + +## Class Info +__Parent Class:__ `UFlowPilotTask` + +### Properties + +| Property | Description | +| :--- | :--- | +| `TSoftObjectPtr Level;` | Streamed Level to unload | +| `bool bBlockOnUnload = false;` | Blocks Unload thread | + +### Functions + +#### `UFPTask_UnloadStreamedLevel` + +```cpp +UFPTask_UnloadStreamedLevel(); +``` + +#### `Enter` + +```cpp +virtual bool Enter() override; +``` + diff --git a/src/content/docs/reference/FlowPilot.mdx b/src/content/docs/reference/FlowPilot.mdx new file mode 100644 index 0000000..3fa8418 --- /dev/null +++ b/src/content/docs/reference/FlowPilot.mdx @@ -0,0 +1,70 @@ +--- +title: UFlowPilot +description: Reference page for UFlowPilot class +--- + +import Ref from '../../../components/Ref.astro' + + + +### Description + +`UFlowPilot` is the base data asset for FlowPilot. This is what you'll create, edit and iterate on to create your gameplay sequences. + + +## Class Info +__Parent Class:__ `UDataAsset` + +### Properties + +| Property | Description | +| :--- | :--- | +| `FName FlowName = "Flow Name";` | Flow Id | +| `TArray> MainFlow_DEPRECATED;` | Main Flow sequence. | +| `UFPTask_Sequence* Root;` | | +| `uint32 LastCompiledEditorDataHash = 0;` | | + +### Functions + +#### `UFlowPilot` + +```cpp +UFlowPilot(); +``` + +#### `PostLoad` +UObject +```cpp +virtual void PostLoad() override; +``` + +#### `Serialize` + +```cpp +virtual void Serialize(FArchive& Ar) override; +``` + +#### `PostRename` +~UObject +```cpp +virtual void PostRename(UObject* OldOuter, const FName OldName) override; +``` + +#### `PostDuplicate` + +```cpp +virtual void PostDuplicate(bool bDuplicateForPIE) override; +``` + +#### `GetTasksMutable` + +```cpp +TArray>& GetTasksMutable() const; +``` + +#### `GetTasks` + +```cpp +const TArray>& GetTasks() const; +``` + diff --git a/src/content/docs/reference/UFlowPilotComponent.mdx b/src/content/docs/reference/FlowPilotComponent.mdx similarity index 55% rename from src/content/docs/reference/UFlowPilotComponent.mdx rename to src/content/docs/reference/FlowPilotComponent.mdx index 2ae48c3..eb79883 100644 --- a/src/content/docs/reference/UFlowPilotComponent.mdx +++ b/src/content/docs/reference/FlowPilotComponent.mdx @@ -1,9 +1,9 @@ --- title: UFlowPilotComponent -description: UFlowPilotComponent reference page +description: Reference page for UFlowPilotComponent class --- -import Ref from '../../../components/Ref.astro' -import LinkRef from '../../../components/LinkRef.astro' +import Ref from '../../../components/Ref.astro' +import LinkRef from '../../../components/LinkRef.astro' import { Image } from 'astro:assets'; import schema from '../../../assets/uflowpilotcomponent.png'; @@ -22,7 +22,7 @@ Most of its methods are exposed to blueprint to allow quick iteration. `UFlowPilotComponent` also has custom _ExecutionModes_ which can be: - RunOnce: Runs flow once, wether it succeed or fails -- RunUntilSucceed: Runs flow until it succeeds, then stops +- RunUntilSucceed: Runs flow until it succeeds, then stops - RunUntilFail: Runs flow until it fails, then stops - RunWhileSucceed: Runs flow while it succeed. Will stop on failure. - RunWhileFail: Runs flow while it fails. Will stop on success @@ -98,7 +98,7 @@ bool IsRunning() const { return FlowState == EFlowState::InProgress; } UFUNCTION(BlueprintCallable, Category="FlowPilot") AActor* FindSingleActor(const FFlowActorReference& ActorReference); -// Finds all actors with reference (usually external tags on multiple actors) +// Finds all actors with reference (usually external tags on multiple actors) UFUNCTION(BlueprintCallable, Category="FlowPilot") TArray FindActors(const FFlowActorReference& ActorReference); @@ -126,3 +126,150 @@ FString GetFlowPilotName() const; + +## Class Info +__Parent Class:__ `UActorComponent` + +### Properties + +| Property | Description | +| :--- | :--- | +| `uint8 bAutoStartOnBeginPlay : 1;` | Automatically starts FlowPilot on BeginPlay | +| `TObjectPtr FlowPilotAsset;` | FlowPilot Asset. | +| `EFlowMode ExecutionMode = EFlowMode::RunOnce;` | Overrides FlowPilotAsset with ExecutionMode | +| `float RetryDelay = 0.0f;` | Execution Mode retry delay | +| `UFlowPilot* FlowPilotInstance = nullptr;` | FlowPilotLifetimeActors are spawned from FlowPilot, and will auto destroy when Ending | + +### Functions + +#### `UFlowPilotComponent` + +```cpp +UFlowPilotComponent(const FObjectInitializer& ObjectInitializer); +``` + +#### `InitializeComponent` + +```cpp +virtual void InitializeComponent() override; +``` + +#### `UninitializeComponent` + +```cpp +virtual void UninitializeComponent() override; +``` + +#### `BeginPlay` + +```cpp +virtual void BeginPlay() override; +``` + +#### `EndPlay` + +```cpp +virtual void EndPlay(const EEndPlayReason::Type EndPlayReason) override; +``` + +#### `TickComponent` + +```cpp +virtual void TickComponent(float DeltaTime, ELevelTick TickType, FActorComponentTickFunction* ThisTickFunction) override; +``` + +#### `SetFlowPilotAsset` +Sets FlowPilot data asset +```cpp +UFUNCTION(BlueprintCallable, Category="FlowPilot") +bool SetFlowPilotAsset(UFlowPilot* InFlowPilotAsset); +``` + +#### `StartFlow` +Start Current FlowData +```cpp +UFUNCTION(BlueprintCallable, Category="FlowPilot") +void StartFlow(); +``` + +#### `StopFlow` +Stops FlowPilot +```cpp +UFUNCTION(BlueprintCallable, Category="FlowPilot") +void StopFlow(EFPStopType StopType = EFPStopType::CancelExecution); +``` + +#### `PauseFlow` +Pauses FlowPilot. Execution must have been started first +```cpp +UFUNCTION(BlueprintCallable, Category="FlowPilot") +void PauseFlow(); +``` + +#### `UnPauseFlow` +UnPauses FlowPilot, if Paused. +```cpp +UFUNCTION(BlueprintCallable, Category="FlowPilot") +void UnPauseFlow(); +``` + +#### `FindSingleActor` +Returns true if FlowPilot is Paused +Returns true is setup is valid +Returns FlowPilot state +Returns true if FlowPilot is in Progress +Finds single actor reference +```cpp +UFUNCTION(BlueprintCallable, Category="FlowPilot") +AActor* FindSingleActor(const FFlowActorReference& ActorReference); +``` + +#### `FindActors` +Finds all actors with reference (usually external tags on multiple actors) +```cpp +UFUNCTION(BlueprintCallable, Category="FlowPilot") +TArray FindActors(const FFlowActorReference& ActorReference); +``` + +#### `FindSingleActorByTag` +Finds and Caches Unique Actor via GameplayTag +```cpp +UFUNCTION(BlueprintCallable, Category="FlowPilot") +AActor* FindSingleActorByTag(const FGameplayTag& Tag); +``` + +#### `FindActorsByTag` +Find All Actors by Tag +```cpp +UFUNCTION(BlueprintCallable, Category="FlowPilot") +TArray FindActorsByTag(const FGameplayTag& Tag); +``` + +#### `BindToFlowPilotLifetime` +Binds Lifetime of Actor to FlowPilot. Will destroy when FlowPilot Completes +```cpp +UFUNCTION(BlueprintCallable, Category="FlowPilot") +void BindToFlowPilotLifetime(AActor* InActor); +``` + +#### `PrefetchActorReference` +Will prefect Actor Reference if Referenced via External Tag. +```cpp +UFUNCTION(BlueprintCallable, Category="FlowPilot") +void PrefetchActorReference(const FFlowActorReference& ActorReference); +``` + +#### `CacheTaggedActor` + +```cpp +UFUNCTION(BlueprintCallable, Category="FlowPilot") +void CacheTaggedActor(AActor* InActor, const FGameplayTag& InGameplayTag); +``` + +#### `GetFlowPilotName` + +```cpp +UFUNCTION(BlueprintCallable, Category="FlowPilot") +FString GetFlowPilotName() const; +``` + diff --git a/src/content/docs/reference/FlowPilotParent.mdx b/src/content/docs/reference/FlowPilotParent.mdx new file mode 100644 index 0000000..0bc1198 --- /dev/null +++ b/src/content/docs/reference/FlowPilotParent.mdx @@ -0,0 +1,59 @@ +--- +title: UFlowPilotParent +description: Reference page for UFlowPilotParent class +--- + +import Ref from '../../../components/Ref.astro' + + + +### Description + + +## Class Info +__Parent Class:__ `UFlowPilotTask` + +### Properties + +| Property | Description | +| :--- | :--- | +| `TArray> Tasks;` | | + +### Functions + +#### `SetTasks` + +```cpp +void SetTasks(const TArray>& InTasks); +``` + +#### `AddTask` + +```cpp +bool AddTask(const TObjectPtr& InTask); +``` + +#### `RemoveTask` + +```cpp +bool RemoveTask(const TObjectPtr& InTask); +``` + +#### `HasTask` + +```cpp +bool HasTask(const TObjectPtr& InTask) const; +``` + +#### `GetTasks` + +```cpp +const TArray>& GetTasks() const; +``` + +#### `GetTasksMutable` + +```cpp +TArray>& GetTasksMutable(); +``` + diff --git a/src/content/docs/reference/FlowPilotSettings.mdx b/src/content/docs/reference/FlowPilotSettings.mdx new file mode 100644 index 0000000..8195f96 --- /dev/null +++ b/src/content/docs/reference/FlowPilotSettings.mdx @@ -0,0 +1,67 @@ +--- +title: UFlowPilotSettings +description: Reference page for UFlowPilotSettings class +--- + +## Class Info +__Parent Class:__ `UDeveloperSettings` + +### Properties + +| Property | Description | +| :--- | :--- | +| `uint8 bPrefetchActorsOnSetup : 1;` | Will prefetch Actors on Setup | +| `uint8 bShowDescriptionOnActiveTasks : 1;` | Only show Description On Active Tasks | +| `uint8 bShowFutureChildTasksWhenParentActive : 1;` | Will display future Tasks only when the Parent Task is Active. | +| `int32 ShowQueuedTasksCount = 3;` | Show X Queued Tasks | +| `int ShowCompletedTasksCount = 3;` | Show X Completed Tasks | +| `float DebugFontScale = 1.0f;` | Scale Debug UI | +| `uint8 bDrawRoot : 1;` | If True, Draws Root Node | +| `float Indentation = 5.0f;` | Hierarchy Indentation | +| `float TileVerticalMargin = 2.0f;` | Tile with background Margin | +| `FLinearColor TextColor = FLinearColor::White;` | Task Title Color | + +### Functions + +#### `FVector2D` +Text padding +```cpp +FVector2D TextPadding = FVector2D(10.0f, 5.0f); +``` + +#### `FLinearColor` +Running Task Color +```cpp +FLinearColor TaskRunningColor = FLinearColor(0.9f, 0.2f, 0.05f, 0.45f); +``` + +#### `FLinearColor` +Task Completed Color +```cpp +FLinearColor TaskCompletedColor = FLinearColor(0.0f, 0.25f, 0.0f, 0.45f); +``` + +#### `FLinearColor` +Task in Queue Color +```cpp +FLinearColor TaskQueuedColor = FLinearColor(0.02f, 0.03f, 0.09f, 0.45f); +``` + +#### `FLinearColor` +Text Background Color +```cpp +FLinearColor DefaultBackgroundColor = FLinearColor(0, 0, 0, 0.45f); +``` + +#### `FLinearColor` +Valid Color +```cpp +FLinearColor ValidColor = FLinearColor(0.0f, 0.25f, 0.02f, 0.45f); +``` + +#### `FLinearColor` +Invalid Color +```cpp +FLinearColor InvalidColor = FLinearColor(0.25f, 0.02f, 0.02f, 0.45f); +``` + diff --git a/src/content/docs/reference/FlowPilotSubsystem.mdx b/src/content/docs/reference/FlowPilotSubsystem.mdx new file mode 100644 index 0000000..7d60528 --- /dev/null +++ b/src/content/docs/reference/FlowPilotSubsystem.mdx @@ -0,0 +1,63 @@ +--- +title: UFlowPilotSubsystem +description: Reference page for UFlowPilotSubsystem class +--- + +## Class Info +__Parent Class:__ `UWorldSubsystem` + +### Properties + +| Property | Description | +| :--- | :--- | + +### Functions + +#### `UFlowPilotSubsystem` + +```cpp +UFlowPilotSubsystem(); +``` + +#### `Initialize` +Begin USubsystem +```cpp +virtual void Initialize(FSubsystemCollectionBase& Collection) override; +``` + +#### `Deinitialize` + +```cpp +virtual void Deinitialize() override; +``` + +#### `Register` +End USubsystem +```cpp +void Register(UFlowPilotComponent* FlowPilotComponent); +``` + +#### `Unregister` + +```cpp +void Unregister(UFlowPilotComponent* FlowPilotComponent); +``` + +#### `CacheTaggedActor` + +```cpp +void CacheTaggedActor(const FGameplayTag& LookupTag, AActor* InActor); +``` + +#### `FindSingleCachedActor` + +```cpp +bool FindSingleCachedActor(const FGameplayTag& LookupTag, AActor*& OutActor); +``` + +#### `FindCachedActors` + +```cpp +bool FindCachedActors(const FGameplayTag& LookupTag, TArray& OutActorList); +``` + diff --git a/src/content/docs/reference/FlowPilotTask.mdx b/src/content/docs/reference/FlowPilotTask.mdx new file mode 100644 index 0000000..35a8bee --- /dev/null +++ b/src/content/docs/reference/FlowPilotTask.mdx @@ -0,0 +1,197 @@ +--- +title: UFlowPilotTask +description: Reference page for UFlowPilotTask class +--- + +import Ref from '../../../components/Ref.astro' + +import { Image } from 'astro:assets'; +import schema from '../../../assets/uflowpilottask_executionflow.png'; + + + +### Description + +UFlowPilotTask Schema + +`UFlowPilotTask` is the base class for all Tasks that can run in FlowPilot. + +The schema above shows succintely how it works. + +Each Tasks starts its execution by calling their `Enter()` methods. They can either succeed or fail at this stage. +Upon failing, the task ends. If succeeded, `Tick` is then called and we check the Task Result ( InProgress, Succeeded, Failed, Error ). +If the Task returns `Succeeded` the `Exit()` method is called. + +Tasks can also be cancelled, and end directly. + +Each class that can be implemented need to override a couple of virtual methods exposed by this task, either in Cpp or implementing the Blueprint versions when creating a `UFlowPilotTask` via blueprint. + +### Interface + +```cpp +// UFlowPilotTask +// Setups Tasks. Called once per FlowPilotExecution, even after restarts. +virtual void Setup(FFlowContext* InContext); +// Called when starting this Task. Returns true on success +virtual bool Enter(); +// Called on Tick. Will success automatically if not implemented by Child classes +virtual EFPTaskResult Tick(float DeltaTime); +// Called when Tick returns Succeeds +virtual void Exit(); +// Resets all Tasks into their Setup States +virtual void Reset(); + +#if WITH_EDITOR +// Returns true if valid. Child Tasks should implement their Validations +virtual bool IsTaskDataValid(FDataValidationContext& InContext) { return true; } +#endif + +#if !UE_BUILD_SHIPPING && !UE_BUILD_TEST +// Gathers information to display to debug view about Task. +virtual void GetRuntimeDescription(TArray& OutLines) const {}; +#endif +//~UFlowPilotTask +``` + +## Class Info +__Parent Class:__ `UObject` + +### Properties + +| Property | Description | +| :--- | :--- | +| `FName TaskName = {};` | | +| `FName Description = {};` | | +| `uint8 bEnabled: 1;` | If False, Will skip this Task's execution | +| `UFlowPilotTask* Parent = nullptr;` | | + +### Functions + +#### `UFlowPilotTask` + +```cpp +UFlowPilotTask(); +``` + +#### `Setup` +Setups Tasks. Called once per FlowPilotExecution, even after restarts. +```cpp +virtual void Setup(FFlowContext* InContext); +``` + +#### `Enter` +Called when starting this Task. Returns true on success +```cpp +virtual bool Enter(); +``` + +#### `Tick` +Called on Tick. Will success automatically if not implemented by Child classes +```cpp +virtual EFPTaskResult Tick(float DeltaTime); +``` + +#### `Exit` +Called when Task Finished +```cpp +virtual void Exit(EFPTaskResult TaskResult); +``` + +#### `Reset` +Resets all Tasks into their Setup States +```cpp +virtual void Reset(); +``` + +#### `HasParent` +Disabled Tasks are skipped during execution +Enables or Disables Task. Disabled Tasks will be skipped. +Returns Task Name +Sets Task Name +Get Task Description +Returns True if Task has Parent Task. +Returns False if Task is Root Sequence Task +```cpp +bool HasParent() const; +``` + +#### `GetParent` +Returns Parent Task or nullptr +```cpp +UFlowPilotTask* GetParent() const; +``` + +#### `IsParent` +Sets Parent Task +Returns True if This task is a FlowPilotParent Task containing children Tasks. +```cpp +bool IsParent() const; +``` + +#### `GetAsParent` +Returns this Cast to FlowPilotParent task. +```cpp +UFlowPilotParent* GetAsParent(); +``` + +#### `HasStarted` +Returns true when Task Started +```cpp +UFUNCTION(BlueprintCallable, Category="FlowPilotTask") +bool HasStarted() const; +``` + +#### `IsActive` +Returns true when Task in Progress and Not Complete +```cpp +UFUNCTION(BlueprintCallable, Category="FlowPilotTask") +bool IsActive() const; +``` + +#### `IsComplete` +Returns true when Task is Complete +```cpp +UFUNCTION(BlueprintCallable, Category="FlowPilotTask") +bool IsComplete() const; +``` + +#### `ForEachActor` +Executes 'InFunc' to all Actors found from 'ActorReference' +```cpp +bool ForEachActor(const FFlowActorReference& ActorReference, TFunctionRef InFunc) const; +``` + +#### `ForEachConstActor` +Executes 'InFunc' to all const Actors found from 'ActorReference' +Const means the function should not modify 'Actors' +```cpp +bool ForEachConstActor(const FFlowActorReference& ActorReference, TFunctionRef InFunc) const; +``` + +#### `GetFlowPilotComponent` +Returns FlowPilotComponent +```cpp +UFUNCTION(BlueprintCallable, Category = "FlowPilotTask") +UFlowPilotComponent* GetFlowPilotComponent() const; +``` + +#### `GetFlowPilotOwnerActor` +Returns FlowPilotComponent Owner Actor +```cpp +UFUNCTION(BlueprintCallable, Category = "FlowPilotTask") +AActor* GetFlowPilotOwnerActor() const; +``` + +#### `GetWorldContext` +Returns FlowPilot Actor World +```cpp +UFUNCTION(BlueprintCallable, Category = "FlowPilotTask") +UWorld* GetWorldContext() const; +``` + +#### `GetWorld` + +```cpp +virtual UWorld* GetWorld() const override; +``` + diff --git a/src/content/docs/reference/UFPTagActorComponent.mdx b/src/content/docs/reference/UFPTagActorComponent.mdx deleted file mode 100644 index 539e2dd..0000000 --- a/src/content/docs/reference/UFPTagActorComponent.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: UFPTagActorComponent -description: UFPTagActorComponent reference page ---- - -import Ref from '../../../components/Ref.astro' - - - -### Description - -`UFPTagActorComponent` is a helper component that adds `FGameplayTag`'s to an Actor. -You can add the tag in `BeingPlay`, or by default in `InitializeComponent`. diff --git a/src/content/docs/reference/UFlowPilot.mdx b/src/content/docs/reference/UFlowPilot.mdx deleted file mode 100644 index 69c06c5..0000000 --- a/src/content/docs/reference/UFlowPilot.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: UFlowPilot -description: UFlowPilot reference page ---- - -import Ref from '../../../components/Ref.astro' - - - -### Description - -`UFlowPilot` is the base data asset for FlowPilot. This is what you'll create, edit and iterate on to create your gameplay sequences. - diff --git a/src/content/docs/reference/UFlowPilotParent.mdx b/src/content/docs/reference/UFlowPilotParent.mdx deleted file mode 100644 index 3a4374f..0000000 --- a/src/content/docs/reference/UFlowPilotParent.mdx +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: UFlowPilotParent -description: UFlowPilotParent reference page ---- - -import Ref from '../../../components/Ref.astro' - - - -### Description - diff --git a/src/content/docs/reference/UFlowPilotTask.mdx b/src/content/docs/reference/UFlowPilotTask.mdx deleted file mode 100644 index ca5c80d..0000000 --- a/src/content/docs/reference/UFlowPilotTask.mdx +++ /dev/null @@ -1,54 +0,0 @@ ---- -title: UFlowPilotTask -description: UFlowPilot reference page ---- - -import Ref from '../../../components/Ref.astro' - -import { Image } from 'astro:assets'; -import schema from '../../../assets/uflowpilottask_executionflow.png'; - - - -### Description - -UFlowPilotTask Schema - -`UFlowPilotTask` is the base class for all Tasks that can run in FlowPilot. - -The schema above shows succintely how it works. - -Each Tasks starts its execution by calling their `Enter()` methods. They can either succeed or fail at this stage. -Upon failing, the task ends. If succeeded, `Tick` is then called and we check the Task Result ( InProgress, Succeeded, Failed, Error ). -If the Task returns `Succeeded` the `Exit()` method is called. - -Tasks can also be cancelled, and end directly. - -Each class that can be implemented need to override a couple of virtual methods exposed by this task, either in Cpp or implementing the Blueprint versions when creating a `UFlowPilotTask` via blueprint. - -### Interface - -```cpp -// UFlowPilotTask -// Setups Tasks. Called once per FlowPilotExecution, even after restarts. -virtual void Setup(FFlowContext* InContext); -// Called when starting this Task. Returns true on success -virtual bool Enter(); -// Called on Tick. Will success automatically if not implemented by Child classes -virtual EFPTaskResult Tick(float DeltaTime); -// Called when Tick returns Succeeds -virtual void Exit(); -// Resets all Tasks into their Setup States -virtual void Reset(); - -#if WITH_EDITOR - // Returns true if valid. Child Tasks should implement their Validations - virtual bool IsTaskDataValid(FDataValidationContext& InContext) { return true; } -#endif - -#if !UE_BUILD_SHIPPING && !UE_BUILD_TEST - // Gathers information to display to debug view about Task. - virtual void GetRuntimeDescription(TArray& OutLines) const {}; -#endif - //~UFlowPilotTask -``` \ No newline at end of file