Navigation
API > API/Editor > API/Editor/KismetCompiler
Inheritance Hierarchy
- FGraphCompilerContext
- FKismetCompilerContext
- FRenderGridBlueprintCompilerContext
- FRigVMBlueprintCompilerContext
- FControlRigBlueprintCompilerContext
- FWidgetBlueprintCompilerContext
References
| Module | KismetCompiler |
| Header | /Engine/Source/Editor/KismetCompiler/Public/KismetCompiler.h |
| Include | #include "KismetCompiler.h" |
Syntax
class FKismetCompilerContext : public FGraphCompilerContext
Variables
| Type | Name | Description | |
|---|---|---|---|
| int32 | AverageNodeHeight | ||
| int32 | AverageNodeWidth | Average node size for nodes with no size. | |
| bool | bAssignDelegateSignatureFunction | Flag to trigger FMulticastDelegateProperty::SignatureFunction resolution in CreateClassVariablesFromBlueprint: | |
| int32: 1 | bIsFullCompile | ||
| UBlueprint * | Blueprint | ||
| TMap< UEdGraphNode *, UEdGraphNode * > | CallsIntoUbergraph | ||
| FNetNameMapping | ClassScopeNetNameMap | Map from a name to the number of times it's been 'created' (identical nodes create the same variable names, so they need something appended) | |
| FKismetCompilerOptions | CompileOptions | This struct holds the various compilation options, such as which passes to perform, whether to save intermediate results, etc. | |
| UEdGraph * | ConsolidatedEventGraph | The ubergraph; valid from roughly the start of CreateAndProcessEventGraph. | |
| TMap< UK2Node_CreateDelegate *, FDelegateInfo > | ConvertibleDelegates | ||
| TSet< FString > | CreatedFunctionNames | Names of functions created. | |
| TMap< FName, FString > | DefaultPropertyValueMap | Map from UProperties to default object values, to be fixed up after compilation is complete. | |
| TIndirectArray< FKismetFunctionContext > | FunctionList | List of functions currently allocated. | |
| FOnFunctionListCompiled | FunctionListCompiledEvent | Event that is broadcast immediately after the function list for this context has been compiled. | |
| TArray< UEdGraph * > | GeneratedFunctionGraphs | Set of function graphs generated for the class layout at compile time | |
| int32 | HorizontalNodePadding | ||
| int32 | HorizontalSectionPadding | Padding. | |
| UScriptStruct * | LinearColorStruct | ||
| TMap< UEdGraphNode *, UEdGraphNode * > | MacroGeneratedNodes | Map that can be used to find the macro node that spawned a provided node, if any. | |
| int32 | MacroRowMaxHeight | Maximum height encountered in this row; used to position the next row appropriately. | |
| int32 | MacroSpawnX | Used to space expanded macro nodes when saving intermediate results. | |
| int32 | MacroSpawnY | ||
| int32 | MaximumSpawnX | ||
| int32 | MinimumSpawnX | Maximum bounds of the spawning area. | |
| UBlueprintGeneratedClass * | NewClass | ||
| TMap< TSubclassOf< class UEdGraphNode >, FNodeHandlingFunctor * > | NodeHandlers | Map from node class to a handler functor. | |
| UObject * | OldCDO | Data that persists across CompileClassLayout/CompileFunctions calls: | |
| UBlueprintGeneratedClass * | OldClass | ||
| int32 | OldGenLinkerIdx | ||
| FLinkerLoad * | OldLinker | ||
| TMap< FName, FProperty * > | RepNotifyFunctionMap | Map from UProperties to their RepNotify graph. | |
| UScriptStruct * | RotatorStruct | ||
| UEdGraphSchema_K2 * | Schema | Schema for the graph being compiled. | |
| TMap< UEdGraphNode *, UK2Node_Event * > | SourceNodeToExpansionEvent | Source pin to latent/delegate entry point. | |
| TMap< UEdGraphPin *, UK2Node_Event * > | SourcePinToExpansionEvent | ||
| UBlueprintGeneratedClass * | TargetClass | ||
| TMap< class UTimelineTemplate *, class FProperty * > | TimelineToMemberVariableMap | Map of properties created for timelines; to aid in debug data generation. | |
| UScriptStruct * | TransformStruct | ||
| FKismetFunctionContext * | UbergraphContext | The ubergraph context; valid from the end of CreateAndProcessEventGraph. | |
| UScriptStruct * | VectorStruct | ||
| int32 | VerticalSectionPadding |
Constructors
| Type | Name | Description | |
|---|---|---|---|
FKismetCompilerContext
(
UBlueprint* SourceSketch, |
Destructors
| Type | Name | Description | |
|---|---|---|---|
Functions
| Type | Name | Description | |
|---|---|---|---|
| void | AddInterfacesFromBlueprint
(
UClass* Class |
Handles adding the implemented interface information to the class | |
| void | AdvanceMacroPlacement
(
int32 Width, |
Advances the macro position tracking. | |
| void | AutoAssignNodePosition
(
UEdGraphNode* Node |
||
| void | Build the dynamic bindings objects used to tie events to delegates at runtime | ||
| void | CheckConnectionResponse
(
const FPinConnectionResponse& Response, |
Checks a connection response, and errors if it didn't succeed (not public, users should be using MovePinLinksToIntermediate/CopyPinLinksToIntermediate instead of wrapping their own with this). | |
| void | CleanAndSanitizeClass
(
UBlueprintGeneratedClass* ClassToClean, |
Removes the properties and functions from a class, so that new ones can be created in its place | |
| void | Compile () |
Compile a blueprint into a class and a set of functions | |
| void | CompileClassLayout
(
EInternalCompilerFlags InternalFlags |
Compile the class layout of the blueprint | |
| void | CompileFunction
(
FKismetFunctionContext& Context |
Second phase of compiling a function graph | |
| void | CompileFunctions
(
EInternalCompilerFlags InternalFlags |
Compile the functions of the blueprint - must be done after compiling the class layout: | |
| FPinConnectionResponse | CopyPinLinksToIntermediate
(
UEdGraphPin& SourcePin, |
Copies pin links over from the source-pin to the specified intermediate, and validates the result (additionally logs a redirect from the intermediate-pin back to the source so we can back trace for debugging, etc.) | |
| void | CopyTermDefaultsToDefaultObject
(
UObject* DefaultObject |
Copies default values cached for the terms in the DefaultPropertyValueMap to the final CDO | |
| void | Merges pages and creates function stubs, etc... | ||
| void | Creates a class variable for each entry in the Blueprint NewVars array | ||
| void | CreateCommentBlockAroundNodes
(
const TArray< UEdGraphNode* >& Nodes, |
||
| FKismetFunctionContext * | Creates a new function context and adds it to the function list to be processed. | ||
| void | Creates a list of functions to compile | ||
| void | CreateFunctionStubForEvent
(
UK2Node_Event* Event, |
Create a stub function graph for the event node, and have it invoke the correct point in the ubergraph | |
| void | CreateLocalVariablesForFunction
(
FKismetFunctionContext& Context, |
Creates the properties on a function that store the local and event graph (if applicable) variables | |
| void | CreateParametersForFunction
(
FKismetFunctionContext& Context, |
Create the properties on a function for input/output parameters | |
| void | CreatePropertiesFromList
(
UStruct* Scope, |
Creates a property with flags including PropertyFlags in the Scope structure for each entry in the Terms array | |
| UEdGraphSchema_K2 * | CreateSchema () |
||
| FProperty * | CreateUserDefinedLocalVariableForFunction
(
const FBPVariableDescription& Variable, |
Helper function for CreateUserDefinedLocalVariablesForFunction and compilation manager's FastGenerateSkeletonClass: | |
| void | CreateUserDefinedLocalVariablesForFunction
(
FKismetFunctionContext& Context, |
Creates user defined local variables for function | |
| FProperty * | CreateVariable
(
const FName Name, |
Creates a class variable | |
| void | DetermineNodeExecLinks
(
UEdGraphNode* SourceNode, |
Discovers exec pin links for the sourcenode | |
| void | EnsureProperGeneratedClass
(
UClass*& TargetClass |
Backwards Compatability: Ensures that the passed in TargetClass is of the proper type (e.g. BlueprintGeneratedClass, AnimBlueprintGeneratedClass), and NULLs the reference if it is not | |
| void | ExpandTimelineNodes
(
UEdGraph* SourceGraph |
Expand timeline nodes into necessary nodes | |
| void | ExpandTunnelsAndMacros
(
UEdGraph* SourceGraph |
Expands any macro instances and collapses any tunnels in the nodes of SourceGraph | |
| void | ExpansionStep
(
UEdGraph* Graph, |
Expands out nodes that need it. | |
| const UK2Node_FunctionEntry * | FindLocalEntryPoint
(
const UFunction* Function |
Scan FunctionList and return Entry point, for matching one | |
| void | FinishCompilingClass
(
UClass* Class |
Handles final post-compilation setup, flags, creates cached values that would normally be set during deserialization, etc... | |
| void | FinishCompilingFunction
(
FKismetFunctionContext& Context |
Handles final post-compilation setup, flags, creates cached values that would normally be set during deserialization, etc... | |
| TSharedPtr< FKismetCompilerContext > | GetCompilerForBP
(
UBlueprint* BP, |
||
| FName | GetEventStubFunctionName
(
UK2Node_Event* SrcEventNode |
Picks the name to use for an autogenerated event stub | |
| FString | GetGuid
(
const UEdGraphNode* Node |
||
| const UEdGraphSchema_K2 * | GetSchema () |
||
| FName | Gets the unique name for this context's ExecuteUbergraph function | ||
| bool | IsNodePure
(
const UEdGraphNode* Node |
Determines if a node is pure | |
| void | MapExpansionPathToTunnelInstance
(
const UEdGraphNode* InnerExpansionNode, |
Maps the nodes in an intermediate tunnel expansion path back to the owning tunnel instance node. | |
| void | MergeUbergraphPagesIn
(
UEdGraph* Ubergraph |
Merges in any all ubergraph pages into the gathering ubergraph | |
| FPinConnectionResponse | MovePinLinksToIntermediate
(
UEdGraphPin& SourcePin, |
Moves pin links over from the source-pin to the specified intermediate, and validates the result (additionally logs a redirect from the intermediate-pin back to the source so we can back trace for debugging, etc.) | |
| FOnFunctionListCompiled & | Broadcasts a notification immediately after the function list for this context has been compiled. | ||
| void | OnNewClassSet
(
UBlueprintGeneratedClass* ClassToUse |
||
| void | OnPostCDOCompiled
(
const UObject::FPostCDOCompiledContext& Context |
||
| void | PostCDOCompiled
(
const UObject::FPostCDOCompiledContext& Context |
Called after the CDO has been generated, allows assignment of cached/derived data: | |
| void | PostCompile () |
||
| void | Gives derived classes a chance to emit debug data. | ||
| void | PostcompileFunction
(
FKismetFunctionContext& Context |
Final phase of compiling a function graph; called after all functions have had CompileFunction called | |
| void | |||
| void | PostExpansionStep
(
const UEdGraph* Graph |
Gives derived classes a chance to process post-node expansion. | |
| void | PreCompile () |
Gives derived classes a chance to hook up any custom logic. | |
| void | PrecompileFunction
(
FKismetFunctionContext& Context, |
First phase of compiling a function graph | |
| void | Used for performing custom patching during stage IX of the compilation during load. | ||
| void | PrintVerboseInformation
(
UClass* Class |
||
| void | PrintVerboseInfoStruct
(
UStruct* Struct |
||
| void | ProcessIntermediateTunnelBoundary
(
UK2Node_Tunnel* TunnelInput, |
Processes an intermediate tunnel expansion boundary. | |
| void | ProcessOneFunctionGraph
(
UEdGraph* SourceGraph, |
Merges macros/subgraphs into the graph and validates it, creating a function list entry if it's reasonable. | |
| void | PropagateValuesToCDO
(
UObject* NewCDO, |
Non virtual wrapper to encapsulate functions that occur when the CDO is ready for values: | |
| void | PruneIsolatedNodes
(
UEdGraph* InGraph, |
Prune isolated nodes given the specified graph | |
| void | Searches the function graphs and ubergraph pages for any delegate proxies, which are then registered with the compiler context. | ||
| void | RegisterCompilerForBP
(
UClass* BPClass, |
||
| void | SaveSubObjectsFromCleanAndSanitizeClass
(
FSubobjectCollection& SubObjectsToSave, |
Saves any SubObjects on the blueprint that need to survive the clean | |
| void | SetCalculatedMetaDataAndFlags
(
UFunction* Function, |
Adds metadata for a particular compiled function based on its characteristics | |
| void | Function works only if subclass of AActor or UActorComponent. | ||
| void | SetDefaultInputValueMetaData
(
UFunction* Function, |
Reflects each pin's user set, default value into the function's metadata (so it can be queried for later by CallFunction nodes, etc.) | |
| void | SetNewClass
(
UBlueprintGeneratedClass* ClassToUse |
Function used to assign the new class that will be used by the compiler | |
| void | SetPropertyDefaultValue
(
const FProperty* PropertyToSet, |
Adds a default value entry into the DefaultPropertyValueMap for the property specified | |
| NodeType * | SpawnIntermediateEventNode
(
UEdGraphNode* SourceNode, |
Spawns an intermediate event node associated with the source node (for error purposes) | |
| UEdGraph * | SpawnIntermediateFunctionGraph
(
const FString& InDesiredFunctionName, |
Spawn an intermediate function graph for this compilation using the specified desired name (and optional signature), which may be modified to make it unique. | |
| NodeType * | SpawnIntermediateNode
(
UEdGraphNode* SourceNode, |
Spawns an intermediate node associated with the source node (for error purposes) | |
| UK2Node_TemporaryVariable * | SpawnInternalVariable
(
UEdGraphNode* SourceNode, |
||
| void | SpawnNewClass
(
const FString& NewClassName |
||
| void | TransformNodes
(
FKismetFunctionContext& Context |
Performs transformations on specific nodes that require it according to the schema | |
| bool | |||
| void | Ensures that all class reference Properties are legal overrides of the parent class by checking the default value set on any PC_Class variable types. | ||
| void | Ensures that all component class overrides are legal overrides of the parent class | ||
| void | Ensures that all function graphs have valid names for compilation/replication | ||
| bool | ValidateGeneratedClass
(
UBlueprintGeneratedClass* Class |
Validates the generated class | |
| void | ValidateNoWildcardPinsInGraph
(
const UEdGraph* SourceGraph |
Checks if pin types are unresolved (e.g. still wildcards). | |
| void | ValidateSelfPinsInGraph
(
FKismetFunctionContext& Context |
Checks if self pins are connected. | |
| void | Ensures that all timelines have valid names for compilation/replication | ||
| void | Ensures that all variables have valid names for compilation/replication | ||
| void | VerifyValidOverrideEvent
(
const UEdGraph* Graph |
If a function in the graph cannot be placed as event make sure that it is not. | |
| void | VerifyValidOverrideFunction
(
const UEdGraph* Graph |
If a function in the graph cannot be overridden make sure that it is not. |
Overridden from FGraphCompilerContext
| Type | Name | Description | |
|---|---|---|---|
| bool | CanIgnoreNode
(
const UEdGraphNode* Node |
Can this node be ignored for further processing? | |
| bool | PinIsImportantForDependancies
(
const UEdGraphPin* Pin |
Does this pin potentially participate in data dependencies? | |
| void | PruneIsolatedNodes
(
const TArray< UEdGraphNode* >& RootSet, |
Prunes any nodes that weren't visited from the graph, printing out a warning | |
| bool | ShouldForceKeepNode
(
const UEdGraphNode* Node |
Should this node be kept even if it's not reached? | |
| void | ValidateLink
(
const UEdGraphPin* PinA, |
Validates that the interconnection between two pins is schema compatible | |
| void | ValidateNode
(
const UEdGraphNode* Node |
Validates that the node is schema compatible | |
| void | ValidatePin
(
const UEdGraphPin* Pin |
Validate that the wiring for a single pin is schema compatible |
Classes
| Type | Name | Description | |
|---|---|---|---|
| FDelegateInfo | |||
| FNameParameterHelper | |||
| FOnFunctionListCompiled | |||
| FSubobjectCollection |
Typedefs
| Name | Description |
|---|---|
| Super |
Constants
| Name | Description |
|---|---|
| OnPostCompile | |
| OnPreCompile |