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

#include <MassEntityTypes.h>

Public Member Functions

 FMassArchetypeSharedFragmentValues ()=default
 
 FMassArchetypeSharedFragmentValues (const FMassArchetypeSharedFragmentValues &OtherFragmentValues)=default
 
 FMassArchetypeSharedFragmentValues (FMassArchetypeSharedFragmentValues &&OtherFragmentValues)=default
 
FMassArchetypeSharedFragmentValuesoperator= (const FMassArchetypeSharedFragmentValues &OtherFragmentValues)=default
 
FMassArchetypeSharedFragmentValuesoperator= (FMassArchetypeSharedFragmentValues &&OtherFragmentValues)=default
 
bool HasExactFragmentTypesMatch (const FMassSharedFragmentBitSet &InSharedFragmentBitSet, const FMassConstSharedFragmentBitSet &InConstSharedFragmentBitSet) const
 
bool HasExactSharedFragmentTypesMatch (const FMassSharedFragmentBitSet &InSharedFragmentBitSet) const
 
bool HasAllRequiredSharedFragmentTypes (const FMassSharedFragmentBitSet &InSharedFragmentBitSet) const
 
bool HasExactConstSharedFragmentTypesMatch (const FMassConstSharedFragmentBitSet &InConstSharedFragmentBitSet) const
 
bool HasAllRequiredConstSharedFragmentTypes (const FMassConstSharedFragmentBitSet &InConstSharedFragmentBitSet) const
 
bool DoesMatchComposition (const FMassArchetypeCompositionDescriptor &InDescriptor) const
 
bool IsEquivalent (const FMassArchetypeSharedFragmentValues &OtherSharedFragmentValues) const
 
MASSENTITY_API bool HasSameValues (const FMassArchetypeSharedFragmentValues &Other) const
 
bool ContainsType (const UScriptStruct *FragmentType) const
 
template<typename T >
bool ContainsType () const
 
void Add (const FConstSharedStruct &Fragment)
 
MASSENTITY_API FConstSharedStruct Add_GetRef (const FConstSharedStruct &Fragment)
 
FConstSharedStruct AddConstSharedFragment (const FConstSharedStruct &Fragment)
 
void Add (const FSharedStruct &Fragment)
 
MASSENTITY_API FSharedStruct Add_GetRef (const FSharedStruct &Fragment)
 
FSharedStruct AddSharedFragment (const FSharedStruct &Fragment)
 
MASSENTITY_API void ReplaceSharedFragments (TConstArrayView< FSharedStruct > Fragments)
 
MASSENTITY_API int32 Append (const FMassArchetypeSharedFragmentValues &Other)
 
MASSENTITY_API int32 Remove (const FMassSharedFragmentBitSet &SharedFragmentToRemoveBitSet)
 
MASSENTITY_API int32 Remove (const FMassConstSharedFragmentBitSet &ConstSharedFragmentToRemoveBitSet)
 
int32 Remove (const FMassArchetypeCompositionDescriptor &InDescriptor)
 
const TArray< FConstSharedStruct > & GetConstSharedFragments () const
 
TArray< FSharedStruct > & GetMutableSharedFragments ()
 
const TArray< FSharedStruct > & GetSharedFragments () const
 
FConstSharedStruct GetConstSharedFragmentStruct (const UScriptStruct *StructType) const
 
FSharedStruct GetSharedFragmentStruct (const UScriptStruct *StructType)
 
FConstSharedStruct GetSharedFragmentStruct (const UScriptStruct *StructType) const
 
const FMassSharedFragmentBitSetGetSharedFragmentBitSet () const
 
const FMassConstSharedFragmentBitSetGetConstSharedFragmentBitSet () const
 
void DirtyHashCache ()
 
void CacheHash () const
 
MASSENTITY_API uint32 CalculateHash () const
 
SIZE_T GetAllocatedSize () const
 
void Sort ()
 
bool IsSorted () const
 
