10#include "MassEntityRelations.generated.h"
12#define UE_API MASSENTITY_API
18 struct FRelationManager;
112 return RelationTagType;
169#if WITH_MASSENTITY_DEBUG
226 return GetRole(
static_cast<int32>(Role));
280 return Handle.DebugGetDescription();
300 return Element.GetRoleEntityIndex() ==
EntityIndex;
308 return RelationEntity ==
Other.RelationEntity && RoleEntity ==
Other.RoleEntity;
312 uint32 RelationEntity = 0;
336 return Struct &&
Struct->IsChildOf(FMassRelation::StaticStruct());
#define check(expr)
Definition AssertionMacros.h:314
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
T TNotNull
Definition NotNull.h:307
const bool
Definition NetworkReplayStreaming.h:178
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define USTRUCT(...)
Definition ObjectMacros.h:746
#define UE_API
Definition SColorGradingComponentViewer.h:12
Definition NameTypes.h:617
Definition AndroidPlatformMisc.h:14
Definition MassObserverProcessor.h:70
Definition MassEntityRelations.h:340
Definition MassRelationManager.cpp:20
ERemovalPolicy
Definition MassEntityRelations.h:24
FString LexToString(const ERelationRole Value)
Definition MassEntityRelations.h:52
ERelationRole
Definition MassEntityRelations.h:46
EExternalMappingRequired
Definition MassEntityRelations.h:39
Definition MassArchetypeData.h:21
bool IsA< FMassRelation >(const UStruct *Struct)
Definition MassEntityRelations.h:334
U16 Index
Definition radfft.cpp:71
Definition MassEntityHandle.h:13
Definition MassEntityManager.h:96
Definition MassEntityElementTypes.h:10
Definition MassEntityRelations.h:199
FMassEntityHandle GetRole(const UE::Mass::Relations::ERelationRole Role) const
Definition MassEntityRelations.h:223
Definition MassEntityRelations.h:232
Definition MassEntityRelations.h:292
bool operator()(const FMassRelationRoleInstanceHandle &Element) const
Definition MassEntityRelations.h:298
FMassRelationRoleInstanceHandleFinder(const FMassEntityHandle EntityHandle)
Definition MassEntityRelations.h:293
const int32 EntityIndex
Definition MassEntityRelations.h:303
Definition MassEntityRelations.h:240
friend FString LexToString(const FMassRelationRoleInstanceHandle Handle)
Definition MassEntityRelations.h:278
static FMassRelationRoleInstanceHandle Create(UE::Mass::Relations::ERelationRole Role, const FMassEntityHandle RoleHandle, const FMassEntityHandle RelationEntityHandle)
Definition MassEntityRelations.h:247
FMassRelationRoleInstanceHandle()=default
static constexpr int32 EntityIndexMask
Definition MassEntityRelations.h:242
FString DebugGetDescription() const
Definition MassEntityRelations.h:283
int32 GetRelationEntityIndex() const
Definition MassEntityRelations.h:267
MASSENTITY_API FMassEntityHandle GetRelationEntityHandle(const FMassEntityManager &EntityManager) const
Definition MassEntityRelations.cpp:56
MASSENTITY_API FMassEntityHandle GetRoleEntityHandle(const FMassEntityManager &EntityManager) const
Definition MassEntityRelations.cpp:50
static constexpr int32 EntityIndexBits
Definition MassEntityRelations.h:241
UE::Mass::Relations::ERelationRole GetRole() const
Definition MassEntityRelations.h:273
static constexpr int32 TypeMask
Definition MassEntityRelations.h:243
bool operator==(const FMassRelationRoleInstanceHandle &Other) const
Definition MassEntityRelations.h:306
int32 GetRoleEntityIndex() const
Definition MassEntityRelations.h:261
bool IsValid() const =delete
Definition MassEntityRelations.h:186
Definition MassEntityElementTypes.h:24
Definition UnrealTypeTraits.h:40
Definition WeakObjectPtrTemplates.h:25
Definition MassArchetypeGroup.h:15
Definition MassEntityRelations.h:105
FRelationTypeTraits(const FRelationTypeTraits &Other)=default
TNotNull< const UScriptStruct * > GetRelationTagType() const
Definition MassEntityRelations.h:110
TFunction< bool(FMassEntityManager &)> RegisterObserversDelegate
Definition MassEntityRelations.h:154
bool bCreateRelationEntitiesInHierarchy
Definition MassEntityRelations.h:142
TNotNull< const UScriptStruct * > RelationFragmentType
Definition MassEntityRelations.h:135
void SetDebugInFix(FString &&InFix)
Definition MassEntityRelations.cpp:32
TWeakObjectPtr< UClass > RelationEntityCreationObserverClass
Definition MassEntityRelations.h:163
FName RelationName
Definition MassEntityRelations.h:120
TWeakObjectPtr< UClass > ObjectEntityDestructionObserverClass
Definition MassEntityRelations.h:166
bool bHierarchical
Definition MassEntityRelations.h:146
FName GetFName() const
Definition MassEntityRelations.h:115
TStaticArray< FRoleTraits, static_cast< uint8 >(ERelationRole::MAX)> RoleTraits
Definition MassEntityRelations.h:144
FArchetypeGroupType RegisteredGroupType
Definition MassEntityRelations.h:148
UE_API FRelationTypeTraits(const FRelationTypeTraits &Other, TNotNull< const UScriptStruct * > NewRelationTagType)
UE_API FRelationTypeTraits(TNotNull< const UScriptStruct * > InRelationTagType)
TWeakObjectPtr< UClass > SubjectEntityDestructionObserverClass
Definition MassEntityRelations.h:165
TWeakObjectPtr< UClass > RelationEntityDestructionObserverClass
Definition MassEntityRelations.h:164
Definition MassEntityRelations.h:62
bool bExclusive
Definition MassEntityRelations.h:79
EExternalMappingRequired RequiresExternalMapping
Definition MassEntityRelations.h:93
ERemovalPolicy DestructionPolicy
Definition MassEntityRelations.h:72
bool operator==(const FRoleTraits &Other) const
Definition MassEntityRelations.h:95
const UScriptStruct * Element
Definition MassEntityRelations.h:67