Navigation
API > API/Editor > API/Editor/UnrealEd
| Name | FBlueprintCompileReinstancer |
| Type | class |
| Header File | /Engine/Source/Editor/UnrealEd/Public/Kismet2/KismetReinstanceUtilities.h |
| Include Path | #include "Kismet2/KismetReinstanceUtilities.h" |
Syntax
class FBlueprintCompileReinstancer :
public TSharedFromThis< FBlueprintCompileReinstancer > ,
public FGCObject
Inheritance Hierarchy
- FSharedFromThisBase → TSharedFromThis → FBlueprintCompileReinstancer
- FGCObject → FBlueprintCompileReinstancer
Constructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
| Default constructor, can only be used by derived classes | Kismet2/KismetReinstanceUtilities.h | ||
FBlueprintCompileReinstancer
(
UClass* InClassToReinstance, |
Sets the reinstancer up to work on every object of the specified class | Kismet2/KismetReinstanceUtilities.h |
Destructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual ~FBlueprintCompileReinstancer() |
Kismet2/KismetReinstanceUtilities.h |
Structs
| Name | Remarks |
|---|---|
| FReinstancingState |
Enums
Protected
| Name | Remarks |
|---|---|
| EReinstClassType | Cached value, mostly used to determine if we're explicitly targeting the skeleton class or not |
Constants
| Name | Type | Remarks | Include Path |
|---|---|---|---|
| CompiledBlueprintsToSave | TSet< TWeakObjectPtr< UBlueprint > > | Kismet2/KismetReinstanceUtilities.h | |
| HotReloadedNewClass | UClass * | Kismet2/KismetReinstanceUtilities.h | |
| HotReloadedOldClass | UClass * | Kismet2/KismetReinstanceUtilities.h |
Functions
Public
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual void BlueprintWasRecompiled
(
UBlueprint* BP, |
Kismet2/KismetReinstanceUtilities.h | ||
| Kismet2/KismetReinstanceUtilities.h | |||
void GenerateFieldMappings
(
TMap< FFieldVariant, FFieldVariant >& FieldMapping |
Helper to gather mappings from the old class's fields to the new class's version | Kismet2/KismetReinstanceUtilities.h | |
virtual bool IsClassObjectReplaced() |
Kismet2/KismetReinstanceUtilities.h | ||
void PropagateSparseClassDataToNewClass
(
UClass* NewClass |
Copies an owned sparse class data instance to a new class and frees any owned SCD | Kismet2/KismetReinstanceUtilities.h | |
void ReinstanceObjects
(
bool bForceAlwaysReinstance |
Reinstances all objects in the ObjectReinstancingMap | Kismet2/KismetReinstanceUtilities.h | |
void SaveClassFieldMapping
(
UClass* InClassToReinstance |
Saves a mapping of field names to their UField equivalents, so we can remap any bytecode that references them later | Kismet2/KismetReinstanceUtilities.h | |
void SaveSparseClassData
(
const UClass* ForClass |
Populates SCDSnapshot, for use via PropagateSparseClassDataToNewClass | Kismet2/KismetReinstanceUtilities.h | |
void TakeOwnershipOfSparseClassData
(
UClass* ForClass |
Instructs the reinstancer to take ownership of the sparse class data - doing so will make it difficult to identify archetype data | Kismet2/KismetReinstanceUtilities.h | |
void UpdateBytecodeReferences
(
TSet< UBlueprint* >& OutDependentBlueprints, |
Updates references to properties and functions of the class that has in the bytecode of dependent blueprints | Kismet2/KismetReinstanceUtilities.h | |
void VerifyReplacement() |
Verify that all instances of the duplicated class have been replaced and collected | Kismet2/KismetReinstanceUtilities.h |
Overridden from FGCObject
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual void AddReferencedObjects
(
FReferenceCollector& Collector |
Kismet2/KismetReinstanceUtilities.h | ||
virtual FString GetReferencerName() |
Kismet2/KismetReinstanceUtilities.h |
Protected
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
void CompileChildren() |
Kismet2/KismetReinstanceUtilities.h | ||
bool IsReinstancingSkeleton() |
Kismet2/KismetReinstanceUtilities.h | ||
TSharedPtr< FReinstanceFinalizer > ReinstanceFast() |
Kismet2/KismetReinstanceUtilities.h | ||
TSharedPtr< FReinstanceFinalizer > ReinstanceInner
(
bool bForceAlwaysReinstance |
Kismet2/KismetReinstanceUtilities.h | ||
void ReparentChild
(
UClass* ChildClass |
Kismet2/KismetReinstanceUtilities.h | ||
void ReparentChild
(
UBlueprint* ChildBP |
Reparents the specified blueprint or class to be the duplicated class in order to allow properties to be copied from the previous CDO to the new one | Kismet2/KismetReinstanceUtilities.h | |
virtual bool ShouldPreserveRootComponentOfReinstancedActor() |
Determine whether reinstancing actors should preserve the root component of the new actor | Kismet2/KismetReinstanceUtilities.h |
Static
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
static void BatchReplaceInstancesOfClass
(
const TMap< UClass*, UClass* >& InOldToNewClassMap, |
Batch replaces a mapping of one or more classes to their new class | Kismet2/KismetReinstanceUtilities.h | |
static void BatchReplaceInstancesOfClass
(
TMap< UClass*, UClass* >& InOldToNewClassMap, |
Kismet2/KismetReinstanceUtilities.h | ||
| Helper for caching archetypes before objects are reconstructed | Kismet2/KismetReinstanceUtilities.h | ||
static FBlake3Hash CalculateConstructionHash
(
const UClass* ForClass |
Returns a hash identifying the result of constructing an instance of the provided Class | Kismet2/KismetReinstanceUtilities.h | |
static FBlake3Hash CalculateConstructionHashIfNecessary
(
const UClass* ForClass |
Returns the above, but only if there are instances of the class that would require reinstancing | Kismet2/KismetReinstanceUtilities.h | |
| Kismet2/KismetReinstanceUtilities.h | |||
| Kismet2/KismetReinstanceUtilities.h | |||
| Kismet2/KismetReinstanceUtilities.h | |||
| Attempts to copy as many properties as possible from the old object to the new. | Kismet2/KismetReinstanceUtilities.h | ||
static TSharedPtr< FBlueprintCompileReinstancer > Create
(
UClass* InClassToReinstance, |
Kismet2/KismetReinstanceUtilities.h | ||
static void FinishUpdateBytecodeReferences
(
const TSet< UBlueprint* >& DependentBPs, |
Consumes the set and map populated by calls to UpdateBytecodeReferences | Kismet2/KismetReinstanceUtilities.h | |
| Kismet2/KismetReinstanceUtilities.h | |||
| Gathers the full class Hierarchy of the ClassToSearch, sorted top down (0 index being UObject, n being the subclasses) | Kismet2/KismetReinstanceUtilities.h | ||
static bool IsReinstClass
(
const UClass* Class |
Returns true if the given class is a REINST class (starts with the 'REINST_' prefix) | Kismet2/KismetReinstanceUtilities.h | |
| Function used to safely discard a CDO, so that the class can have its layout changed, callers must move parent CDOs aside before moving child CDOs aside: | Kismet2/KismetReinstanceUtilities.h | ||
static void MoveDependentSkelToReinst
(
UClass* OwnerClass, |
Moves CDOs aside to immutable versions of classes(`REINST_) so that the CDO's can safely be GC'd. | Kismet2/KismetReinstanceUtilities.h | |
static void OptionallyRefreshNodes
(
UBlueprint* BP |
Kismet2/KismetReinstanceUtilities.h | ||
static void PreCreateSubObjectsForReinstantiation
(
const TMap< UClass*, UClass* >& OldToNewClassMap, |
This method will pre-create all non-default sub object needed for a re-instantiation, what is left is to CopyPropertiesForUnrelatedObjects on the created instances map to finish the re-instancing If the re-instancing is done in a big batch and part to the sub object might already be re-instantiated, you will need to provide those via the OldToNewInstanceMap | Kismet2/KismetReinstanceUtilities.h | |
static void PreCreateSubObjectsForReinstantiation_Inner
(
const TSet< UObject* >* OldInstancedSubObjects, |
Handles the sub object pre-creation recursively | Kismet2/KismetReinstanceUtilities.h | |
| Pre-populate instancing graph for a specified instance if needed | Kismet2/KismetReinstanceUtilities.h | ||
static void ReconstructOwnerInstances
(
TSubclassOf< UActorComponent > ComponentClass |
When re-instancing a component, we have to make sure all instance owners' construction scripts are re-ran (in-case modifying the component alters the construction of the actor). | Kismet2/KismetReinstanceUtilities.h | |
| Kismet2/KismetReinstanceUtilities.h | |||
| Kismet2/KismetReinstanceUtilities.h | |||
| Returns true if A is higher up the class hierarchy | Kismet2/KismetReinstanceUtilities.h | ||
static void ReinstanceWithVersioningData
(
const FReinstancingState& ReinstancingState |
Kismet2/KismetReinstanceUtilities.h | ||
static void ReplaceInstancesOfClass
(
UClass* OldClass, |
Replace all instances of OldClass with a new instance of NewClass | Kismet2/KismetReinstanceUtilities.h | |
static void ReplaceInstancesOfClass
(
UClass* OldClass, |
@todo_deprecated - To be removed in a future release. | Kismet2/KismetReinstanceUtilities.h | |
static void ReplaceInstancesOfClass_Inner
(
const TMap< UClass*, UClass* >& InOldToNewClassMap, |
Handles the work of ReplaceInstancesOfClass, handling both normal replacement of instances and batch | Kismet2/KismetReinstanceUtilities.h | |
static void ReplaceInstancesOfClassEx
(
const FReplaceInstancesOfClassParameters& Parameters |
Kismet2/KismetReinstanceUtilities.h | ||
static void ReplaceObjectHelper
(
UObject*& OldObject, |
Helper to replace an instance of an object | Kismet2/KismetReinstanceUtilities.h | |
| Kismet2/KismetReinstanceUtilities.h | |||
static bool ShouldReinstanceActor
(
const AActor* OldActor |
Kismet2/KismetReinstanceUtilities.h | ||
| Kismet2/KismetReinstanceUtilities.h | |||
| Kismet2/KismetReinstanceUtilities.h |