bool IsEmpty () const
 
void Reset ()
 
bool HasExactFragmentTypesMatch (const FMassSharedFragmentBitSet &InSharedFragmentBitSet) const
 

Protected Attributes

uint32 HashCache = UINT32_MAX
 
bool bSorted = true
 
FMassSharedFragmentBitSet SharedFragmentBitSet
 
FMassConstSharedFragmentBitSet ConstSharedFragmentBitSet
 
TArray< FConstSharedStructConstSharedFragments
 
TArray< FSharedStructSharedFragments
 

Friends

uint32 GetTypeHash (const FMassArchetypeSharedFragmentValues &SharedFragmentValues)
 

Detailed Description

Wrapper for const and non-const shared fragment containers that tracks which struct types it holds (via a FMassSharedFragmentBitSet). Note that having multiple instanced of a given struct type is not supported and Add* functions will fetch the previously added fragment instead of adding a new one.

Constructor & Destructor Documentation

◆ FMassArchetypeSharedFragmentValues() [1/3]

FMassArchetypeSharedFragmentValues::FMassArchetypeSharedFragmentValues ( )
default

◆ FMassArchetypeSharedFragmentValues() [2/3]

FMassArchetypeSharedFragmentValues::FMassArchetypeSharedFragmentValues ( const FMassArchetypeSharedFragmentValues OtherFragmentValues)
default

◆ FMassArchetypeSharedFragmentValues() [3/3]

FMassArchetypeSharedFragmentValues::FMassArchetypeSharedFragmentValues ( FMassArchetypeSharedFragmentValues &&  OtherFragmentValues)
default

Member Function Documentation

◆ Add() [1/2]

void FMassArchetypeSharedFragmentValues::Add ( const FConstSharedStruct Fragment)
inline

Adds Fragment to the collection. Method will ensure if a fragment of the given FMassConstSharedFragment subclass has already been added.

◆ Add() [2/2]

void FMassArchetypeSharedFragmentValues::Add ( const FSharedStruct Fragment)
inline

Adds Fragment to the collection. Method will ensure if a fragment of the given FMassSharedFragment subclass has already been added.

◆ Add_GetRef() [1/2]

PRAGMA_ENABLE_DEPRECATION_WARNINGS FConstSharedStruct FMassArchetypeSharedFragmentValues::Add_GetRef ( const FConstSharedStruct Fragment)

Adds Fragment to the collection. Method will ensure if a fragment of the given FMassConstSharedFragment subclass has already been added. In that case the method will return the previously added instance if the given type has been added as a CONST shared fragment and if not it will return an empty FConstSharedStruct.

◆ Add_GetRef() [2/2]

FSharedStruct FMassArchetypeSharedFragmentValues::Add_GetRef ( const FSharedStruct Fragment)

Adds Fragment to the collection. Method will ensure if a fragment of the given FMassSharedFragment subclass has already been added. In that case the method will return the previously added instance if the given type has been added as a NON-CONST shared fragment and if not it will return an empty FSharedStruct.

◆ AddConstSharedFragment()

FConstSharedStruct FMassArchetypeSharedFragmentValues::AddConstSharedFragment ( const FConstSharedStruct Fragment)
inline

◆ AddSharedFragment()

FSharedStruct FMassArchetypeSharedFragmentValues::AddSharedFragment ( const FSharedStruct Fragment)
inline

◆ Append()

int32 FMassArchetypeSharedFragmentValues::Append ( const FMassArchetypeSharedFragmentValues Other)

Appends contents of Other to this instance. All common fragments will get overridden with values in Other. Note that changing a fragments "role" (being const or non-const) is not supported and the function will fail an ensure when that is attempted.

Returns
number of fragments added or changed

◆ CacheHash()

void FMassArchetypeSharedFragmentValues::CacheHash ( ) const
inline

◆ CalculateHash()

uint32 FMassArchetypeSharedFragmentValues::CalculateHash ( ) const

