Files
UnrealEngine/Engine/Source/Runtime/MassEntity/Private/MassObserverProcessor.cpp
2025-05-18 13:04:45 +08:00

50 lines
1.4 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#include "MassObserverProcessor.h"
#include "MassObserverRegistry.h"
#include UE_INLINE_GENERATED_CPP_BY_NAME(MassObserverProcessor)
//----------------------------------------------------------------------//
// UMassObserverProcessor
//----------------------------------------------------------------------//
UMassObserverProcessor::UMassObserverProcessor()
{
bAutoRegisterWithProcessingPhases = false;
#if WITH_EDITORONLY_DATA
bCanShowUpInSettings = false;
#endif // WITH_EDITORONLY_DATA
}
void UMassObserverProcessor::PostInitProperties()
{
Super::PostInitProperties();
UClass* MyClass = GetClass();
CA_ASSUME(MyClass);
if (HasAnyFlags(RF_ClassDefaultObject) && MyClass->HasAnyClassFlags(CLASS_Abstract) == false)
{
if (ObservedType != nullptr && Operation != EMassObservedOperation::MAX)
{
Register();
}
else if (bAutoRegisterWithObserverRegistry)
{
UE_LOG(LogMass, Error, TEXT("%s attempting to register %s while it\'s misconfigured, Type: %s, Operation: %s")
, ANSI_TO_TCHAR(__FUNCTION__), *MyClass->GetName(), *GetNameSafe(ObservedType), *UEnum::GetValueAsString(Operation));
}
}
}
void UMassObserverProcessor::Register()
{
if (bAutoRegisterWithObserverRegistry)
{
check(ObservedType);
UMassObserverRegistry::GetMutable().RegisterObserver(*ObservedType, Operation, GetClass());
}
}