ffffffuuuuuuuuuu
This commit is contained in:
@@ -0,0 +1,66 @@
|
||||
// Fill out your copyright notice in the Description page of Project Settings.
|
||||
|
||||
|
||||
#include "CppAnimation.h"
|
||||
|
||||
CppAnimation::CppAnimation()
|
||||
{
|
||||
}
|
||||
|
||||
CppAnimation::~CppAnimation()
|
||||
{
|
||||
}
|
||||
|
||||
CppAnimation::CppAnimation(UUserWidget* owner, UWidgetAnimation* animation, TArray<FCppStruct_AnimModeDirection>* modes, TEnumAsByte<Enum_AnimMode>* lastMode, int32* priority)
|
||||
: WidgetOwner(owner),
|
||||
WidgetAnimation(animation),
|
||||
AnimModes(*modes),
|
||||
lastMode(*lastMode),
|
||||
priorityIndex(*priority)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
void CppAnimation::PlayAnimationMode(TEnumAsByte<Enum_AnimMode>* mode, int32* priority)
|
||||
{
|
||||
if (!CanMode(mode))
|
||||
return;
|
||||
if (!CanPlayAnimation(mode))
|
||||
return;
|
||||
if (priorityIndex > *priority)
|
||||
return;
|
||||
lastMode = *mode;
|
||||
WidgetOwner->PlayAnimation(WidgetAnimation, 0.0f, 1, GetDirection(mode), 1.0f, false);
|
||||
}
|
||||
|
||||
TEnumAsByte<EUMGSequencePlayMode::Type> CppAnimation::GetDirection(TEnumAsByte<Enum_AnimMode>* mode)
|
||||
{
|
||||
for (auto anim : AnimModes)
|
||||
{
|
||||
if (anim.mode == *mode)
|
||||
return anim.direction;
|
||||
}
|
||||
return EUMGSequencePlayMode::Type::Forward;
|
||||
}
|
||||
|
||||
bool CppAnimation::CanMode(TEnumAsByte<Enum_AnimMode>* mode)
|
||||
{
|
||||
bool canMode = false;
|
||||
for (int32 i = 0; i < AnimModes.Num(); ++i)
|
||||
{
|
||||
if (AnimModes[i].mode == *mode)
|
||||
{
|
||||
canMode = true;
|
||||
}
|
||||
}
|
||||
return canMode;
|
||||
}
|
||||
|
||||
bool CppAnimation::CanPlayAnimation(TEnumAsByte<Enum_AnimMode>* mode)
|
||||
{
|
||||
if (!CanMode(mode))
|
||||
return false;
|
||||
return lastMode != *mode;
|
||||
}
|
||||
Reference in New Issue
Block a user