// Copyright Epic Games, Inc. All Rights Reserved. #include "LyraHUD.h" #include "AbilitySystemComponent.h" #include "AbilitySystemGlobals.h" #include "Components/GameFrameworkComponentManager.h" ////////////////////////////////////////////////////////////////////// // 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& InOutList) { UWorld* World = GetWorld(); Super::GetDebugActorList(InOutList); // Add all actors with an ability system component. for (TObjectIterator 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); } } } } }