FSMConduit¶
Module: SMSystem
#include <SMConduit.h>
Inherits from FSMState_Base, FSMNode_Base
Description¶
A conduit can either be configured to run as a state or as a transition. Internally it consists of a single transition that must be true before outgoing transitions evaluate.
Public Functions¶
Name | |
---|---|
FSMConduit() | |
virtual void | Initialize(UObject * Instance) override |
virtual void | InitializeGraphFunctions() override |
virtual void | Reset() override |
virtual void | ExecuteInitializeNodes() override |
virtual void | ExecuteShutdownNodes() override |
virtual bool | CanExecuteGraphProperties(uint32 OnEvent, const USMStateInstance_Base * ForTemplate) const override |
virtual bool | IsNodeInstanceClassCompatible(UClass * NewNodeInstanceClass) const override |
virtual UClass * | GetDefaultNodeInstanceClass() const override |
virtual bool | StartState() override |
virtual bool | UpdateState(float DeltaSeconds) override |
virtual bool | EndState(float DeltaSeconds, const FSMTransition * TransitionToTake) override |
virtual bool | IsConduit() const override |
virtual bool | GetValidTransition(TArray< TArray< FSMTransition * > > & Transitions) override |
bool | IsConfiguredAsTransition() const |
void | EnterConduitWithTransition() |
virtual bool | IsDebugActive() const override |
virtual bool | WasDebugActive() const override |
Protected Functions¶
Name | |
---|---|
virtual void | InitializeFunctionHandlers() override |
Public Attributes¶
Name | |
---|---|
uint8 | bCanEnterTransition |
uint8 | bCanEvaluate |
uint8 | bEvalWithTransitions |
ESMConditionalEvaluationType | ConditionalEvaluationType |
bool | bIsEvaluating |
bool | bWasEvaluating |
Additional inherited members¶
Public Functions inherited from FSMState_Base
Name | |
---|---|
virtual void | UpdateReadStates() override |
virtual void | ResetReadStates() |
FSMState_Base() | |
const TArray< FSMTransition * > & | GetOutgoingTransitions() const |
const TArray< FSMTransition * > & | GetIncomingTransitions() const |
void | GetAllTransitionChains(TArray< FSMTransition * > & OutTransitions) const |
virtual void | OnStartedByInstance(USMInstance * Instance) override |
virtual void | OnStoppedByInstance(USMInstance * Instance) override |
virtual bool | IsEndState() const |
virtual bool | IsInEndState() const |
virtual bool | HasUpdated() const |
virtual bool | IsStateMachine() const |
bool | IsRootNode() const |
float | GetActiveTime() const |
void | SetCanExecuteLogic(bool bValue) |
bool | CanExecuteLogic() const |
bool | CanEvaluateTransitionsOnTick() const |
void | SortTransitions() |
void | SetTransitionToTake(const FSMTransition * Transition) |
const FSMTransition * | GetTransitionToTake() const |
void | SetPreviousActiveState(FSMState_Base * InPreviousState) |
void | SetPreviousActiveTransition(FSMTransition * InPreviousTransition) |
FSMState_Base * | GetPreviousActiveState() const |
FSMTransition * | GetPreviousActiveTransition() const |
void | NotifyOfParallelReentry(bool bValue =true) |
bool | HasBeenReenteredFromParallelState() const |
bool | IsStateEnding() const |
const FDateTime & | GetStartTime() const |
const FDateTime & | GetEndTime() const |
virtual void | SetStartTime(const FDateTime & InStartTime) |
virtual void | SetEndTime(const FDateTime & InEndTime) |
double | GetStartCycle() const |
virtual void | ResetGeneratedValues() override |
Protected Functions inherited from FSMState_Base
Name | |
---|---|
void | AddOutgoingTransition(FSMTransition * Transition) |
void | AddIncomingTransition(FSMTransition * Transition) |
void | InitializeTransitions() |
void | ShutdownTransitions() |
virtual void | NotifyInstanceStateHasStarted() |
virtual void | FirePreStartEvents() |
virtual void | FirePostStartEvents() |
Public Attributes inherited from FSMState_Base
Name | |
---|---|
uint16 | bIsRootNode |
uint16 | bAlwaysUpdate |
uint16 | bEvalTransitionsOnStart |
uint16 | bDisableTickTransitionEvaluation |
uint16 | bStayActiveOnStateChange |
uint16 | bAllowParallelReentry |
uint16 | bCanBeEndState |
Protected Attributes inherited from FSMState_Base
Name | |
---|---|
uint16 | bReenteredByParallelState |
uint16 | bCanExecuteLogic |
uint16 | bIsStateEnding |
FSMState_Base * | PreviousActiveState |
FSMTransition * | PreviousActiveTransition |
FDateTime | StartTime |
FDateTime | EndTime |
Friends inherited from FSMState_Base
Name | |
---|---|
struct | FSMTransition(FSMTransition ) |
Public Functions inherited from FSMNode_Base
Name | |
---|---|
const FSMNode_FunctionHandlers * | GetFunctionHandlers() const |
virtual void | UpdateReadStates() |
FSMNode_Base() | |
virtual | ~FSMNode_Base() =default |
FSMNode_Base(const FSMNode_Base & Node) =default | |
virtual void | OnStartedByInstance(USMInstance * Instance) |
virtual void | OnStoppedByInstance(USMInstance * Instance) |
bool | HaveGraphFunctionsInitialized() const |
bool | IsInitializedForRun() const |
const FGuid & | GetNodeGuid() const |
void | GenerateNewNodeGuid() |
const FGuid & | GetGuid() const |
virtual void | CalculatePathGuid(TMap< FString, int32 > & InOutMappedPaths, bool bUseGuidCache =false) |
FString | GetGuidPath(TMap< FString, int32 > & InOutMappedPaths) const |
FGuid | CalculatePathGuidConst() const |
void | GenerateNewNodeGuidIfNotSet() |
void | SetNodeGuid(const FGuid & NewGuid) |
void | SetOwnerNodeGuid(const FGuid & NewGuid) |
const FGuid & | GetOwnerNodeGuid() const |
void | SetOwnerNode(FSMNode_Base * Owner) |
virtual FSMNode_Base * | GetOwnerNode() const |
USMInstance * | GetOwningInstance() const |
void | CreateNodeInstance() |
void | CreateStackInstances() |
virtual void | RunConstructionScripts() |
void | SetNodeInstanceClass(UClass * NewNodeInstanceClass) |
virtual USMNodeInstance * | GetNodeInstance() const |
virtual USMNodeInstance * | GetOrCreateNodeInstance() |
virtual bool | CanEverCreateNodeInstance() const |
const TArray< TObjectPtr< USMNodeInstance > > & | GetStackInstancesConst() const |
TArray< TObjectPtr< USMNodeInstance > > & | GetStackInstances() |
USMNodeInstance * | GetNodeInStack(int32 Index) const |
UClass * | GetNodeInstanceClass() const |
bool | IsUsingDefaultNodeClass() const |
void | AddVariableGraphProperty(const FSMGraphProperty_Base_Runtime & GraphProperty, const FGuid & OwningTemplateGuid) |
void | SetNodeName(const FString & Name) |
const FString & | GetNodeName() const |
void | SetTemplateName(const FName & Name) |
FName | GetTemplateName(USMNodeInstance * InNodeInstance =nullptr) const |
void | AddStackTemplateName(const FName & Name, UClass * TemplateClass) |
virtual bool | IsActive() const |
virtual void | SetServerTimeInState(float InTime) |
float | GetServerTimeInState() const |
virtual bool | TryExecuteGraphProperties(uint32 OnEvent) |
void | ExecuteGraphProperties(USMNodeInstance * ForNodeInstance, const FGuid * ForTemplateGuid) |
const TArray< FSMGraphProperty_Base_Runtime * > & | GetGraphProperties() const |
const TMap< FGuid, FSMGraphPropertyTemplateOwner > & | GetTemplateGraphProperties() const |
virtual void | TryResetVariables() |
virtual void | EditorShutdown() |
virtual void | ResetGeneratedValues() |
FName | GetNodeGuidPropertyName() |
Protected Functions inherited from FSMNode_Base
Name | |
---|---|
virtual void | PrepareGraphExecution() |
virtual void | SetActive(bool bValue) |
void | CreateGraphProperties() |
void | CreateGraphPropertiesForTemplate(USMNodeInstance * Template, const TMap< FGuid, FSMGraphProperty_Base_Runtime * > & MappedGraphPropertyInstances) |
Public Attributes inherited from FSMNode_Base
Name | |
---|---|
bool | bValidateGuids |
float | TimeInState |
bool | bIsInEndState |
bool | bHasUpdated |
int32 | DuplicateId |
FVector2D | NodePosition |
uint8 | bHasInputEvents |
bool | bWasActive |
Protected Attributes inherited from FSMNode_Base
Name | |
---|---|
FSMNode_FunctionHandlers * | FunctionHandlers |
FGuid | Guid |
FGuid | OwnerGuid |
FGuid | PathGuid |
FSMNode_Base * | OwnerNode |
FString | NodeName |
FName | TemplateName |
TArray< FName > | StackTemplateNames |
TArray< TObjectPtr< USMNodeInstance > > | StackNodeInstances |
TArray< TObjectPtr< UClass > > | NodeStackClasses |
TObjectPtr< USMInstance > | OwningInstance |
TObjectPtr< USMNodeInstance > | NodeInstance |
TArray< FSMGraphProperty_Base_Runtime * > | GraphProperties |
TMap< FGuid, FSMGraphPropertyTemplateOwner > | TemplateVariableGraphProperties |
TObjectPtr< UClass > | NodeInstanceClass |
Friends inherited from FSMNode_Base
Name | |
---|---|
class | FSMEditorConstructionManager |
Public Functions Documentation¶
function
FSMConduit¶
function
Initialize¶
Initialize specific properties and node instances.
Reimplements: FSMState_Base::Initialize
function
InitializeGraphFunctions¶
Initialize all graph evaluator functions. Must be called from GameThread!
Reimplements: FSMState_Base::InitializeGraphFunctions
function
Reset¶
Resets persistent data.
Reimplements: FSMState_Base::Reset
function
ExecuteInitializeNodes¶
Reimplements: FSMState_Base::ExecuteInitializeNodes
function
ExecuteShutdownNodes¶
Reimplements: FSMNode_Base::ExecuteShutdownNodes
function
CanExecuteGraphProperties¶
virtual bool CanExecuteGraphProperties(
uint32 OnEvent,
const USMStateInstance_Base * ForTemplate
) const override
Check if the state can execute its graph properties.
Reimplements: FSMState_Base::CanExecuteGraphProperties
function
IsNodeInstanceClassCompatible¶
Derived nodes should overload and check for the correct type.
Reimplements: FSMState_Base::IsNodeInstanceClassCompatible
function
GetDefaultNodeInstanceClass¶
The default node instance class. Each derived node class needs to implement.
Reimplements: FSMState_Base::GetDefaultNodeInstanceClass
function
StartState¶
Sets the state as active and begins execution.
Reimplements: FSMState_Base::StartState
function
UpdateState¶
Runs the update execution.
Reimplements: FSMState_Base::UpdateState
function
EndState¶
Runs the end state execution. Transition to take is so the state knows where it is going only.
Reimplements: FSMState_Base::EndState
function
IsConduit¶
Easy way to check if this state struct is a conduit.
Reimplements: FSMState_Base::IsConduit
function
GetValidTransition¶
Evaluate the conduit and retrieve the correct condition.
Reimplements: FSMState_Base::GetValidTransition
function
IsConfiguredAsTransition¶
Should this be considered an extension to a transition?
function
EnterConduitWithTransition¶
Signal that this conduit is being entered along with transitions.
function
IsDebugActive¶
Reimplements: FSMNode_Base::IsDebugActive
function
WasDebugActive¶
Reimplements: FSMNode_Base::WasDebugActive
Protected Functions Documentation¶
function
InitializeFunctionHandlers¶
Map the FunctionHandler pointer. Must be implemented per child struct!
Reimplements: FSMNode_Base::InitializeFunctionHandlers
Public Attributes Documentation¶
variable
bCanEnterTransition¶
Set from graph execution.
variable
bCanEvaluate¶
Set from graph execution or configurable from details panel. Must be true for the conduit to be evaluated.
variable
bEvalWithTransitions¶
This conduit will be evaluated with inbound and outbound transitions. If any transition fails the entire transition fails. In that case the state leading to this conduit will not take this transition.
variable
ConditionalEvaluationType¶
The conditional evaluation type which determines the type of evaluation required if any.
variable
bIsEvaluating¶
variable
bWasEvaluating¶
Helper to display evaluation color in the editor.