UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
FMassFragmentRequirements Struct Reference

#include <MassRequirements.h>

+ Inheritance diagram for FMassFragmentRequirements:

Public Member Functions

 FMassFragmentRequirements ()=default
 
MASSENTITY_API FMassFragmentRequirements (const TSharedPtr< FMassEntityManager > &EntityManager)
 
MASSENTITY_API FMassFragmentRequirements (const TSharedRef< FMassEntityManager > &EntityManager)
 
MASSENTITY_API void Initialize (const TSharedRef< FMassEntityManager > &EntityManager)
 
FMassFragmentRequirementsAddElementRequirement (TNotNull< const UScriptStruct * > ElementType, const EMassFragmentAccess AccessMode, const EMassFragmentPresence Presence=EMassFragmentPresence::All)
 
FMassFragmentRequirementsAddRequirement (const UScriptStruct *FragmentType, const EMassFragmentAccess AccessMode, const EMassFragmentPresence Presence=EMassFragmentPresence::All)
 
template<typename T >
FMassFragmentRequirementsAddRequirement (const EMassFragmentAccess AccessMode, const EMassFragmentPresence Presence=EMassFragmentPresence::All)
 
FMassFragmentRequirementsAddTagRequirement (TNotNull< const UScriptStruct * > TagType, const EMassFragmentPresence Presence)
 
void AddTagRequirement (const UScriptStruct &TagType, const EMassFragmentPresence Presence)
 
template<typename T >
FMassFragmentRequirementsAddTagRequirement (const EMassFragmentPresence Presence)
 
template<EMassFragmentPresence Presence>
FMassFragmentRequirementsAddTagRequirements (const FMassTagBitSet &TagBitSet)
 
MASSENTITY_API FMassFragmentRequirementsClearTagRequirements (const FMassTagBitSet &TagsToRemoveBitSet)
 
template<typename T >
FMassFragmentRequirementsAddChunkRequirement (const EMassFragmentAccess AccessMode, const EMassFragmentPresence Presence=EMassFragmentPresence::All)
 
FMassFragmentRequirementsAddChunkRequirement (TNotNull< const UScriptStruct * > ChunkFragmentType, const EMassFragmentAccess AccessMode, const EMassFragmentPresence Presence=EMassFragmentPresence::All)
 
template<typename T >
FMassFragmentRequirementsAddConstSharedRequirement (const EMassFragmentPresence Presence=EMassFragmentPresence::All)
 
FMassFragmentRequirementsAddConstSharedRequirement (const UScriptStruct *FragmentType, const EMassFragmentPresence Presence=EMassFragmentPresence::All)
 
template<typename T >
FMassFragmentRequirementsAddSharedRequirement (const EMassFragmentAccess AccessMode, const EMassFragmentPresence Presence=EMassFragmentPresence::All)
 
FMassFragmentRequirementsAddSharedRequirement (TNotNull< const UScriptStruct * > SharedFragmentType, const EMassFragmentAccess AccessMode, const EMassFragmentPresence Presence=EMassFragmentPresence::All)
 
MASSENTITY_API void Reset ()
 
MASSENTITY_API bool CheckValidity () const
 
TConstArrayView< FMassFragmentRequirementDescriptionGetFragmentRequirements () const
 
TConstArrayView< FMassFragmentRequirementDescriptionGetChunkFragmentRequirements () const
 
TConstArrayView< FMassFragmentRequirementDescriptionGetConstSharedFragmentRequirements () const
 
TConstArrayView< FMassFragmentRequirementDescriptionGetSharedFragmentRequirements () const
 
const FMassFragmentBitSetGetRequiredAllFragments () const
 
const FMassFragmentBitSetGetRequiredAnyFragments () const
 
const FMassFragmentBitSetGetRequiredOptionalFragments () const
 
const FMassFragmentBitSetGetRequiredNoneFragments () const
 
const FMassTagBitSetGetRequiredAllTags () const
 
const FMassTagBitSetGetRequiredAnyTags () const
 
const FMassTagBitSetGetRequiredNoneTags () const
 
const FMassTagBitSetGetRequiredOptionalTags () const
 
const FMassChunkFragmentBitSetGetRequiredAllChunkFragments () const
 
const FMassChunkFragmentBitSetGetRequiredOptionalChunkFragments () const
 
const FMassChunkFragmentBitSetGetRequiredNoneChunkFragments () const
 
const FMassSharedFragmentBitSetGetRequiredAllSharedFragments () const
 
const FMassSharedFragmentBitSetGetRequiredOptionalSharedFragments () const
 
const FMassSharedFragmentBitSetGetRequiredNoneSharedFragments () const
 
