StateMachine class
Finite state machine (FSM) for implementing State-driven agent design.
@author {@link https://github.com/Mugen87|Mugen87}
Constructors
- StateMachine([GameEntity? owner])
- Constructs a new state machine with the given values.
Properties
- currentState ↔ State?
-
getter/setter pair
- globalState ↔ State?
-
getter/setter pair
- hashCode → int
-
The hash code for this object.
no setterinherited
- owner ↔ GameEntity?
-
getter/setter pair
- previousState ↔ State?
-
getter/setter pair
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
-
states
→ Map<
String, State> -
final
Methods
-
add(
String id, State? state) → StateMachine - Adds a new state with the given ID to the state machine.
-
changeTo(
String id) → StateMachine - Performs a state change to the state defined by its ID.
-
fromJSON(
Map< String, dynamic> json) → StateMachine - Restores this instance from the given JSON object.
-
get(
String id) → State? - Returns the state for the given ID.
-
handleMessage(
dynamic telegram) → bool - Tries to dispatch the massage to the current or global state and returns true if the message was processed successfully.
-
insert(
dynamic id) → bool - Returns true if this FSM is in the given state.
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
registerType(
String type, Function constructor) → StateMachine - Registers a custom type for deserialization. When calling {@link StateMachine#fromJSON} the state machine is able to pick the correct constructor in order to create custom states.
-
remove(
String id) → StateMachine - Removes a state via its ID from the state machine.
-
resolveReferences(
Map< String, GameEntity> entities) → StateMachine - Restores UUIDs with references to GameEntity objects.
-
revert(
) → StateMachine - Returns to the previous state.
-
toJSON(
) → Map< String, dynamic> - Transforms this instance into a JSON object.
-
toString(
) → String -
A string representation of this object.
inherited
-
update(
) → StateMachine - Updates the internal state of the FSM. Usually called by {@link GameEntity#update}.
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited