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 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

Name
ISMEditorConstructionManager()

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 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()