var {FSM, State} = require("dropecho.fsm");
var entity = {
data: 0
};
// input function is state "action", called when state is run.
var testState1 = new State(entity => {
entity.data += 1;
console.log("state1");
});
var testState2 = new State(entity => {
entity.state2Ran = true;
console.log("state2");
})
testState1.transitions.push(entity => {
if (entity.data >= 2) {
return testState2;
}
// null means don't transition
return null;
});
st2.transitions.push(entity -> {
if (entity.state2Ran) {
return st1;
}
return null;
});
var fsm = new FSM(testState1);
fsm.run(); // state1
fsm.run(); // state1
fsm.run(); // state2
fsm.run(); // state1
fsm.run(); // state2
fsm.run(); // state1
fsm.run(); // state2
This repository has been archived by the owner on Dec 9, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
A finite state machine implementation.
dropecho/fsm
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
About
A finite state machine implementation.
Resources
Stars
Watchers
Forks
Packages 0
No packages published