◆ ContainsType() [1/2]

template<typename T >
bool FMassArchetypeSharedFragmentValues::ContainsType ( ) const
inline

◆ ContainsType() [2/2]

bool FMassArchetypeSharedFragmentValues::ContainsType ( const UScriptStruct FragmentType) const
inline

◆ DirtyHashCache()

void FMassArchetypeSharedFragmentValues::DirtyHashCache ( )
inline

◆ DoesMatchComposition()

bool FMassArchetypeSharedFragmentValues::DoesMatchComposition ( const FMassArchetypeCompositionDescriptor InDescriptor) const
inline
Returns
whether the stored shared fragment values exactly match shared fragment types indicated by InDescriptor

◆ GetAllocatedSize()

PRAGMA_ENABLE_DEPRECATION_WARNINGS SIZE_T FMassArchetypeSharedFragmentValues::GetAllocatedSize ( ) const
inline

◆ GetConstSharedFragmentBitSet()

const FMassConstSharedFragmentBitSet & FMassArchetypeSharedFragmentValues::GetConstSharedFragmentBitSet ( ) const
inline

◆ GetConstSharedFragments()

const TArray< FConstSharedStruct > & FMassArchetypeSharedFragmentValues::GetConstSharedFragments ( ) const
inline

◆ GetConstSharedFragmentStruct()

FConstSharedStruct FMassArchetypeSharedFragmentValues::GetConstSharedFragmentStruct ( const UScriptStruct StructType) const
inline

◆ GetMutableSharedFragments()

TArray< FSharedStruct > & FMassArchetypeSharedFragmentValues::GetMutableSharedFragments ( )
inline

◆ GetSharedFragmentBitSet()

const FMassSharedFragmentBitSet & FMassArchetypeSharedFragmentValues::GetSharedFragmentBitSet ( ) const
inline

◆ GetSharedFragments()

const TArray< FSharedStruct > & FMassArchetypeSharedFragmentValues::GetSharedFragments ( ) const
inline

◆ GetSharedFragmentStruct() [1/2]

FSharedStruct FMassArchetypeSharedFragmentValues::GetSharedFragmentStruct ( const UScriptStruct StructType)
inline

◆ GetSharedFragmentStruct() [2/2]

FConstSharedStruct FMassArchetypeSharedFragmentValues::GetSharedFragmentStruct ( const UScriptStruct StructType) const
inline

◆ HasAllRequiredConstSharedFragmentTypes()

bool FMassArchetypeSharedFragmentValues::HasAllRequiredConstSharedFragmentTypes ( const FMassConstSharedFragmentBitSet InConstSharedFragmentBitSet) const
inline

◆ HasAllRequiredSharedFragmentTypes()

bool FMassArchetypeSharedFragmentValues::HasAllRequiredSharedFragmentTypes ( const FMassSharedFragmentBitSet InSharedFragmentBitSet) const
inline

◆ HasExactConstSharedFragmentTypesMatch()

bool FMassArchetypeSharedFragmentValues::HasExactConstSharedFragmentTypesMatch ( const FMassConstSharedFragmentBitSet InConstSharedFragmentBitSet) const
inline

◆ HasExactFragmentTypesMatch() [1/2]

bool FMassArchetypeSharedFragmentValues::HasExactFragmentTypesMatch ( const FMassSharedFragmentBitSet InSharedFragmentBitSet) const
inline

◆ HasExactFragmentTypesMatch() [2/2]

bool FMassArchetypeSharedFragmentValues::HasExactFragmentTypesMatch ( const FMassSharedFragmentBitSet InSharedFragmentBitSet,
const FMassConstSharedFragmentBitSet InConstSharedFragmentBitSet 
) const
inline

◆ HasExactSharedFragmentTypesMatch()

bool FMassArchetypeSharedFragmentValues::HasExactSharedFragmentTypesMatch ( const FMassSharedFragmentBitSet InSharedFragmentBitSet) const
inline