const FMassConstSharedFragmentBitSetGetRequiredAllConstSharedFragments () const
 
const FMassConstSharedFragmentBitSetGetRequiredOptionalConstSharedFragments () const
 
const FMassConstSharedFragmentBitSetGetRequiredNoneConstSharedFragments () const
 
bool IsInitialized () const
 
MASSENTITY_API bool IsEmpty () const
 
bool HasPositiveRequirements () const
 
bool HasNegativeRequirements () const
 
bool HasOptionalRequirements () const
 
MASSENTITY_API bool DoesArchetypeMatchRequirements (const FMassArchetypeHandle &ArchetypeHandle) const
 
MASSENTITY_API bool DoesArchetypeMatchRequirements (const FMassArchetypeCompositionDescriptor &ArchetypeComposition) const
 
MASSENTITY_API bool DoesMatchAnyOptionals (const FMassArchetypeCompositionDescriptor &ArchetypeComposition) const
 
bool DoesRequireGameThreadExecution () const
 
MASSENTITY_API void ExportRequirements (FMassExecutionRequirements &OutRequirements) const
 
MASSENTITY_API FMassFragmentRequirements (std::initializer_list< UScriptStruct * > InitList)
 
MASSENTITY_API FMassFragmentRequirements (TConstArrayView< const UScriptStruct * > InitList)
 

Public Attributes

friend FMassDebugger
 
friend FMassRequirementAccessDetector
 

Protected Member Functions

MASSENTITY_API void SortRequirements ()
 
void IncrementChangeCounter ()
 
void ConsumeIncrementalChangesCount ()
 
bool HasIncrementalChanges () const
 
MASSENTITY_API bool IsGameThreadOnlySharedFragment (TNotNull< const UScriptStruct * > SharedFragmentType) const
 

Protected Attributes

TArray< FMassFragmentRequirementDescriptionFragmentRequirements
 
TArray< FMassFragmentRequirementDescriptionChunkFragmentRequirements
 
TArray< FMassFragmentRequirementDescriptionConstSharedFragmentRequirements
 
TArray< FMassFragmentRequirementDescriptionSharedFragmentRequirements
 
FMassTagBitSet RequiredAllTags
 
FMassTagBitSet RequiredAnyTags
 
FMassTagBitSet RequiredNoneTags
 
FMassTagBitSet RequiredOptionalTags
 
FMassFragmentBitSet RequiredAllFragments
 
FMassFragmentBitSet RequiredAnyFragments
 
FMassFragmentBitSet RequiredOptionalFragments
 
FMassFragmentBitSet RequiredNoneFragments
 
FMassChunkFragmentBitSet RequiredAllChunkFragments
 
FMassChunkFragmentBitSet RequiredOptionalChunkFragments
 
FMassChunkFragmentBitSet RequiredNoneChunkFragments
 
FMassSharedFragmentBitSet RequiredAllSharedFragments
 
FMassSharedFragmentBitSet RequiredOptionalSharedFragments
 
FMassSharedFragmentBitSet RequiredNoneSharedFragments
 
FMassConstSharedFragmentBitSet RequiredAllConstSharedFragments
 
FMassConstSharedFragmentBitSet RequiredOptionalConstSharedFragments
 
FMassConstSharedFragmentBitSet RequiredNoneConstSharedFragments
 
TSharedPtr< FMassEntityManagerCachedEntityManager
 

Friends

MASSENTITY_API friend uint32 GetTypeHash (const FMassFragmentRequirements &Instance)
 

Detailed Description

FMassFragmentRequirements is a structure that describes properties required of an archetype that's a subject of calculations.

Constructor & Destructor Documentation

◆ FMassFragmentRequirements() [1/5]

FMassFragmentRequirements::FMassFragmentRequirements ( )
default

◆ FMassFragmentRequirements() [2/5]

FMassFragmentRequirements::FMassFragmentRequirements ( const TSharedPtr< FMassEntityManager > &  EntityManager)
explicit

◆ FMassFragmentRequirements() [3/5]

FMassFragmentRequirements::FMassFragmentRequirements ( const TSharedRef< FMassEntityManager > &  EntityManager)
explicit

◆ FMassFragmentRequirements() [4/5]

FMassFragmentRequirements::FMassFragmentRequirements ( std::initializer_list< UScriptStruct * >  InitList)

◆ FMassFragmentRequirements() [5/5]

FMassFragmentRequirements::FMassFragmentRequirements ( TConstArrayView< const UScriptStruct * >  InitList)

Member Function Documentation

◆ AddChunkRequirement() [1/2]

