72 lines
1.9 KiB
C++
72 lines
1.9 KiB
C++
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
#include "LyraHUD.h"
|
|
|
|
#include "AbilitySystemComponent.h"
|
|
#include "AbilitySystemGlobals.h"
|
|
#include "Components/GameFrameworkComponentManager.h"
|
|
#include "Engine/EngineBaseTypes.h"
|
|
#include "UObject/UObjectIterator.h"
|
|
|
|
class AActor;
|
|
class UWorld;
|
|
|
|
//////////////////////////////////////////////////////////////////////
|
|
// ALyraHUD
|
|
|
|
ALyraHUD::ALyraHUD(const FObjectInitializer& ObjectInitializer)
|
|
: Super(ObjectInitializer)
|
|
{
|
|
PrimaryActorTick.bStartWithTickEnabled = false;
|
|
}
|
|
|
|
void ALyraHUD::PreInitializeComponents()
|
|
{
|
|
Super::PreInitializeComponents();
|
|
|
|
UGameFrameworkComponentManager::AddGameFrameworkComponentReceiver(this);
|
|
}
|
|
|
|
void ALyraHUD::BeginPlay()
|
|
{
|
|
UGameFrameworkComponentManager::SendGameFrameworkComponentExtensionEvent(this, UGameFrameworkComponentManager::NAME_GameActorReady);
|
|
|
|
Super::BeginPlay();
|
|
}
|
|
|
|
void ALyraHUD::EndPlay(const EEndPlayReason::Type EndPlayReason)
|
|
{
|
|
UGameFrameworkComponentManager::RemoveGameFrameworkComponentReceiver(this);
|
|
|
|
Super::EndPlay(EndPlayReason);
|
|
}
|
|
|
|
void ALyraHUD::GetDebugActorList(TArray<AActor*>& InOutList)
|
|
{
|
|
UWorld* World = GetWorld();
|
|
|
|
Super::GetDebugActorList(InOutList);
|
|
|
|
// Add all actors with an ability system component.
|
|
for (TObjectIterator<UAbilitySystemComponent> It; It; ++It)
|
|
{
|
|
if (UAbilitySystemComponent* ASC = *It)
|
|
{
|
|
if (!ASC->HasAnyFlags(RF_ClassDefaultObject | RF_ArchetypeObject))
|
|
{
|
|
AActor* AvatarActor = ASC->GetAvatarActor();
|
|
AActor* OwnerActor = ASC->GetOwnerActor();
|
|
|
|
if (AvatarActor && UAbilitySystemGlobals::GetAbilitySystemComponentFromActor(AvatarActor))
|
|
{
|
|
AddActorToDebugList(AvatarActor, InOutList, World);
|
|
}
|
|
else if (OwnerActor && UAbilitySystemGlobals::GetAbilitySystemComponentFromActor(OwnerActor))
|
|
{
|
|
AddActorToDebugList(OwnerActor, InOutList, World);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|