Grail (C++)  1.3.0
A multi-platform, modular, universal engine for embedding advanced AI in games.
grail::fsm::FiniteStateMachine Class Reference

The FiniteStateMachine class - Class representing basic Finite State Machine. More...

#include <FiniteStateMachine.hh>

Inheritance diagram for grail::fsm::FiniteStateMachine:
Collaboration diagram for grail::fsm::FiniteStateMachine:

Classes

struct  Transition
 

Public Member Functions

 FiniteStateMachine (const std::map< std::shared_ptr< State >, std::function< std::shared_ptr< State >()>> &transitionFunctions, std::shared_ptr< State > initialState, const std::string &stateMachineName="state machine")
 FiniteStateMachine - Constructor. More...
 
 FiniteStateMachine (const std::vector< Transition > &transitions, std::shared_ptr< State > initialState, const std::string &stateMachineName="state machine")
 FiniteStateMachine - Constructor. More...
 
 FiniteStateMachine (const FiniteStateMachine &other)=delete
 
 FiniteStateMachine (FiniteStateMachine &&other)=default
 
FiniteStateMachineoperator= (const FiniteStateMachine &other)=delete
 
FiniteStateMachineoperator= (FiniteStateMachine &&other)=default
 
virtual void Enter () override
 Enter - Called once after machine enters this state.
 
virtual void Update (float deltaTime) override
 Update - Performs state transition, if one is required, and runs update for resulting state.
 
std::shared_ptr< StateGetCurrentState () const
 GetCurrentStateName. More...
 
virtual const std::string & GetName () const override
 GetName. More...
 
- Public Member Functions inherited from grail::fsm::State
 State (const State &other)=default
 
 State (State &&other)=default
 
Stateoperator= (const State &other)=default
 
Stateoperator= (State &&other)=default
 
virtual void Exit ()
 Exit - Called once after machine exits this state.
 

Detailed Description

The FiniteStateMachine class - Class representing basic Finite State Machine.

Constructor & Destructor Documentation

◆ FiniteStateMachine() [1/2]

grail::fsm::FiniteStateMachine::FiniteStateMachine ( const std::map< std::shared_ptr< State >, std::function< std::shared_ptr< State >()>> &  transitionFunctions,
std::shared_ptr< State initialState,
const std::string &  stateMachineName = "state machine" 
)

FiniteStateMachine - Constructor.

Parameters
transitionFunctions- Transition functions for states. Functions should return the next state or, nullptr - if no transition is to be made.
initialState- State with which this state machine will be initialized.
stateMachineName- Name of this state machine.

◆ FiniteStateMachine() [2/2]

grail::fsm::FiniteStateMachine::FiniteStateMachine ( const std::vector< Transition > &  transitions,
std::shared_ptr< State initialState,
const std::string &  stateMachineName = "state machine" 
)

FiniteStateMachine - Constructor.

Parameters
transitions- All available transitions, from source state to destination state based on condition.
initialState- State with which this state machine will be initialized.
stateMachineName- Name of this state machine.

Member Function Documentation

◆ GetCurrentState()

std::shared_ptr< State > grail::fsm::FiniteStateMachine::GetCurrentState ( ) const

GetCurrentStateName.

Returns
Name of the current state.

◆ GetName()

const std::string & grail::fsm::FiniteStateMachine::GetName ( ) const
overridevirtual

GetName.

Returns
name associated with this state

Implements grail::fsm::State.


The documentation for this class was generated from the following files: