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]
29 lines
1.1 KiB
C++
29 lines
1.1 KiB
C++
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
#include "StateTreeDelayTask.h"
|
|
#include "StateTreeExecutionContext.h"
|
|
#include "StateTreeLinker.h"
|
|
|
|
bool FStateTreeDelayTask::Link(FStateTreeLinker& Linker)
|
|
{
|
|
Linker.LinkInstanceDataProperty(DurationHandle, STATETREE_INSTANCEDATA_PROPERTY(InstanceDataType, Duration));
|
|
Linker.LinkInstanceDataProperty(TimeHandle, STATETREE_INSTANCEDATA_PROPERTY(InstanceDataType, Time));
|
|
return true;
|
|
}
|
|
|
|
EStateTreeRunStatus FStateTreeDelayTask::EnterState(FStateTreeExecutionContext& Context, const EStateTreeStateChangeType ChangeType, const FStateTreeTransitionResult& Transition) const
|
|
{
|
|
float& Time = Context.GetInstanceData(TimeHandle);
|
|
Time = 0.f;
|
|
return EStateTreeRunStatus::Running;
|
|
}
|
|
|
|
EStateTreeRunStatus FStateTreeDelayTask::Tick(FStateTreeExecutionContext& Context, const float DeltaTime) const
|
|
{
|
|
float& Time = Context.GetInstanceData(TimeHandle);
|
|
const float Duration = Context.GetInstanceData(DurationHandle);
|
|
Time += DeltaTime;
|
|
|
|
return Duration <= 0.0f ? EStateTreeRunStatus::Running : (Time < Duration ? EStateTreeRunStatus::Running : EStateTreeRunStatus::Succeeded);
|
|
}
|