45 lines
1.1 KiB
C++
45 lines
1.1 KiB
C++
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
#include "PoseSearch/PoseSearchEvent.h"
|
|
|
|
bool FPoseSearchEvent::IsValid() const
|
|
{
|
|
// maybe we should check if TimeToEvent >= 0?
|
|
return EventTag.IsValid();
|
|
}
|
|
|
|
void FPoseSearchEvent::Reset()
|
|
{
|
|
EventTag = FGameplayTag();
|
|
TimeToEvent = 0.f;
|
|
}
|
|
|
|
FPoseSearchEvent FPoseSearchEvent::GetPlayRateOverriddenEvent(const FFloatInterval& PlayRateRangeBase) const
|
|
{
|
|
FPoseSearchEvent PlayRateOverriddenEventToSearch = *this;
|
|
|
|
if (!bUsePlayRateRangeOverride)
|
|
{
|
|
PlayRateOverriddenEventToSearch.PlayRateRangeOverride = PlayRateRangeBase;
|
|
}
|
|
|
|
return PlayRateOverriddenEventToSearch;
|
|
}
|
|
|
|
void UPoseSearchEventLibrary::UpdatePoseSearchEvent(const FPoseSearchEvent& InNewEvent, bool bIsNewEventValid, float DeltaSeconds, FPoseSearchEvent& InOutCurrentEvent)
|
|
{
|
|
if (bIsNewEventValid && InNewEvent.IsValid())
|
|
{
|
|
InOutCurrentEvent = InNewEvent;
|
|
}
|
|
else
|
|
{
|
|
InOutCurrentEvent.TimeToEvent -= DeltaSeconds;
|
|
if (InOutCurrentEvent.TimeToEvent < 0.f)
|
|
{
|
|
InOutCurrentEvent.TimeToEvent = 0.f;
|
|
InOutCurrentEvent.EventTag = FGameplayTag();
|
|
}
|
|
}
|
|
}
|