◆ HasSameValues()

bool FMassArchetypeSharedFragmentValues::HasSameValues ( const FMassArchetypeSharedFragmentValues Other) const

Compares contents of this and the Other, and allows different order of elements in both containers. Note that the function ignores "nulls", i.e. empty FConstSharedStruct and FSharedStruct instances. The function does care however about matching "mode", meaning ConstSharedFragments and SharedFragments arrays are compared independently.

◆ IsEmpty()

bool FMassArchetypeSharedFragmentValues::IsEmpty ( ) const
inline

◆ IsEquivalent()

bool FMassArchetypeSharedFragmentValues::IsEquivalent ( const FMassArchetypeSharedFragmentValues OtherSharedFragmentValues) const
inline

◆ IsSorted()

bool FMassArchetypeSharedFragmentValues::IsSorted ( ) const
inline

◆ operator=() [1/2]

FMassArchetypeSharedFragmentValues & FMassArchetypeSharedFragmentValues::operator= ( const FMassArchetypeSharedFragmentValues OtherFragmentValues)
default

◆ operator=() [2/2]

FMassArchetypeSharedFragmentValues & FMassArchetypeSharedFragmentValues::operator= ( FMassArchetypeSharedFragmentValues &&  OtherFragmentValues)
default

◆ Remove() [1/3]

int32 FMassArchetypeSharedFragmentValues::Remove ( const FMassArchetypeCompositionDescriptor InDescriptor)
inline

Remove all the shared and const shared fragments indicated by InDescriptor

Returns
number of fragments types removed

◆ Remove() [2/3]

int32 FMassArchetypeSharedFragmentValues::Remove ( const FMassConstSharedFragmentBitSet ConstSharedFragmentToRemoveBitSet)

Note that the function removes the const shared fragments by type

Returns
number of fragments types removed

◆ Remove() [3/3]

int32 FMassArchetypeSharedFragmentValues::Remove ( const FMassSharedFragmentBitSet SharedFragmentToRemoveBitSet)

Note that the function removes the shared fragments by type

Returns
number of fragments types removed

◆ ReplaceSharedFragments()

void FMassArchetypeSharedFragmentValues::ReplaceSharedFragments ( TConstArrayView< FSharedStruct Fragments)

Finds instances of fragment types given by Fragments and replaces their values with contents of respective element of Fragments. Note that it's callers responsibility to ensure every fragment type in Fragments already has an instance in this FMassArchetypeSharedFragmentValues instance. Failing that assumption will result in ensure failure.

◆ Reset()

void FMassArchetypeSharedFragmentValues::Reset ( )
inline

◆ Sort()

void FMassArchetypeSharedFragmentValues::Sort ( )
inline

Friends And Related Symbol Documentation

◆ GetTypeHash

uint32 GetTypeHash ( const FMassArchetypeSharedFragmentValues SharedFragmentValues)
friend

Member Data Documentation

◆ bSorted

bool FMassArchetypeSharedFragmentValues::bSorted = true
mutableprotected

We consider empty FMassArchetypeSharedFragmentValues a sorted container.Same goes for a container containing a single element,

See also
DirtyHashCache

◆ ConstSharedFragmentBitSet

FMassConstSharedFragmentBitSet FMassArchetypeSharedFragmentValues::ConstSharedFragmentBitSet
protected

◆ ConstSharedFragments

TArray<FConstSharedStruct> FMassArchetypeSharedFragmentValues::ConstSharedFragments
protected

◆ HashCache

uint32 FMassArchetypeSharedFragmentValues::HashCache = UINT32_MAX
mutableprotected

◆ SharedFragmentBitSet

FMassSharedFragmentBitSet FMassArchetypeSharedFragmentValues::SharedFragmentBitSet
protected

◆ SharedFragments

TArray<FSharedStruct> FMassArchetypeSharedFragmentValues::SharedFragments
protected

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