template<typename T >
FMassFragmentRequirements & FMassFragmentRequirements::AddChunkRequirement ( const EMassFragmentAccess  AccessMode,
const EMassFragmentPresence  Presence = EMassFragmentPresence::All 
)
inline

◆ AddChunkRequirement() [2/2]

FMassFragmentRequirements & FMassFragmentRequirements::AddChunkRequirement ( TNotNull< const UScriptStruct * >  ChunkFragmentType,
const EMassFragmentAccess  AccessMode,
const EMassFragmentPresence  Presence = EMassFragmentPresence::All 
)
inline

◆ AddConstSharedRequirement() [1/2]

template<typename T >
FMassFragmentRequirements & FMassFragmentRequirements::AddConstSharedRequirement ( const EMassFragmentPresence  Presence = EMassFragmentPresence::All)
inline

◆ AddConstSharedRequirement() [2/2]

FMassFragmentRequirements & FMassFragmentRequirements::AddConstSharedRequirement ( const UScriptStruct FragmentType,
const EMassFragmentPresence  Presence = EMassFragmentPresence::All 
)
inline

◆ AddElementRequirement()

FMassFragmentRequirements & FMassFragmentRequirements::AddElementRequirement ( TNotNull< const UScriptStruct * >  ElementType,
const EMassFragmentAccess  AccessMode,
const EMassFragmentPresence  Presence = EMassFragmentPresence::All 
)
inline

◆ AddRequirement() [1/2]

template<typename T >
FMassFragmentRequirements & FMassFragmentRequirements::AddRequirement ( const EMassFragmentAccess  AccessMode,
const EMassFragmentPresence  Presence = EMassFragmentPresence::All 
)
inline

FMassFragmentRequirements ref returned for chaining

◆ AddRequirement() [2/2]

FMassFragmentRequirements & FMassFragmentRequirements::AddRequirement ( const UScriptStruct FragmentType,
const EMassFragmentAccess  AccessMode,
const EMassFragmentPresence  Presence = EMassFragmentPresence::All 
)
inline

◆ AddSharedRequirement() [1/2]

template<typename T >
FMassFragmentRequirements & FMassFragmentRequirements::AddSharedRequirement ( const EMassFragmentAccess  AccessMode,
const EMassFragmentPresence  Presence = EMassFragmentPresence::All 
)
inline

◆ AddSharedRequirement() [2/2]

FMassFragmentRequirements & FMassFragmentRequirements::AddSharedRequirement ( TNotNull< const UScriptStruct * >  SharedFragmentType,
const EMassFragmentAccess  AccessMode,
const EMassFragmentPresence  Presence = EMassFragmentPresence::All 
)
inline

◆ AddTagRequirement() [1/3]

template<typename T >
FMassFragmentRequirements & FMassFragmentRequirements::AddTagRequirement ( const EMassFragmentPresence  Presence)
inline

◆ AddTagRequirement() [2/3]

void FMassFragmentRequirements::AddTagRequirement ( const UScriptStruct TagType,
const EMassFragmentPresence  Presence 
)
inline

◆ AddTagRequirement() [3/3]

FMassFragmentRequirements & FMassFragmentRequirements::AddTagRequirement ( TNotNull< const UScriptStruct * >  TagType,
const EMassFragmentPresence  Presence 
)
inline

◆ AddTagRequirements()

template<EMassFragmentPresence Presence>
FMassFragmentRequirements & FMassFragmentRequirements::AddTagRequirements ( const FMassTagBitSet TagBitSet)
inline

actual implementation in specializations

◆ CheckValidity()

bool FMassFragmentRequirements::CheckValidity ( ) const

The function validates requirements we make for queries. See the FMassFragmentRequirements struct description for details. Even though the code of the function is non-trivial the consecutive calls will be essentially free due to the result being cached (note that the caching gets invalidated if the composition changes).

Returns
whether this query's requirements follow the rules.

◆ ClearTagRequirements()

FMassFragmentRequirements & FMassFragmentRequirements::ClearTagRequirements ( const FMassTagBitSet TagsToRemoveBitSet)

Clears given tags out of all collected requirements, including negative ones

◆ ConsumeIncrementalChangesCount()

void FMassFragmentRequirements::ConsumeIncrementalChangesCount ( )
inlineprotected

◆ DoesArchetypeMatchRequirements() [1/2]

bool FMassFragmentRequirements::DoesArchetypeMatchRequirements ( const FMassArchetypeCompositionDescriptor ArchetypeComposition) const

◆ DoesArchetypeMatchRequirements() [2/2]

bool FMassFragmentRequirements::DoesArchetypeMatchRequirements ( const FMassArchetypeHandle ArchetypeHandle) const

