Section 3.8. rdActor – Pooling

// [rdInst v1.10] Allocates "numToPool" number of the componentClass for rapid reuse
void rdPoolComponent(UClass* compClass,int32 numToPool,bool premake);

// [rdInst v1.10] ReAllocates "numToPool" number of the compClass
bool rdSetComponentPoolSize(UClass* compClass,int32 numToPool,bool premake);

// [rdInst v1.10] Removes the Pool of Components for the compClass
void rdRemoveComponentPool(UClass* compClass);

// [rdInst v1.10] Gets the next free compClass in the Component Pool, returns nullptr if none are free
UActorComponent* rdGetComponentFromPool(TSubclassOf<class UActorComponent> compClass);

// [rdInst v1.10] Removes an allocated Component from the Component Pool
void rdRemoveComponentFromPool(UActorComponent* comp);

// [rdInst v1.35] Event called when an actor is created from the pool
void rdOnActorPooled(AActor* actor);

// [rdInst v1.35] Event called when an actor is removed back to the pool
void rdOnActorDepooled(AActor* actor);

// [rdInst v1.20] Event called when a component is created from the pool
void rdOnCompPooled(AActor* actor,UActorComponent* comp);

// [rdInst v1.20] Event called when a component is removed back to the pool
void rdOnCompDepooled(AActor* actor,UActorComponent* comp);