13#include <initializer_list>
23struct FAddConditional;
25template<
typename T>
struct TAdd;
26template<
typename T>
struct TAddConditional;
28template <
typename... T>
struct TEntityBuilder;
111template<
typename... T>
118 static_assert(
sizeof...(T) == 0,
"Default construction is only supported for TEntityBuilder<>");
121 template<
typename... Args>
162 template<
typename U,
typename PayloadType>
173 template<
typename U,
typename PayloadType>
224 FEntityInfo Entry = EntityManager->AllocateEntity(NewType);
235template <
typename... T,
int... Indices>
247 if (bAddMutualComponents)
255 if (Entity.Data.Allocation !=
nullptr)
257 VisitTupleElements([Entity](
auto& In){ In.Apply(Entity.Data.Allocation, Entity.Data.ComponentOffset); }, this->Payload);
301 EntityManager->ChangeEntityType(EntityID,
NewMask);
304 FEntityInfo Entry = EntityManager->GetEntity(EntityID);
367 template<
typename U,
typename PayloadType>
378 template<
typename U,
typename PayloadType>
498 template<
typename PayloadType>
511 T* ComponentPtr =
static_cast<T*
>(
Header.GetValuePtr(ComponentOffset));
523 template<
typename PayloadType>
538 T* ComponentPtr =
static_cast<T*
>(
Header.GetValuePtr(ComponentOffset));
593template<
typename U,
typename PayloadType>
599template<
typename U,
typename PayloadType>
613template <
typename... T,
int... Indices>
619template <
typename... T,
int... Indices>
625template <
typename... T,
int... Indices>
631template <
typename... T,
int... Indices>
632template<
typename U,
typename PayloadType>
638template <
typename... T,
int... Indices>
639template<
typename U,
typename PayloadType>
645template <
typename... T,
int... Indices>
651template <
typename... T,
int... Indices>
657template <
typename... T,
int... Indices>
664template <
typename... T,
int... Indices>
#define check(expr)
Definition AssertionMacros.h:314
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
void RemoveAll(const TUniqueFunction< bool(const FDependsNode *)> &ShouldRemove, TArray< FDependsNode * > &Dependencies, TBitArray<> *FlagBits, bool IsSorted, EAllowShrinking ShrinkPolicy)
Definition DependsNode.cpp:614
return true
Definition ExternalRpcRegistry.cpp:601
typename UE4IntegerSequence_Private::TMakeIntegerSequenceImpl< T, N >::Type TMakeIntegerSequence
Definition IntegerSequence.h:31
UE_FORCEINLINE_HINT void VisitTupleElements(FuncType &&Func, FirstTupleType &&FirstTuple, TupleTypes &&... Tuples)
Definition Tuple.h:878
UE_INTRINSIC_CAST UE_REWRITE constexpr std::remove_reference_t< T > && MoveTemp(T &&Obj) noexcept
Definition UnrealTemplate.h:520
Definition MovieScene.Build.cs:6
Definition MovieSceneEntityManager.h:81
EMutuallyInclusiveComponentType
Definition MovieSceneEntitySystemTypes.h:100
Definition AdvancedWidgetsModule.cpp:13
@ false
Definition radaudio_common.h:23
Definition IntegerSequence.h:9
Definition Optional.h:131
constexpr OptionalType & GetValue()
Definition Optional.h:443
void Reset()
Definition Optional.h:306
Definition MovieSceneEntityBuilder.h:470
FComponentTypeID ComponentTypeID
Definition MovieSceneEntityBuilder.h:471
bool bCondition
Definition MovieSceneEntityBuilder.h:472
void Apply(FEntityAllocation *Allocation, int32 ComponentOffset)
Definition MovieSceneEntityBuilder.h:487
void AccumulateMask(FComponentMask &OutMask) const
Definition MovieSceneEntityBuilder.h:479
FAddConditional(FComponentTypeID InComponentTypeID, bool bInCondition)
Definition MovieSceneEntityBuilder.h:474
Definition MovieSceneEntityBuilder.h:433
void Apply(FEntityAllocation *Allocation, int32 ComponentOffset)
Definition MovieSceneEntityBuilder.h:444
FComponentMask BaseComponentMask
Definition MovieSceneEntityBuilder.h:434
FAddMany(const FComponentMask &InBaseComponentMask)
Definition MovieSceneEntityBuilder.h:435
void AccumulateMask(FComponentMask &OutMask) const
Definition MovieSceneEntityBuilder.h:439
Definition MovieSceneEntityBuilder.h:452
FComponentTypeID ComponentTypeID
Definition MovieSceneEntityBuilder.h:453
void AccumulateMask(FComponentMask &OutMask) const
Definition MovieSceneEntityBuilder.h:458
void Apply(FEntityAllocation *Allocation, int32 ComponentOffset)
Definition MovieSceneEntityBuilder.h:463
FAdd(FComponentTypeID InComponentTypeID)
Definition MovieSceneEntityBuilder.h:454
Definition MovieSceneEntityIDs.h:40
FComponentMask & CombineWithBitwiseAND(const FComponentMask &Other, EBitwiseOperatorFlags InFlags)
Definition MovieSceneEntityIDs.h:88
void SetAll(std::initializer_list< FComponentTypeID > InComponentTypes)
Definition MovieSceneEntityIDs.h:454
FComponentMask & CombineWithBitwiseOR(const FComponentMask &Other, EBitwiseOperatorFlags InFlags)
Definition MovieSceneEntityIDs.h:76
int32 Num() const
Definition MovieSceneEntityIDs.h:147
static FComponentMask BitwiseNOT(const FComponentMask &A)
Definition MovieSceneEntityIDs.h:115
Definition MovieSceneEntityIDs.h:174
Definition MovieSceneEntitySystemTypes.h:425
static FEntityAllocationWriteContext NewAllocation()
Definition MovieSceneEntitySystemTypes.h:428
Definition MovieSceneEntitySystemTypes.h:624
const FComponentHeader & GetComponentHeaderChecked(FComponentTypeID ComponentTypeID) const
Definition MovieSceneEntitySystemTypes.h:714
EComponentHeaderLockMode GetCurrentLockMode() const
Definition MovieSceneEntitySystemTypes.h:848
Definition MovieSceneEntityBuilder.h:204
FMovieSceneEntityID CreateEntity(FEntityManager *EntityManager, FComponentMask NewType=FComponentMask())
Definition MovieSceneEntityBuilder.h:213
FEntityRange AsRange() const
Definition MovieSceneEntitySystemTypes.h:1057
FEntityAllocation * Allocation
Definition MovieSceneEntitySystemTypes.h:1054
int32 ComponentOffset
Definition MovieSceneEntitySystemTypes.h:1055
Definition MovieSceneEntitySystemTypes.h:1064
FMovieSceneEntityID EntityID
Definition MovieSceneEntitySystemTypes.h:1066
FEntityDataLocation Data
Definition MovieSceneEntitySystemTypes.h:1065
Definition MovieSceneEntityIDs.h:302
Definition MovieSceneMutualComponentInclusivity.h:106
Definition MovieSceneEntityBuilder.h:35
FTypelessMutation & Remove(std::initializer_list< FComponentTypeID > TypeIDs)
Definition MovieSceneEntityBuilder.h:53
FComponentMask AddMask
Definition MovieSceneEntityBuilder.h:36
FTypelessMutation & Add(std::initializer_list< FComponentTypeID > TypeIDs)
Definition MovieSceneEntityBuilder.h:44
FTypelessMutation & RemoveAll()
Definition MovieSceneEntityBuilder.h:62
FComponentMask MutateType(const FComponentMask &Current) const
Definition MovieSceneEntityBuilder.h:545
FComponentMask RemoveMask
Definition MovieSceneEntityBuilder.h:37
bool bRemoveAll
Definition MovieSceneEntityBuilder.h:39
Definition MovieSceneEntityBuilder.h:76
virtual void Initialize(FEntityManager *EntityManager, const FEntityInfo &EntityInfo)=0
virtual ~IEntityBuilder()
Definition MovieSceneEntityBuilder.h:77
virtual void GenerateType(FEntityManager *EntityManager, FComponentMask &OutMask, bool &OutAddMutualComponents)=0
virtual FMovieSceneEntityID Create(FEntityManager *EntityManager)=0
Definition MovieSceneEntityBuilder.h:520
TOptional< T > Payload
Definition MovieSceneEntityBuilder.h:521
void Apply(FEntityAllocation *Allocation, int32 ComponentOffset)
Definition MovieSceneEntityBuilder.h:529
TAddConditional(TComponentTypeID< T > ComponentTypeID, PayloadType &&InPayload, bool bInCondition)
Definition MovieSceneEntityBuilder.h:524
Definition MovieSceneEntityBuilder.h:495
TAdd(TComponentTypeID< T > InComponentTypeID, PayloadType &&InPayload)
Definition MovieSceneEntityBuilder.h:499
TOptional< T > Payload
Definition MovieSceneEntityBuilder.h:496
void Apply(FEntityAllocation *Allocation, int32 ComponentOffset)
Definition MovieSceneEntityBuilder.h:504
Definition MovieSceneEntityIDs.h:283
void MutateExisting(FEntityManager *EntityManager, FMovieSceneEntityID EntityID, const FTypelessMutation &Base=FTypelessMutation())
Definition MovieSceneEntityBuilder.h:286
TEntityBuilderImpl(T &&... InArgs, bool bInAddMutualComponents)
Definition MovieSceneEntityBuilder.h:416
virtual void Initialize(FEntityManager *EntityManager, const FEntityInfo &Entity) override final
Definition MovieSceneEntityBuilder.h:253
bool bAddMutualComponents
Definition MovieSceneEntityBuilder.h:424
virtual FMovieSceneEntityID Create(FEntityManager *EntityManager) override final
Definition MovieSceneEntityBuilder.h:238
virtual void GenerateType(FEntityManager *EntityManager, FComponentMask &OutMask, bool &OutAddMutualComponents) override final
Definition MovieSceneEntityBuilder.h:243
void CreateOrUpdate(FEntityManager *EntityManager, FMovieSceneEntityID &InOutEntityID, const FTypelessMutation &Base=FTypelessMutation().RemoveAll())
Definition MovieSceneEntityBuilder.h:324
void ReplaceEntity(FEntityManager *EntityManager, FMovieSceneEntityID &InOutEntityID, FComponentMask NewType=FComponentMask())
Definition MovieSceneEntityBuilder.h:271
TTuple< T... > Payload
Definition MovieSceneEntityBuilder.h:422
Definition MovieSceneEntityBuilder.h:29
Definition MovieSceneEntityBuilder.h:113
TEntityBuilder()
Definition MovieSceneEntityBuilder.h:116
TEntityBuilder(Args &&... InTypes)
Definition MovieSceneEntityBuilder.h:122