◆ DoesMatchAnyOptionals()

bool FMassFragmentRequirements::DoesMatchAnyOptionals ( const FMassArchetypeCompositionDescriptor ArchetypeComposition) const

◆ DoesRequireGameThreadExecution()

bool FMassFragmentRequirements::DoesRequireGameThreadExecution ( ) const
inline

◆ ExportRequirements()

void FMassFragmentRequirements::ExportRequirements ( FMassExecutionRequirements OutRequirements) const

◆ GetChunkFragmentRequirements()

TConstArrayView< FMassFragmentRequirementDescription > FMassFragmentRequirements::GetChunkFragmentRequirements ( ) const
inline

◆ GetConstSharedFragmentRequirements()

TConstArrayView< FMassFragmentRequirementDescription > FMassFragmentRequirements::GetConstSharedFragmentRequirements ( ) const
inline

◆ GetFragmentRequirements()

TConstArrayView< FMassFragmentRequirementDescription > FMassFragmentRequirements::GetFragmentRequirements ( ) const
inline

◆ GetRequiredAllChunkFragments()

const FMassChunkFragmentBitSet & FMassFragmentRequirements::GetRequiredAllChunkFragments ( ) const
inline

◆ GetRequiredAllConstSharedFragments()

const FMassConstSharedFragmentBitSet & FMassFragmentRequirements::GetRequiredAllConstSharedFragments ( ) const
inline

◆ GetRequiredAllFragments()

const FMassFragmentBitSet & FMassFragmentRequirements::GetRequiredAllFragments ( ) const
inline

◆ GetRequiredAllSharedFragments()

const FMassSharedFragmentBitSet & FMassFragmentRequirements::GetRequiredAllSharedFragments ( ) const
inline

◆ GetRequiredAllTags()

const FMassTagBitSet & FMassFragmentRequirements::GetRequiredAllTags ( ) const
inline

◆ GetRequiredAnyFragments()

const FMassFragmentBitSet & FMassFragmentRequirements::GetRequiredAnyFragments ( ) const
inline

◆ GetRequiredAnyTags()

const FMassTagBitSet & FMassFragmentRequirements::GetRequiredAnyTags ( ) const
inline

◆ GetRequiredNoneChunkFragments()

const FMassChunkFragmentBitSet & FMassFragmentRequirements::GetRequiredNoneChunkFragments ( ) const
inline

◆ GetRequiredNoneConstSharedFragments()

const FMassConstSharedFragmentBitSet & FMassFragmentRequirements::GetRequiredNoneConstSharedFragments ( ) const
inline

◆ GetRequiredNoneFragments()

const FMassFragmentBitSet & FMassFragmentRequirements::GetRequiredNoneFragments ( ) const
inline

◆ GetRequiredNoneSharedFragments()

const FMassSharedFragmentBitSet & FMassFragmentRequirements::GetRequiredNoneSharedFragments ( ) const
inline

◆ GetRequiredNoneTags()

const FMassTagBitSet & FMassFragmentRequirements::GetRequiredNoneTags ( ) const
inline

◆ GetRequiredOptionalChunkFragments()

const FMassChunkFragmentBitSet & FMassFragmentRequirements::GetRequiredOptionalChunkFragments ( ) const
inline

◆ GetRequiredOptionalConstSharedFragments()

const FMassConstSharedFragmentBitSet & FMassFragmentRequirements::GetRequiredOptionalConstSharedFragments ( ) const
inline

◆ GetRequiredOptionalFragments()

const FMassFragmentBitSet & FMassFragmentRequirements::GetRequiredOptionalFragments ( ) const
inline

◆ GetRequiredOptionalSharedFragments()

const FMassSharedFragmentBitSet & FMassFragmentRequirements::GetRequiredOptionalSharedFragments ( ) const
inline

◆ GetRequiredOptionalTags()

const FMassTagBitSet & FMassFragmentRequirements::GetRequiredOptionalTags ( ) const
inline

◆ GetSharedFragmentRequirements()

TConstArrayView< FMassFragmentRequirementDescription > FMassFragmentRequirements::GetSharedFragmentRequirements ( ) const
inline

◆ HasIncrementalChanges()

bool FMassFragmentRequirements::HasIncrementalChanges ( ) const
inlineprotected

◆ HasNegativeRequirements()

bool FMassFragmentRequirements::HasNegativeRequirements ( ) const
inline

◆ HasOptionalRequirements()

bool FMassFragmentRequirements::HasOptionalRequirements ( ) const
inline

◆ HasPositiveRequirements()

bool FMassFragmentRequirements::HasPositiveRequirements ( ) const
inline

