You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
#rnx #rb mikko.mononen #preflight 627115a3f96717d2a1f3ebc2 [CL 20023815 by Yoan StAmant in ue5-main branch]
43 lines
1.4 KiB
C
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;
|
|
};
|