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

#include <MassExecutionContext.h>

Classes

struct  FEntityIterator
 

Public Member Functions

MASSENTITY_API FMassExecutionContext (FMassEntityManager &InEntityManager, const float InDeltaTimeSeconds=0.f, const bool bInFlushDeferredCommands=true)
 
 FMassExecutionContext (FMassExecutionContext &&Other)=default
 
MASSENTITY_API FMassExecutionContext (const FMassExecutionContext &Other)
 
MASSENTITY_API FMassExecutionContext (const FMassExecutionContext &Other, FMassEntityQuery &Query, const TSharedPtr< FMassCommandBuffer > &InCommandBuffer={})
 
MASSENTITY_API ~FMassExecutionContext ()
 
FMassEntityManagerGetEntityManagerChecked () const
 
const TSharedRef< FMassEntityManager > & GetSharedEntityManager ()
 
void PushQuery (FMassEntityQuery &InQuery)
 
void PopQuery (const FMassEntityQuery &InQuery)
 
const FMassEntityQueryGetCurrentQuery () const
 
bool IsCurrentQuery (const FMassEntityQuery &Query) const
 
void ApplyFragmentRequirements (const FMassEntityQuery &RequestingQuery)
 
void ClearFragmentViews (const FMassEntityQuery &RequestingQuery)
 
MASSENTITY_API FEntityIterator CreateEntityIterator ()
 
void SetFlushDeferredCommands (const bool bNewFlushDeferredCommands)
 
void SetDeferredCommandBuffer (const TSharedPtr< FMassCommandBuffer > &InDeferredCommandBuffer)
 
MASSENTITY_API void SetEntityCollection (const FMassArchetypeEntityCollection &InEntityCollection)
 
MASSENTITY_API void SetEntityCollection (FMassArchetypeEntityCollection &&InEntityCollection)
 
void ClearEntityCollection ()
 
void SetAuxData (const FInstancedStruct &InAuxData)
 
void SetExecutionType (EMassExecutionContextType InExecutionType)
 
EMassExecutionContextType GetExecutionType () const
 
float GetDeltaTimeSeconds () const
 
MASSENTITY_API UWorldGetWorld ()
 
TSharedPtr< FMassCommandBufferGetSharedDeferredCommandBuffer () const
 
FMassCommandBufferDefer () const
 
TConstArrayView< FMassEntityHandleGetEntities () const
 
int32 GetNumEntities () const
 
FMassEntityHandle GetEntity (const int32 Index) const
 
void ForEachEntityInChunk (const FMassEntityExecuteFunction &EntityExecuteFunction)
 
bool DoesArchetypeHaveFragment (const UScriptStruct &FragmentType) const
 
template<typename T >
bool DoesArchetypeHaveFragment () const
 
bool DoesArchetypeHaveTag (const UScriptStruct &TagType) const
 
template<typename T >
bool DoesArchetypeHaveTag () const
 
void SetCurrentChunkSerialModificationNumber (const int32 SerialModificationNumber)
 
int32 GetChunkSerialModificationNumber () const
 
template<typename T >
T * GetMutableChunkFragmentPtr ()
 
template<typename T >
T & GetMutableChunkFragment ()
 
template<typename T >
const T * GetChunkFragmentPtr () const
 
template<typename T >
const T & GetChunkFragment () const
 
const voidGetConstSharedFragmentPtr (const UScriptStruct &SharedFragmentType) const
 
template<typename T >
const T * GetConstSharedFragmentPtr () const
 
template<typename T >
const T & GetConstSharedFragment () const
 
template<typename T >
T * GetMutableSharedFragmentPtr ()
 
template<typename T >
const T * GetSharedFragmentPtr () const
 
template<typename T >
T & GetMutableSharedFragment ()
 
template<typename T >
const T & GetSharedFragment () const
 
template<typename TFragment >
TArrayView< TFragmentGetMutableFragmentView ()
 
template<typename TFragment >
TConstArrayView< TFragmentGetFragmentView () const
 
