50 lines
1.4 KiB
C++
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());
|
|
}
|
|
}
|
|
|
|
|