29 lines
840 B
C++
29 lines
840 B
C++
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
#include "DelayForFramesLatentAction.h"
|
|
#include "Engine/LatentActionManager.h"
|
|
|
|
FDelayForFramesLatentAction::FDelayForFramesLatentAction(const FLatentActionInfo& LatentInfo, int32 NumFrames)
|
|
: ExecutionFunction(LatentInfo.ExecutionFunction)
|
|
, OutputLink(LatentInfo.Linkage)
|
|
, CallbackTarget(LatentInfo.CallbackTarget)
|
|
, FramesRemaining(NumFrames)
|
|
{
|
|
}
|
|
|
|
FDelayForFramesLatentAction::~FDelayForFramesLatentAction()
|
|
{
|
|
}
|
|
|
|
void FDelayForFramesLatentAction::UpdateOperation(FLatentResponse& Response)
|
|
{
|
|
--FramesRemaining;
|
|
Response.FinishAndTriggerIf(FramesRemaining <= 0, ExecutionFunction, OutputLink, CallbackTarget);
|
|
}
|
|
|
|
#if WITH_EDITOR
|
|
FString FDelayForFramesLatentAction::GetDescription() const
|
|
{
|
|
return FString::Printf(TEXT("Delay (%d frames remaining)"), FramesRemaining);
|
|
}
|
|
#endif
|