90 bool bRequiredForPawnReady,
91 const TArray<UActorComponent*>& Dependencies);
100 GAMEPLAYRUNTIME_API
bool
118 virtual void Deinitialize()
override;
121 friend class UPawnInitializationComponent;
122 bool HasConfiguredId(
const AActor* Owner, FName ComponentId)
const;
123 void StopConfiguredParticipants(
const TArray<UActorComponent*>& Components);
124 using FComponentPtr = TWeakObjectPtr<UActorComponent>;
125 TSet<FComponentPtr> RegisteredComponents;
126 TSet<FComponentPtr> StoppedComponents;
127 bool bShuttingDown =
false;
128 struct FConfiguredParticipant
130 TWeakObjectPtr<AActor> Owner;
132 bool bRequiredForPawnReady =
true;
133 TArray<FComponentPtr> Dependencies;
135 TMap<FComponentPtr, FConfiguredParticipant> ConfiguredComponents;
136 TMap<FComponentPtr, TArray<FComponentPtr>> ForwardDependencies;
137 TMap<FComponentPtr, TArray<FComponentPtr>> ReverseDependencies;
138 TMap<TWeakObjectPtr<AActor>, TArray<FComponentPtr>> RequiredByOwner;
139 TMap<FComponentPtr, int32> ReadyGroupByComponent;
140 TArray<TArray<FComponentPtr>> ReadyGroups;
141 uint64 GraphVersion = 0;
142 int32 GraphEdgeCount = 0;
143 TArray<FComponentPtr> PendingQueue;
144 TSet<FComponentPtr> QueuedComponents;
145 TSet<TWeakObjectPtr<AActor>> PendingOwners;
146 bool bProcessing =
false;
147 bool bInvalidatingDependents =
false;
148 void RebuildDependencyGraph();
149 void QueueParticipant(UActorComponent* Component);
150 void QueueParticipantAndDependents(UActorComponent* Component);
151 void QueueAllRegistered();
152 void ProcessParticipants();
153 bool TryCommitReadyGroup(UActorComponent* Root);
154 void InvalidateConfiguredDependents(UActorComponent* Component);
GAMEPLAYRUNTIME_API bool ConfigureParticipant(UActorComponent *Component, FName ComponentId, bool bRequiredForPawnReady, const TArray< UActorComponent * > &Dependencies)
Installs the manager's immutable configuration for a component.