Files
UnrealEngineUWP/Engine/Plugins/Runtime/StateTree/Source/StateTreeModule/Private/Tasks/StateTreeDelayTask.h
Yoan StAmant fba345e98b [StateTree ] added Delay and DebugText tasks
#rnx
#rb mikko.mononen
#preflight 627115a3f96717d2a1f3ebc2

[CL 20023815 by Yoan StAmant in ue5-main branch]
2022-05-03 08:30:05 -04:00

43 lines
1.4 KiB
C

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "StateTreeTaskBase.h"
#include "StateTreeDelayTask.generated.h"
USTRUCT()
struct STATETREEMODULE_API FStateTreeDelayTaskInstanceData
{
GENERATED_BODY()
/** Delay before the task ends. Default (0 or any negative) will run indefinitely so it requires a transition in the state tree to stop it. */
UPROPERTY(EditAnywhere, Category = Parameter)
float Duration = 0.f;
/** Accumulated time used to stop task if duration is set */
UPROPERTY()
float Time = 0.f;
};
/**
* Simple task to wait indefinitely or for a given time (in seconds) before succeeding.
*/
USTRUCT(meta = (DisplayName = "Delay Task"))
struct STATETREEMODULE_API FStateTreeDelayTask : public FStateTreeTaskCommonBase
{
GENERATED_BODY()
typedef FStateTreeDelayTaskInstanceData InstanceDataType;
FStateTreeDelayTask() = default;
virtual const UStruct* GetInstanceDataType() const override { return InstanceDataType::StaticStruct(); }
virtual bool Link(FStateTreeLinker& Linker) override;
virtual EStateTreeRunStatus EnterState(FStateTreeExecutionContext& Context, const EStateTreeStateChangeType ChangeType, const FStateTreeTransitionResult& Transition) const override;
virtual EStateTreeRunStatus Tick(FStateTreeExecutionContext& Context, const float DeltaTime) const override;;
TStateTreeInstanceDataPropertyHandle<float> DurationHandle;
TStateTreeInstanceDataPropertyHandle<float> TimeHandle;
};