TConstArrayView< FMassFragmentGetFragmentView (const UScriptStruct *FragmentType) const
 
TArrayView< FMassFragmentGetMutableFragmentView (const UScriptStruct *FragmentType)
 
template<typename TFragmentBase >
TConstArrayView< TFragmentBaseGetFragmentView (TNotNull< const UScriptStruct * > FragmentType) const
 
template<typename TFragmentBase >
TArrayView< TFragmentBaseGetMutableFragmentView (TNotNull< const UScriptStruct * > FragmentType)
 
template<typename T , typename = typename TEnableIf<TIsDerivedFrom<T, USubsystem>::IsDerived>::Type>
T * GetMutableSubsystem ()
 
template<typename T , typename = typename TEnableIf<TIsDerivedFrom<T, USubsystem>::IsDerived>::Type>
T & GetMutableSubsystemChecked ()
 
template<typename T , typename = typename TEnableIf<TIsDerivedFrom<T, USubsystem>::IsDerived>::Type>
const T * GetSubsystem ()
 
template<typename T , typename = typename TEnableIf<TIsDerivedFrom<T, USubsystem>::IsDerived>::Type>
const T & GetSubsystemChecked ()
 
template<typename T , typename = typename TEnableIf<TIsDerivedFrom<T, USubsystem>::IsDerived>::Type>
T * GetMutableSubsystem (const TSubclassOf< USubsystem > SubsystemClass)
 
template<typename T , typename = typename TEnableIf<TIsDerivedFrom<T, USubsystem>::IsDerived>::Type>
T & GetMutableSubsystemChecked (const TSubclassOf< USubsystem > SubsystemClass)
 
template<typename T , typename = typename TEnableIf<TIsDerivedFrom<T, USubsystem>::IsDerived>::Type>
const T * GetSubsystem (const TSubclassOf< USubsystem > SubsystemClass)
 
template<typename T , typename = typename TEnableIf<TIsDerivedFrom<T, USubsystem>::IsDerived>::Type>
const T & GetSubsystemChecked (const TSubclassOf< USubsystem > SubsystemClass)
 
const FMassArchetypeEntityCollectionGetEntityCollection () const
 
const FInstancedStructGetAuxData () const
 
FInstancedStructGetMutableAuxData ()
 
template<typename TFragment >
bool ValidateAuxDataType () const
 
MASSENTITY_API void FlushDeferred ()
 
void ClearExecutionData ()
 
void SetCurrentArchetypeCompositionDescriptor (const FMassArchetypeCompositionDescriptor &Descriptor)
 
bool CacheSubsystemRequirements (const FMassSubsystemRequirements &SubsystemRequirements)
 

Static Public Member Functions

static MASSENTITY_API FMassExecutionContextGetDummyInstance ()
 

Protected Member Functions

void SetSubsystemRequirements (const FMassSubsystemRequirements &SubsystemRequirements)
 
void SetFragmentRequirements (const FMassFragmentRequirements &FragmentRequirements)
 
void ClearFragmentViews ()
 

Constructor & Destructor Documentation

◆ FMassExecutionContext() [1/4]

FMassExecutionContext::FMassExecutionContext ( FMassEntityManager InEntityManager,
const float  InDeltaTimeSeconds = 0.f,
const bool  bInFlushDeferredCommands = true 
)
explicit

◆ FMassExecutionContext() [2/4]

FMassExecutionContext::FMassExecutionContext ( FMassExecutionContext &&  Other)
default

◆ FMassExecutionContext() [3/4]

FMassExecutionContext::FMassExecutionContext ( const FMassExecutionContext Other)

◆ FMassExecutionContext() [4/4]

FMassExecutionContext::FMassExecutionContext ( const FMassExecutionContext Other,
FMassEntityQuery Query,
const TSharedPtr< FMassCommandBuffer > &  InCommandBuffer = {} 
)

◆ ~FMassExecutionContext()

FMassExecutionContext::~FMassExecutionContext ( )

Member Function Documentation

◆ ApplyFragmentRequirements()

void FMassExecutionContext::ApplyFragmentRequirements ( const FMassEntityQuery RequestingQuery)
inline

◆ CacheSubsystemRequirements()

bool FMassExecutionContext::CacheSubsystemRequirements ( const FMassSubsystemRequirements SubsystemRequirements)

Processes SubsystemRequirements to fetch and cache all the indicated subsystems. If a UWorld is required to fetch a specific subsystem then the one associated with the stored EntityManager will be used.

Parameters
SubsystemRequirementsindicates all the subsystems that are expected to be accessed. Requesting a subsystem not indicated by the SubsystemRequirements will result in a failure.
Returns
true if all required subsystems have been found, false otherwise.

◆ ClearEntityCollection()

void FMassExecutionContext::ClearEntityCollection ( )
inline

◆ ClearExecutionData()

void FMassExecutionContext::ClearExecutionData ( )

◆ ClearFragmentViews() [1/2]

void FMassExecutionContext::ClearFragmentViews ( )
inlineprotected

◆ ClearFragmentViews() [2/2]

void FMassExecutionContext::ClearFragmentViews ( const FMassEntityQuery RequestingQuery)
inline

◆ CreateEntityIterator()

FMassExecutionContext::FEntityIterator FMassExecutionContext::CreateEntityIterator ( )

Creates an Entity Iterator for the current chunk. Supports range-based for loop and can be used directly as an entity index for the current chunk.

◆ Defer()

FMassCommandBuffer & FMassExecutionContext::Defer ( ) const
inline

◆ DoesArchetypeHaveFragment() [1/2]

template<typename T >
bool FMassExecutionContext::DoesArchetypeHaveFragment ( ) const
inline

◆ DoesArchetypeHaveFragment() [2/2]

bool FMassExecutionContext::DoesArchetypeHaveFragment ( const UScriptStruct FragmentType) const
inline

◆ DoesArchetypeHaveTag() [1/2]

template<typename T >
bool FMassExecutionContext::DoesArchetypeHaveTag ( ) const
inline

◆ DoesArchetypeHaveTag() [2/2]

bool FMassExecutionContext::DoesArchetypeHaveTag ( const UScriptStruct TagType) const
inline

◆ FlushDeferred()

void FMassExecutionContext::FlushDeferred ( )

◆ ForEachEntityInChunk()

void FMassExecutionContext::ForEachEntityInChunk ( const FMassEntityExecuteFunction EntityExecuteFunction)
inline

◆ GetAuxData()

const FInstancedStruct & FMassExecutionContext::GetAuxData ( ) const
inline

◆ GetChunkFragment()

template<typename T >
const T & FMassExecutionContext::GetChunkFragment ( ) const
inline

◆ GetChunkFragmentPtr()

template<typename T >
const T * FMassExecutionContext::GetChunkFragmentPtr ( ) const
inline

◆ GetChunkSerialModificationNumber()

int32 FMassExecutionContext::GetChunkSerialModificationNumber ( ) const
inline

◆ GetConstSharedFragment()

template<typename T >
const T & FMassExecutionContext::GetConstSharedFragment ( ) const
inline

◆ GetConstSharedFragmentPtr() [1/2]

template<typename T >
const T * FMassExecutionContext::GetConstSharedFragmentPtr ( ) const
inline

◆ GetConstSharedFragmentPtr() [2/2]

const void * FMassExecutionContext::GetConstSharedFragmentPtr ( const UScriptStruct SharedFragmentType) const
inline

Shared fragment related operations

◆ GetCurrentQuery()

const FMassEntityQuery & FMassExecutionContext::GetCurrentQuery ( ) const
inline

◆ GetDeltaTimeSeconds()

float FMassExecutionContext::GetDeltaTimeSeconds ( ) const
inline

◆ GetDummyInstance()

FMassExecutionContext & FMassExecutionContext::GetDummyInstance ( )
static

For internal use only, should never be exported as part of API

◆ GetEntities()

TConstArrayView< FMassEntityHandle > FMassExecutionContext::GetEntities ( ) const
inline

◆ GetEntity()

FMassEntityHandle FMassExecutionContext::GetEntity ( const int32  Index) const
inline

◆ GetEntityCollection()

const FMassArchetypeEntityCollection & FMassExecutionContext::GetEntityCollection ( ) const
inline

Sparse chunk related operation

◆ GetEntityManagerChecked()

FMassEntityManager & FMassExecutionContext::GetEntityManagerChecked ( ) const
inline

◆ GetExecutionType()

EMassExecutionContextType FMassExecutionContext::GetExecutionType ( ) const
inline

◆ GetFragmentView() [1/3]

template<typename TFragment >
TConstArrayView< TFragment > FMassExecutionContext::GetFragmentView ( ) const
inline

◆ GetFragmentView() [2/3]

TConstArrayView< FMassFragment > FMassExecutionContext::GetFragmentView ( const UScriptStruct FragmentType) const
inline

◆ GetFragmentView() [3/3]

template<typename TFragmentBase >
TConstArrayView< TFragmentBase > FMassExecutionContext::GetFragmentView ( TNotNull< const UScriptStruct * >  FragmentType) const
inline

◆ GetMutableAuxData()

FInstancedStruct & FMassExecutionContext::GetMutableAuxData ( )
inline

◆ GetMutableChunkFragment()

template<typename T >
T & FMassExecutionContext::GetMutableChunkFragment ( )
inline

◆ GetMutableChunkFragmentPtr()

template<typename T >
T * FMassExecutionContext::GetMutableChunkFragmentPtr ( )
inline

◆ GetMutableFragmentView() [1/3]

template<typename TFragment >
TArrayView< TFragment > FMassExecutionContext::GetMutableFragmentView ( )
inline

◆ GetMutableFragmentView() [2/3]

TArrayView< FMassFragment > FMassExecutionContext::GetMutableFragmentView ( const UScriptStruct FragmentType)
inline

◆ GetMutableFragmentView() [3/3]

template<typename TFragmentBase >
TArrayView< TFragmentBase > FMassExecutionContext::GetMutableFragmentView ( TNotNull< const UScriptStruct * >  FragmentType)
inline

◆ GetMutableSharedFragment()

template<typename T >
T & FMassExecutionContext::GetMutableSharedFragment ( )
inline

◆ GetMutableSharedFragmentPtr()

template<typename T >
T * FMassExecutionContext::GetMutableSharedFragmentPtr ( )
inline

◆ GetMutableSubsystem() [1/2]

template<typename T , typename = typename TEnableIf<TIsDerivedFrom<T, USubsystem>::IsDerived>::Type>
T * FMassExecutionContext::GetMutableSubsystem ( )
inline

◆ GetMutableSubsystem() [2/2]

template<typename T , typename = typename TEnableIf<TIsDerivedFrom<T, USubsystem>::IsDerived>::Type>
T * FMassExecutionContext::GetMutableSubsystem ( const TSubclassOf< USubsystem SubsystemClass)
inline

◆ GetMutableSubsystemChecked() [1/2]

template<typename T , typename = typename TEnableIf<TIsDerivedFrom<T, USubsystem>::IsDerived>::Type>
T & FMassExecutionContext::GetMutableSubsystemChecked ( )
inline

◆ GetMutableSubsystemChecked() [2/2]

template<typename T , typename = typename TEnableIf<TIsDerivedFrom<T, USubsystem>::IsDerived>::Type>
T & FMassExecutionContext::GetMutableSubsystemChecked ( const TSubclassOf< USubsystem SubsystemClass)
inline

◆ GetNumEntities()

int32 FMassExecutionContext::GetNumEntities ( ) const
inline

◆ GetSharedDeferredCommandBuffer()

TSharedPtr< FMassCommandBuffer > FMassExecutionContext::GetSharedDeferredCommandBuffer ( ) const
inline

◆ GetSharedEntityManager()

const TSharedRef< FMassEntityManager > & FMassExecutionContext::GetSharedEntityManager ( )
inline

◆ GetSharedFragment()

template<typename T >
const T & FMassExecutionContext::GetSharedFragment ( ) const
inline

◆ GetSharedFragmentPtr()

template<typename T >
const T * FMassExecutionContext::GetSharedFragmentPtr ( ) const
inline

◆ GetSubsystem() [1/2]

template<typename T , typename = typename TEnableIf<TIsDerivedFrom<T, USubsystem>::IsDerived>::Type>
const T * FMassExecutionContext::GetSubsystem ( )
inline

◆ GetSubsystem() [2/2]

template<typename T , typename = typename TEnableIf<TIsDerivedFrom<T, USubsystem>::IsDerived>::Type>
const T * FMassExecutionContext::GetSubsystem ( const TSubclassOf< USubsystem SubsystemClass)
inline

◆ GetSubsystemChecked() [1/2]

template<typename T , typename = typename TEnableIf<TIsDerivedFrom<T, USubsystem>::IsDerived>::Type>
const T & FMassExecutionContext::GetSubsystemChecked ( )
inline

◆ GetSubsystemChecked() [2/2]

template<typename T , typename = typename TEnableIf<TIsDerivedFrom<T, USubsystem>::IsDerived>::Type>
const T & FMassExecutionContext::GetSubsystemChecked ( const TSubclassOf< USubsystem SubsystemClass)
inline

◆ GetWorld()

UWorld * FMassExecutionContext::GetWorld ( )

◆ IsCurrentQuery()

bool FMassExecutionContext::IsCurrentQuery ( const FMassEntityQuery Query) const
inline

◆ PopQuery()

void FMassExecutionContext::PopQuery ( const FMassEntityQuery InQuery)

◆ PushQuery()

void FMassExecutionContext::PushQuery ( FMassEntityQuery InQuery)

◆ SetAuxData()

void FMassExecutionContext::SetAuxData ( const FInstancedStruct InAuxData)
inline

◆ SetCurrentArchetypeCompositionDescriptor()

void FMassExecutionContext::SetCurrentArchetypeCompositionDescriptor ( const FMassArchetypeCompositionDescriptor Descriptor)
inline

◆ SetCurrentChunkSerialModificationNumber()

void FMassExecutionContext::SetCurrentChunkSerialModificationNumber ( const int32  SerialModificationNumber)
inline

Chunk related operations

◆ SetDeferredCommandBuffer()

void FMassExecutionContext::SetDeferredCommandBuffer ( const TSharedPtr< FMassCommandBuffer > &  InDeferredCommandBuffer)
inline

◆ SetEntityCollection() [1/2]

void FMassExecutionContext::SetEntityCollection ( const FMassArchetypeEntityCollection InEntityCollection)

◆ SetEntityCollection() [2/2]

void FMassExecutionContext::SetEntityCollection ( FMassArchetypeEntityCollection &&  InEntityCollection)

◆ SetExecutionType()

void FMassExecutionContext::SetExecutionType ( EMassExecutionContextType  InExecutionType)
inline

◆ SetFlushDeferredCommands()

void FMassExecutionContext::SetFlushDeferredCommands ( const bool  bNewFlushDeferredCommands)
inline

Sets bFlushDeferredCommands. Note that setting to True while the system is being executed doesn't result in immediate commands flushing

◆ SetFragmentRequirements()

void FMassExecutionContext::SetFragmentRequirements ( const FMassFragmentRequirements FragmentRequirements)
protected

◆ SetSubsystemRequirements()

void FMassExecutionContext::SetSubsystemRequirements ( const FMassSubsystemRequirements SubsystemRequirements)
inlineprotected

◆ ValidateAuxDataType()

template<typename TFragment >
bool FMassExecutionContext::ValidateAuxDataType ( ) const
inline

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