Files
UnrealEngine/Engine/Source/Runtime/MassEntity/Private/MassObserverProcessor.cpp
Brandyn / Techy fcc1b09210 init
2026-04-04 15:40:51 -05:00

60 lines
1.7 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)
{
PRAGMA_DISABLE_DEPRECATION_WARNINGS
if (Operation != EMassObservedOperation::MAX)
{
ObservedOperations |= (Operation == EMassObservedOperation::Add)
? EMassObservedOperationFlags::Add
: EMassObservedOperationFlags::Remove;
Operation = EMassObservedOperation::MAX;
}
PRAGMA_ENABLE_DEPRECATION_WARNINGS
if (ObservedType != nullptr && ObservedOperations != EMassObservedOperationFlags::None)
{
Register();
}
else if (bAutoRegisterWithObserverRegistry)
{
UE_LOG(LogMass, Error, TEXT("%hs attempting to register %s while it\'s misconfigured, Type: %s, OperationFlags: %#x")
, __FUNCTION__, *MyClass->GetName(), *GetNameSafe(ObservedType), ObservedOperations);
}
}
}
void UMassObserverProcessor::Register()
{
if (bAutoRegisterWithObserverRegistry)
{
check(ObservedType);
UMassObserverRegistry::GetMutable().RegisterObserver(ObservedType, static_cast<uint8>(ObservedOperations), GetClass());
}
}