Skip to content

ISMEditorConstructionManager¶

Module: SMSystemEditor

#include <ISMEditorConstructionManager.h>

Description¶

class ISMEditorConstructionManager;

Construction manager singleton for running construction scripts and building editor state machines.

Public Functions¶

Name
virtual ~ISMEditorConstructionManager() =default
virtual void SetEnableConstructionScripts(const bool bEnable) =0
virtual bool AreConstructionScriptsEnabled() const =0
virtual bool HasPendingConstructionScripts() const =0
virtual bool IsRunningConstructionScripts(USMBlueprint * ForBlueprint =nullptr) const =0
virtual bool IsConditionallyCompiling(USMBlueprint * ForBlueprint =nullptr) const =0
virtual void CleanupAllEditorStateMachines() =0
virtual void CleanupEditorStateMachine(USMBlueprint * InBlueprint) =0
virtual void RunAllConstructionScriptsForBlueprintImmediately(USMBlueprint * InBlueprint, bool bCleanupEditorStateMachine =true) =0
virtual void RunAllConstructionScriptsForBlueprint(UObject * InObject, const FSMConstructionConfiguration & InConfiguration =FSMConstructionConfiguration()) =0
virtual void QueueBlueprintForConditionalCompile(USMBlueprint * InBlueprint, const FSMConditionalCompileConfiguration & InConfiguration =FSMConditionalCompileConfiguration()) =0
virtual FSMEditorStateMachine & CreateEditorStateMachine(USMBlueprint * InBlueprint) =0
virtual bool TryGetEditorStateMachine(USMBlueprint * InBlueprint, FSMEditorStateMachine & OutEditorStateMachine) =0
virtual void SetAllowConstructionScriptsOnLoad(bool bAllow) =0
virtual bool AreConstructionScriptsAllowedOnLoad() const =0
virtual void SetAllowConstructionScriptsOnLoadForBlueprint(const FString & InPath, bool bValue) =0
SMSYSTEMEDITOR_API ISMEditorConstructionManager & Get()

Protected Functions¶

Public Functions Documentation¶

function ~ISMEditorConstructionManager¶

virtual ~ISMEditorConstructionManager() =default

function SetEnableConstructionScripts¶

virtual void SetEnableConstructionScripts(
    const bool bEnable
) =0

Enable or disable construction scripts. Cancels RunAllConstructionScriptsForBlueprint if false.


function AreConstructionScriptsEnabled¶

virtual bool AreConstructionScriptsEnabled() const =0

Checks if the construction manager has construction scripts enabled.


function HasPendingConstructionScripts¶

virtual bool HasPendingConstructionScripts() const =0

Checks if there are construction scripts for this frame.


function IsRunningConstructionScripts¶

virtual bool IsRunningConstructionScripts(
    USMBlueprint * ForBlueprint =nullptr
) const =0

True if construction scripts are currently running for this frame.

Parameters:

ForBlueprint
If construction scripts are running for the given blueprint. Null implies any.

Return: True if construction scripts are in progress.


function IsConditionallyCompiling¶

virtual bool IsConditionallyCompiling(
    USMBlueprint * ForBlueprint =nullptr
) const =0

True if a blueprint is conditionally compiling this frame.

Parameters:

ForBlueprint
If the given blueprint is conditionally compiling. Null implies any.

Return: True if a conditional compile is in progress.


function CleanupAllEditorStateMachines¶

virtual void CleanupAllEditorStateMachines() =0

Frees all associated memory and resets the editor state machine map.


function CleanupEditorStateMachine¶

virtual void CleanupEditorStateMachine(
    USMBlueprint * InBlueprint
) =0

Shutdown the editor instance and free node memory.

Parameters:

InBlueprint
for the editor state machine.

function RunAllConstructionScriptsForBlueprintImmediately¶

virtual void RunAllConstructionScriptsForBlueprintImmediately(
    USMBlueprint * InBlueprint,
    bool bCleanupEditorStateMachine =true
) =0

Runs all construction scripts for every node in a blueprint. This is executed on this frame and even during a compile.

Parameters:

InBlueprint
The blueprint to run all construction scripts for.
bCleanupEditorStateMachine
If the editor state machine should be cleaned up afterward. If this is false then CleanupEditorStateMachine must be called manually.

function RunAllConstructionScriptsForBlueprint¶

virtual void RunAllConstructionScriptsForBlueprint(
    UObject * InObject,
    const FSMConstructionConfiguration & InConfiguration =FSMConstructionConfiguration()
) =0

Runs all construction scripts for every node in a blueprint. This is executed on the next frame.

Parameters:

InObject
The exact blueprint or the object belonging to the blueprint to run all construction scripts for.
InConfiguration
Provided configuration for the construction run.

function QueueBlueprintForConditionalCompile¶

virtual void QueueBlueprintForConditionalCompile(
    USMBlueprint * InBlueprint,
    const FSMConditionalCompileConfiguration & InConfiguration =FSMConditionalCompileConfiguration()
) =0

Signal a blueprint should run the conditional compile operation next tick. This won't occur if the blueprint is running construction scripts.

Parameters:

InBlueprint
The state machine blueprint to run conditional compile on.
InConfiguration
The configuration of the conditional compile.

function CreateEditorStateMachine¶

virtual FSMEditorStateMachine & CreateEditorStateMachine(
    USMBlueprint * InBlueprint
) =0

Create or update a state machine for editor use.

Parameters:

InBlueprint
The blueprint owning the state machine.

Return: The editor state machine created.


function TryGetEditorStateMachine¶

virtual bool TryGetEditorStateMachine(
    USMBlueprint * InBlueprint,
    FSMEditorStateMachine & OutEditorStateMachine
) =0

Retrieve an existing editor state machine if one exists.

Parameters:

InBlueprint
The blueprint owning the state machine.
OutEditorStateMachine
The existing editor state machine if one exists. This may be invalidated if another editor state machine is added after retrieving this one.

Return: True if the state machine was found, false if it doesn't exist.


function SetAllowConstructionScriptsOnLoad¶

virtual void SetAllowConstructionScriptsOnLoad(
    bool bAllow
) =0

Allow construction scripts to run on load.

Parameters:

bAllow
If true construction scripts may run on load, otherwise they will be skipped.

function AreConstructionScriptsAllowedOnLoad¶

virtual bool AreConstructionScriptsAllowedOnLoad() const =0

Return: True if construction scripts are allowed to run on load.


function SetAllowConstructionScriptsOnLoadForBlueprint¶

virtual void SetAllowConstructionScriptsOnLoadForBlueprint(
    const FString & InPath,
    bool bValue
) =0

Signal that a blueprint should or shouldn't run its construction scripts when it is loaded. This will stay in effect until removed. This setting is overruled by SetAllowConstructionScriptsOnLoad().

Parameters:

InPath
The full path of the blueprint.
bValue
True the blueprint is allowed to run construction scripts on load, false it is not.

function Get¶

static SMSYSTEMEDITOR_API ISMEditorConstructionManager & Get()

Retrieve the Editor Construction Manager singleton.


Protected Functions Documentation¶

function ISMEditorConstructionManager¶

inline ISMEditorConstructionManager()