◆ IncrementChangeCounter()

void FMassFragmentRequirements::IncrementChangeCounter ( )
inlineprotected

◆ Initialize()

void FMassFragmentRequirements::Initialize ( const TSharedRef< FMassEntityManager > &  EntityManager)

◆ IsEmpty()

bool FMassFragmentRequirements::IsEmpty ( ) const

◆ IsGameThreadOnlySharedFragment()

bool FMassFragmentRequirements::IsGameThreadOnlySharedFragment ( TNotNull< const UScriptStruct * >  SharedFragmentType) const
protected

A helper function that passes the query over to CachedEntityManager. Main purpose is to have the implementation in cpp and not include the EntityManager header here

◆ IsInitialized()

bool FMassFragmentRequirements::IsInitialized ( ) const
inline

◆ Reset()

void FMassFragmentRequirements::Reset ( )

◆ SortRequirements()

void FMassFragmentRequirements::SortRequirements ( )
protected

Friends And Related Symbol Documentation

◆ GetTypeHash

MASSENTITY_API friend uint32 GetTypeHash ( const FMassFragmentRequirements Instance)
friend

Member Data Documentation

◆ CachedEntityManager

TSharedPtr<FMassEntityManager> FMassFragmentRequirements::CachedEntityManager
protected

◆ ChunkFragmentRequirements

TArray<FMassFragmentRequirementDescription> FMassFragmentRequirements::ChunkFragmentRequirements
protected

◆ ConstSharedFragmentRequirements

TArray<FMassFragmentRequirementDescription> FMassFragmentRequirements::ConstSharedFragmentRequirements
protected

◆ FMassDebugger

friend FMassFragmentRequirements::FMassDebugger

◆ FMassRequirementAccessDetector

FMassRequirementAccessDetector

◆ FragmentRequirements

TArray<FMassFragmentRequirementDescription> FMassFragmentRequirements::FragmentRequirements
protected

◆ RequiredAllChunkFragments

FMassChunkFragmentBitSet FMassFragmentRequirements::RequiredAllChunkFragments
protected

◆ RequiredAllConstSharedFragments

FMassConstSharedFragmentBitSet FMassFragmentRequirements::RequiredAllConstSharedFragments
protected

◆ RequiredAllFragments

FMassFragmentBitSet FMassFragmentRequirements::RequiredAllFragments
protected

◆ RequiredAllSharedFragments

FMassSharedFragmentBitSet FMassFragmentRequirements::RequiredAllSharedFragments
protected

◆ RequiredAllTags

FMassTagBitSet FMassFragmentRequirements::RequiredAllTags
protected

◆ RequiredAnyFragments

FMassFragmentBitSet FMassFragmentRequirements::RequiredAnyFragments
protected

◆ RequiredAnyTags

FMassTagBitSet FMassFragmentRequirements::RequiredAnyTags
protected

◆ RequiredNoneChunkFragments

FMassChunkFragmentBitSet FMassFragmentRequirements::RequiredNoneChunkFragments
protected

◆ RequiredNoneConstSharedFragments

FMassConstSharedFragmentBitSet FMassFragmentRequirements::RequiredNoneConstSharedFragments
protected

◆ RequiredNoneFragments

FMassFragmentBitSet FMassFragmentRequirements::RequiredNoneFragments
protected

◆ RequiredNoneSharedFragments

FMassSharedFragmentBitSet FMassFragmentRequirements::RequiredNoneSharedFragments
protected

◆ RequiredNoneTags

FMassTagBitSet FMassFragmentRequirements::RequiredNoneTags
protected

◆ RequiredOptionalChunkFragments

FMassChunkFragmentBitSet FMassFragmentRequirements::RequiredOptionalChunkFragments
protected

◆ RequiredOptionalConstSharedFragments

FMassConstSharedFragmentBitSet FMassFragmentRequirements::RequiredOptionalConstSharedFragments
protected

◆ RequiredOptionalFragments

FMassFragmentBitSet FMassFragmentRequirements::RequiredOptionalFragments
protected

◆ RequiredOptionalSharedFragments

FMassSharedFragmentBitSet FMassFragmentRequirements::RequiredOptionalSharedFragments
protected

◆ RequiredOptionalTags

FMassTagBitSet FMassFragmentRequirements::RequiredOptionalTags
protected

note that optional tags have meaning only if there are no other strict requirements, i.e. everything is optional, so we're looking for anything matching any of the optionals (both tags as well as fragments).

◆ SharedFragmentRequirements

TArray<FMassFragmentRequirementDescription> FMassFragmentRequirements::SharedFragmentRequirements
protected

The documentation for this struct was generated from the following files: