Module StateMachine
This module contains the STATEMACHINE class.
This development is based on a state machine implementation made by Conroy Kyle. The state machine can be found here: https://github.com/kyleconroy/lua-state-machine
I've taken the development and enhanced it to make the state machine hierarchical... It is a fantastic development, this module.
1) Workflow#STATEMACHINE class, extends Base#BASE
1.1) Add or remove objects from the STATEMACHINE
Global(s)
| STATEMACHINE | |
| STATEMACHINE_CONTROLLABLE | |
| STATEMACHINE_PROCESS | |
| STATEMACHINE_SET | |
| STATEMACHINE_TASK |
Type STATEMACHINE
Type STATEMACHINE_CONTROLLABLE
| STATEMACHINE_CONTROLLABLE.ClassName | |
| STATEMACHINE_CONTROLLABLE.Controllable | |
| STATEMACHINE_CONTROLLABLE:GetControllable() |
Gets the CONTROLLABLE object that the STATEMACHINE_CONTROLLABLE governs. |
| STATEMACHINE_CONTROLLABLE:New(FSMT, Controllable) |
Creates a new STATEMACHINE_CONTROLLABLE object. |
| STATEMACHINE_CONTROLLABLE:SetControllable(Controllable, FSMControllable) |
Sets the CONTROLLABLE object that the STATEMACHINE_CONTROLLABLE governs. |
| STATEMACHINE_CONTROLLABLE:_call_handler(handler, params) |
Type STATEMACHINE_PROCESS
| STATEMACHINE_PROCESS.ClassName | |
| STATEMACHINE_PROCESS:New(FSMT) |
Creates a new STATEMACHINE_PROCESS object. |
| STATEMACHINE_PROCESS.Process | |
| STATEMACHINE_PROCESS:_call_handler(handler, params) |
Type STATEMACHINE_SET
| STATEMACHINE_SET.ClassName | |
| STATEMACHINE_SET:Get() |
Gets the SETBASE object that the STATEMACHINESET governs. |
| STATEMACHINE_SET:New(FSMT, Set_SET_BASE, FSMSet) |
Creates a new STATEMACHINE_SET object. |
| STATEMACHINE_SET.Set | |
| STATEMACHINE_SET:_call_handler(handler, params) |
Type STATEMACHINE_TASK
| STATEMACHINE_TASK.ClassName | |
| STATEMACHINE_TASK:New(FSMT, Task, TaskUnit) |
Creates a new STATEMACHINE_TASK object. |
| STATEMACHINE_TASK.Task | |
| STATEMACHINE_TASK:_call_handler(handler, params) |
Global(s)
Type StateMachine
Type STATEMACHINE
STATEMACHINE class
Field(s)
- #string STATEMACHINE.ClassName
- STATEMACHINE:LoadCallBacks(CallBackTable)
-
Parameter
-
CallBackTable:
-
- STATEMACHINE:New(options)
-
Creates a new STATEMACHINE object.
Parameter
-
options:
Return value
-
- STATEMACHINE:_add_to_map(map, event)
-
Parameters
-
map: -
event:
-
- STATEMACHINE:_call_handler(handler, params)
-
Parameters
-
handler: -
params:
-
- STATEMACHINE:_create_transition(EventName)
-
Parameter
-
EventName:
-
- STATEMACHINE:_delayed_transition(EventName)
-
Parameter
-
EventName:
-
- STATEMACHINE:_gosub(parentstate, parentevent)
-
Parameters
-
parentstate: -
parentevent:
-
- STATEMACHINE:_handler(EventName, ...)
-
Parameters
-
EventName: -
...:
-
- STATEMACHINE:_isendstate(state)
-
Parameter
-
state:
-
- STATEMACHINE:_submap(subs, sub, name)
-
Parameters
-
subs: -
sub: -
name:
-
- STATEMACHINE:can(e)
-
Parameter
-
e:
-
- STATEMACHINE:cannot(e)
-
Parameter
-
e:
-
- STATEMACHINE:is(state)
-
Parameter
-
state:
-
- STATEMACHINE:todot(filename)
-
Parameter
-
filename:
-
Type STATEMACHINE_CONTROLLABLE
STATEMACHINE_CONTROLLABLE class
Field(s)
- STATEMACHINE_CONTROLLABLE:GetControllable()
-
Gets the CONTROLLABLE object that the STATEMACHINE_CONTROLLABLE governs.
Return value
- STATEMACHINE_CONTROLLABLE:New(FSMT, Controllable)
-
Creates a new STATEMACHINE_CONTROLLABLE object.
Parameters
-
#table FSMT: Finite State Machine Table -
Controllable#CONTROLLABLE Controllable: (optional) The CONTROLLABLE object that the STATEMACHINE_CONTROLLABLE governs.
Return value
-
- STATEMACHINE_CONTROLLABLE:SetControllable(Controllable, FSMControllable)
-
Sets the CONTROLLABLE object that the STATEMACHINE_CONTROLLABLE governs.
Parameters
-
Controllable#CONTROLLABLE Controllable: -
FSMControllable:
Return value
-
- STATEMACHINE_CONTROLLABLE:_call_handler(handler, params)
-
Parameters
-
handler: -
params:
-
Type STATEMACHINE_PROCESS
STATEMACHINE_PROCESS class
Field(s)
- #string STATEMACHINE_PROCESS.ClassName
- STATEMACHINE_PROCESS:New(FSMT)
-
Creates a new STATEMACHINE_PROCESS object.
Parameter
-
FSMT:
Return value
-
- STATEMACHINE_PROCESS:_call_handler(handler, params)
-
Parameters
-
handler: -
params:
-
Type STATEMACHINE_SET
STATEMACHINE_SET class
Field(s)
- #string STATEMACHINE_SET.ClassName
- STATEMACHINE_SET:Get()
-
Gets the SETBASE object that the STATEMACHINESET governs.
Return value
- STATEMACHINE_SET:New(FSMT, Set_SET_BASE, FSMSet)
-
Creates a new STATEMACHINE_SET object.
Parameters
-
#table FSMT: Finite State Machine Table -
SetSETBASE: FSMSet (optional) The Set object that the STATEMACHINE_SET governs. -
FSMSet:
Return value
-
- STATEMACHINE_SET:_call_handler(handler, params)
-
Parameters
-
handler: -
params:
-
Type STATEMACHINE_TASK
STATEMACHINE_TASK class
Field(s)
- #string STATEMACHINE_TASK.ClassName
- STATEMACHINE_TASK:New(FSMT, Task, TaskUnit)
-
Creates a new STATEMACHINE_TASK object.
Parameters
-
#table FSMT: -
Task#TASK_BASE Task: -
Unit#UNIT TaskUnit:
Return value
-
- STATEMACHINE_TASK:_call_handler(handler, params)
-
Parameters
-
handler: -
params:
-