Install-Package MonoGameStateMachine -Version 220.127.116.11
dotnet add package MonoGameStateMachine --version 18.104.22.168
<PackageReference Include="MonoGameStateMachine" Version="22.214.171.124" />
paket add MonoGameStateMachine --version 126.96.36.199
#r "nuget: MonoGameStateMachine, 188.8.131.52"
// Install MonoGameStateMachine as a Cake Addin #addin nuget:?package=MonoGameStateMachine&version=184.108.40.206 // Install MonoGameStateMachine as a Cake Tool #tool nuget:?package=MonoGameStateMachine&version=220.127.116.11
[DEPRECATED] This library is deprecated. Please use the normal StateMachine instead which is fully tested and being actively maintained. StateMachine
This project implements a Finite-State-Machine (FSM) designed to be used in games.
Furthermore it implements even a Stack-Based-FSM (SBFSM). So you may tell it to 'continue with the last state before the active one'.
You describe your FSM using a nice and well documented DSL (Domain Specific Language).
This machine also adds the function '.After(time)' to transitions so you can set timed transitions that don't necessarily have to have a trigger at all.
This replaces the code we usually had for keyboard-input (run-left-right-duck-jump), clicked buttons on the GUI (idle-over-down-refreshing), tower-states (idle-aiming-firing-reloading) or for the connection procedure when setting up peer2peer connections in our games....
This is a PCL (portable code library) so you should be able to use it in any of your MG projects.
- MonoGame.Framework.Portable (>= 18.104.22.1685)
This package is not used by any NuGet packages.
This package is not used by any popular GitHub repositories.
[DEPRECATED] This library is deprecated. Please use the normal StateMachine instead which is fully tested and being actively maintained. StateMachine nuget.org -> search for 'Unterrainer' or StateMachine.
The new version there has been updated to host the same functionality as this version here did. You just have to feed it a TimeSpan on Update() like so: Update(TimeSpan.FromMilliseconds(gameTime.ElapsedGameTime.TotalMilliseconds));