12#include "MassCommands.generated.h"
39#if CSV_PROFILER_STATS || WITH_MASSENTITY_DEBUG
40# define DEBUG_NAME(Name) , FName(TEXT(Name))
41# define DEBUG_NAME_PARAM(Name) , const FName InDebugName = TEXT(Name)
42# define FORWARD_DEBUG_NAME_PARAM , InDebugName
44# define DEBUG_NAME(Name)
45# define DEBUG_NAME_PARAM(Name)
46# define FORWARD_DEBUG_NAME_PARAM
56 return BitSetType({ TTypes::StaticStruct()... });
61 UE::Mass::TMultiTypeList<TTypes...>::PopulateBitSet(Result);
97#if CSV_PROFILER_STATS || WITH_MASSENTITY_DEBUG
100 , DebugName(DebugName)
108 UE_DEPRECATED(5.7,
"Mass Commands: CONST Execute function is deprecated in 5.7 and will be removed by 5.9. Use Run instead.")
111 ensureMsgf(
false,
TEXT(
"FMassBatchedCommand::Execute is DEPRECATED, override Run function instead."));
139#if CSV_PROFILER_STATS || WITH_MASSENTITY_DEBUG
141 FName GetFName()
const {
return DebugName; }
150#if CSV_PROFILER_STATS || WITH_MASSENTITY_DEBUG
200#if CSV_PROFILER_STATS || WITH_MASSENTITY_DEBUG
220#if WITH_MASSENTITY_DEBUG
224 return UE::Mass::Debug::FBreakpoint::CheckDestroyEntityBreakpoints(Entity);
251#if WITH_MASSENTITY_DEBUG
270template<
typename...
TTypes>
282#if WITH_MASSENTITY_DEBUG
301template<
typename...
TTypes>
355template<
typename...
TTypes>
370#if WITH_MASSENTITY_DEBUG
382template<
typename...
TTypes>
385template<EMassCommandCheckTime CheckTime,
typename TOld,
typename TNew>
398template<
typename TOld,
typename TNew>
420#if WITH_MASSENTITY_DEBUG
500#if WITH_MASSENTITY_DEBUG
554 Instance.TargetEntities.Add(Entity);
559#if WITH_MASSENTITY_DEBUG
573 TotalSize +=
KeyValue.Value.GetAllocatedSize();
575 TotalSize +=
Data.GetAllocatedSize();
595 checkf(
EntityCollections.Num() <= 1,
TEXT(
"We expect TargetEntities to only contain archetype-less entities, ones that need to be \'build\'"));
612#if CSV_PROFILER_STATS || WITH_MASSENTITY_DEBUG
615 int32 TotalCount = 0;
618 TotalCount +=
KeyValue.Value.TargetEntities.Num();
649template<EMassCommandOperationType OpType>
693#if CSV_PROFILER_STATS || WITH_MASSENTITY_DEBUG
711#undef DEBUG_NAME_PARAM
712#undef FORWARD_DEBUG_NAME_PARAM
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
#define check(expr)
Definition AssertionMacros.h:314
#define ensureMsgf( InExpression, InFormat,...)
Definition AssertionMacros.h:465
#define checkf(expr, format,...)
Definition AssertionMacros.h:315
#define UE_AUTORTFM_ALWAYS_OPEN
Definition AutoRTFMDefines.h:114
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define TRACE_CPUPROFILER_EVENT_SCOPE(Name)
Definition CpuProfilerTrace.h:528
#define UE_MT_SCOPED_WRITE_ACCESS(AccessDetector)
Definition MTAccessDetector.h:751
EMassCommandCheckTime
Definition MassCommands.h:34
#define FORWARD_DEBUG_NAME_PARAM
Definition MassCommands.h:46
#define DEBUG_NAME(Name)
Definition MassCommands.h:44
EMassCommandOperationType
Definition MassCommands.h:21
#define DEBUG_NAME_PARAM(Name)
Definition MassCommands.h:45
T TNotNull
Definition NotNull.h:307
#define UENUM(...)
Definition ObjectMacros.h:749
UE_INTRINSIC_CAST UE_REWRITE constexpr std::remove_reference_t< T > && MoveTemp(T &&Obj) noexcept
Definition UnrealTemplate.h:520
Definition NameTypes.h:617
UE_REWRITE SizeType Num() const
Definition Array.h:1144
void Reset(SizeType NewSize=0)
Definition Array.h:2246
UE_NODEBUG UE_FORCEINLINE_HINT SizeType Add(ElementType &&Item)
Definition Array.h:2696
void Append(const TArray< OtherElementType, OtherAllocatorType > &Source)
Definition Array.h:2412
UE_NODEBUG UE_FORCEINLINE_HINT SIZE_T GetAllocatedSize(void) const
Definition Array.h:1059
UE_FORCEINLINE_HINT void Reserve(SizeType Number)
Definition Array.h:3016
Definition AndroidPlatformMisc.h:14
Definition UnrealString.h.inl:34
Definition MassCommandBuffer.cpp:17
Definition MassEntityUtils.cpp:15
FMassFragmentBitSet ConstructFragmentBitSet()
Definition MassCommands.h:67
BitSetType ConstructBitSet()
Definition MassCommands.h:52
void CreateEntityCollections(const FMassEntityManager &EntityManager, const TConstArrayView< FMassEntityHandle > Entities, const FMassArchetypeEntityCollection::EDuplicatesHandling DuplicatesHandling, TArray< FMassArchetypeEntityCollection > &OutEntityCollections)
Definition MassEntityUtils.cpp:72
FMassTagBitSet ConstructTagBitSet()
Definition MassCommands.h:73
Definition AdvancedWidgetsModule.cpp:13
static UE_API void CreateEntityRangesWithPayload(const FMassEntityManager &EntityManager, const TConstArrayView< FMassEntityHandle > Entities, const FMassArchetypeEntityCollection::EDuplicatesHandling DuplicatesHandling, FMassGenericPayloadView Payload, TArray< FMassArchetypeEntityCollectionWithPayload > &OutEntityCollections)
Definition MassArchetypeTypes.cpp:306
@ FoldDuplicates
Definition MassArchetypeTypes.h:150
Definition MassEntityTypes.h:297
SIZE_T GetAllocatedSize() const
Definition MassEntityTypes.h:983
Definition MassCommands.h:92
virtual SIZE_T GetAllocatedSize() const =0
static UE_AUTORTFM_ALWAYS_OPEN uint32 GetCommandIndex()
Definition MassCommands.h:131
EMassCommandOperationType GetOperationType() const
Definition MassCommands.h:127
virtual void Run(FMassEntityManager &EntityManager)
Definition MassCommands.h:114
bool bHasWork
Definition MassCommands.h:147
virtual ~FMassBatchedCommand()
Definition MassCommands.h:103
virtual void Reset()
Definition MassCommands.h:121
FMassBatchedCommand(EMassCommandOperationType OperationType)
Definition MassCommands.h:94
FMassBatchedCommand()=default
EMassCommandOperationType OperationType
Definition MassCommands.h:148
bool HasWork() const
Definition MassCommands.h:126
Definition MassCommands.h:159
FMassBatchedEntityCommand()=default
void Add(TArray< FMassEntityHandle > &&Entities)
Definition MassCommands.h:181
TArray< FMassEntityHandle > TargetEntities
Definition MassCommands.h:205
void Add(FMassEntityHandle Entity)
Definition MassCommands.h:167
UE_MT_DECLARE_TS_RW_ACCESS_DETECTOR(EntitiesAccessDetector)
virtual void Reset() override
Definition MassCommands.h:194
void Add(TConstArrayView< FMassEntityHandle > Entities)
Definition MassCommands.h:174
FMassBatchedEntityCommand(EMassCommandOperationType OperationType DEBUG_NAME_PARAM("BatchedEntityCommand"))
Definition MassCommands.h:163
virtual SIZE_T GetAllocatedSize() const
Definition MassCommands.h:189
Definition MassCommands.h:463
TNotNull< const UScriptStruct * > ElementType
Definition MassCommands.h:478
FMassCommandAddElement(const TNotNull< const UScriptStruct * > InElementType)
Definition MassCommands.h:466
virtual void Run(FMassEntityManager &EntityManager) override
Definition MassCommands.h:472
Definition MassCommands.h:406
UE::Mass::TMultiArray< TOthers... > Fragments
Definition MassCommands.h:454
virtual SIZE_T GetAllocatedSize() const override
Definition MassCommands.h:434
virtual void Run(FMassEntityManager &EntityManager) override
Definition MassCommands.h:439
void Add(FMassEntityHandle Entity, TOthers... InFragments)
Definition MassCommands.h:414
virtual void Reset() override
Definition MassCommands.h:428
FMassCommandAddFragmentInstances(EMassCommandOperationType OperationType=EMassCommandOperationType::Set DEBUG_NAME_PARAM("AddFragmentInstanceList"))
Definition MassCommands.h:409
const FMassFragmentBitSet FragmentsAffected
Definition MassCommands.h:455
Definition MassCommands.h:244
FMassFragmentBitSet FragmentsAffected
Definition MassCommands.h:267
virtual void Run(FMassEntityManager &EntityManager) override
Definition MassCommands.h:260
FMassCommandAddFragmentsInternal()
Definition MassCommands.h:246
Definition MassCommands.h:627
SIZE_T GetAllocatedSize() const
Definition MassCommands.h:633
UE::Mass::TMultiArray< TOthers... > Fragments
Definition MassCommands.h:639
TArray< FMassEntityHandle > TargetEntities
Definition MassCommands.h:638
FMassArchetypeSharedFragmentValues SharedFragmentValues
Definition MassCommands.h:640
FPerSharedFragmentsHashData(FMassArchetypeSharedFragmentValues &&InSharedFragmentValues)
Definition MassCommands.h:628
Definition MassCommands.h:536
virtual SIZE_T GetAllocatedSize() const override
Definition MassCommands.h:568
void Add(FMassEntityHandle Entity, FMassArchetypeSharedFragmentValues &&InSharedFragments, TOthers... InFragments)
Definition MassCommands.h:544
virtual void Run(FMassEntityManager &EntityManager) override
Definition MassCommands.h:580
FMassFragmentBitSet FragmentsAffected
Definition MassCommands.h:624
virtual void Reset() override
Definition MassCommands.h:606
TMap< uint32, FPerSharedFragmentsHashData > Data
Definition MassCommands.h:643
FMassCommandBuildEntityWithSharedFragments()
Definition MassCommands.h:539
Definition MassCommands.h:492
FMassCommandBuildEntity()
Definition MassCommands.h:495
virtual void Run(FMassEntityManager &EntityManager) override
Definition MassCommands.h:509
Definition MassCommands.h:212
FMassCommandDestroyEntities()
Definition MassCommands.h:215
virtual void Run(FMassEntityManager &EntityManager) override
Definition MassCommands.h:229
Definition MassCommands.h:275
virtual void Run(FMassEntityManager &EntityManager) override
Definition MassCommands.h:291
FMassCommandRemoveFragmentsInternal()
Definition MassCommands.h:277
FMassFragmentBitSet FragmentsAffected
Definition MassCommands.h:298
Definition MassCommands.h:651
void Add(const FExecFunction &ExecFunction)
Definition MassCommands.h:665
virtual void Run(FMassEntityManager &EntityManager) override
Definition MassCommands.h:677
TArray< FExecFunction > DeferredFunctions
Definition MassCommands.h:700
FMassDeferredCommand()
Definition MassCommands.h:655
virtual void Reset() override
Definition MassCommands.h:687
virtual SIZE_T GetAllocatedSize() const
Definition MassCommands.h:672
void Add(FExecFunction &&ExecFunction)
Definition MassCommands.h:659
Definition MassEntityHandle.h:13
Definition MassEntityManager.h:96
Definition MassEntityTypes.h:623
Definition MassCommands.h:83
@ RequiresUniqueHandling
Definition MassCommands.h:86