FSMState¶
Module: SMSystem
#include <SMState.h>
Inherits from FSMState_Base, FSMNode_Base
Description¶
State nodes that can execute Blueprint logic.
Public Functions¶
| Name | |
|---|---|
| FSMState() | |
| virtual void | Initialize(USMInstance * Instance) override |
| virtual void | InitializeGraphFunctions() override |
| virtual void | Reset() override |
| virtual void | ExecuteInitializeNodes() override |
| virtual void | ExecuteShutdownNodes() override |
| virtual bool | StartState() override |
| virtual bool | UpdateState(float DeltaSeconds) override |
| virtual bool | EndState(float DeltaSeconds, const FSMTransition * TransitionToTake =nullptr) override |
| virtual bool | TryExecuteGraphProperties(ESMGraphPropertyEvalFlags OnEvent, ESMGraphPropertyDirection InDirection) override |
| virtual void | OnStartedByInstance(USMInstance * Instance) override |
| virtual void | OnStoppedByInstance(USMInstance * Instance) override |
| virtual bool | GetValidTransition(TArray< TArray< FSMTransition * > > & OutTransitions) override |
Protected Functions¶
| Name | |
|---|---|
| virtual void | InitializeFunctionHandlers() override |
Additional inherited members¶
Public Functions inherited from FSMState_Base
| Name | |
|---|---|
| virtual void | UpdateReadStates() override |
| virtual void | ResetReadStates() |
| FSMState_Base() | |
| virtual bool | IsNodeInstanceClassCompatible(UClass * NewNodeInstanceClass) const override |
| virtual UClass * | GetDefaultNodeInstanceClass() const override |
| const TArray< FSMTransition * > & | GetOutgoingTransitions() const |
| const TArray< FSMTransition * > & | GetIncomingTransitions() const |
| void | GetAllTransitionChains(TArray< FSMTransition * > & OutTransitions) const |
| virtual bool | IsEndState() const |
| virtual bool | IsInEndState() const |
| virtual bool | HasUpdated() const |
| virtual bool | IsStateMachine() const |
| virtual bool | IsConduit() const |
| bool | IsRootNode() const |
| float | GetActiveTime() const |
| void | SetCanExecuteLogic(bool bValue) |
| bool | CanExecuteLogic() const |
| virtual bool | CanExecuteGraphProperties(ESMGraphPropertyEvalFlags OnEvent, const USMStateInstance_Base * ForTemplate, ESMGraphPropertyDirection InDirection) const override |
| 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 | |
|---|---|
| virtual TSharedPtr< FSMNodeRuntimeData > | CreateRuntimeData() const override |
| 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 |
Friends inherited from FSMState_Base
| Name | |
|---|---|
| struct | FSMTransition(FSMTransition ) |
Public Classes inherited from FSMNode_Base
| Name | |
|---|---|
| struct | FFilterGraphPropertyArgs |
Public Functions inherited from FSMNode_Base
| Name | |
|---|---|
| FSMNode_FunctionHandlers * | GetFunctionHandlers() const |
| virtual void | UpdateReadStates() |
| FSMNode_Base() | |
| virtual | ~FSMNode_Base() =default |
| FSMNode_Base(const FSMNode_Base & Node) =default | |
| FSMNode_Base & | operator=(const FSMNode_Base & Node) |
| const TSharedPtr< FSMNodeRuntimeData > & | GetRuntimeData() const |
| TSharedPtr< T > | GetRuntimeDataAs() const |
| 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 bool | IsNodeInstanceClassCompatible(UClass * NewNodeInstanceClass) const |
| 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 |
| USMNodeInstance * | GetNodeInStack(const FGuid & InTemplateGuid) const |
| virtual UClass * | GetDefaultNodeInstanceClass() 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 | CanExecuteGraphProperties(ESMGraphPropertyEvalFlags OnEvent, const class USMStateInstance_Base * ForTemplate, ESMGraphPropertyDirection InDirection) const |
| void | ExecuteGraphProperties(USMNodeInstance * ForNodeInstance, const FGuid * ForTemplateGuid) |
| void | ExecuteGraphProperties(const FFilterGraphPropertyArgs & InArgs) |
| const TArray< FSMGraphProperty_Base_Runtime * > & | GetGraphProperties() const |
| const TMap< FGuid, FSMGraphPropertyTemplateOwner > & | GetTemplateGraphProperties() const |
| virtual void | TryResetVariables() |
| virtual bool | IsDebugActive() const |
| virtual bool | WasDebugActive() const |
| virtual void | EditorShutdown() |
| virtual void | ResetGeneratedValues() |
| void | TriggerDebugBreakpoint() |
| FName | GetNodeGuidPropertyName() |
| FName | GetPathGuidPropertyName() |
Protected Functions inherited from FSMNode_Base
| Name | |
|---|---|
| virtual TSharedPtr< FSMNodeRuntimeData > | CreateRuntimeData() const |
| 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 |
| FVector2D | NodePosition |
| float | TimeInState |
| int32 | DuplicateId |
| uint8 | bIsInEndState |
| uint8 | bHasUpdated |
| uint8 | bHasInputEvents |
Protected Attributes inherited from FSMNode_Base
| Name | |
|---|---|
| FGuid | Guid |
| FGuid | OwnerGuid |
| FGuid | PathGuid |
| FString | NodeName |
| FName | TemplateName |
| TArray< FName > | StackTemplateNames |
| TArray< TObjectPtr< USMNodeInstance > > | StackNodeInstances |
| TObjectPtr< USMInstance > | OwningInstance |
| TObjectPtr< USMNodeInstance > | NodeInstance |
| TMap< FGuid, FSMGraphPropertyTemplateOwner > | TemplateVariableGraphProperties |
| TObjectPtr< UClass > | NodeInstanceClass |
Friends inherited from FSMNode_Base
| Name | |
|---|---|
| class | FSMEditorConstructionManager |
Public Functions Documentation¶
function FSMState¶
function Initialize¶
Initializes various properties and associate the node with its owning state machine instance.
Parameters:
Instance- The state machine instance used to initialize the node.
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: FSMState_Base::ExecuteShutdownNodes
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¶
virtual bool EndState(
float DeltaSeconds,
const FSMTransition * TransitionToTake =nullptr
) override
Runs the end state execution. Transition to take is so the state knows where it is going only.
Reimplements: FSMState_Base::EndState
function TryExecuteGraphProperties¶
virtual bool TryExecuteGraphProperties(
ESMGraphPropertyEvalFlags OnEvent,
ESMGraphPropertyDirection InDirection
) override
Execute desired graph properties for the given event in a given direction.
Parameters:
OnEvent- The event to execute on.
InDirection- The direction of the graph property.
Reimplements: FSMNode_Base::TryExecuteGraphProperties
function OnStartedByInstance¶
Called when the blueprint owning this node is started.
Reimplements: FSMState_Base::OnStartedByInstance
function OnStoppedByInstance¶
Called when the blueprint owning this node has stopped.
Reimplements: FSMState_Base::OnStoppedByInstance
function GetValidTransition¶
Runs through the transitions executing their graphs until a result is found. Builds an ordered list of transitions to take.
Parameters:
OutTransitions- Found transitions. 2D Array of valid paths. If the total size is more than one that means these transitions are leading to parallel states. if each path is more than one that means there are transition conduits involved.
Return: True if a valid path is found, false otherwise.
Reimplements: FSMState_Base::GetValidTransition
Protected Functions Documentation¶
function InitializeFunctionHandlers¶
Map the FunctionHandler pointer. Must be implemented per child struct!
Reimplements: FSMNode_Base::InitializeFunctionHandlers