Skip to content

sometric/FSM

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FSM

Primitive finite-state machine implementation

Example

alt text

enum State
{
	Locked,
	Unlocked
}

enum Signal
{
	Coin,
	Push
}


var turnstile = new FSM.StateMachine<State, Signal>();

turnstile.In(State.Locked)
	.AddOnEnter(() => Say("I'm locked now"))
	.On(Signal.Push).AddAction(() => Say("Closed"))
	.On(Signal.Coin).Advance(State.Unlocked);

turnstile.In(State.Unlocked)
	.AddOnEnter(() => Say("I'm unlocked now"))
	.On(Signal.Coin).AddAction(() => Say("Thanks for the tip!"))
	.On(Signal.Push).Advance(State.Locked);

turnstile.Start(State.Locked);

About

Primitive finite state machine implementation

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages