mirror of
https://github.com/Bragin-Stepan/project-entity.git
synced 2026-03-02 22:31:10 +00:00
feat: add state machine
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Assets._Project.Develop.Runtime.Utilities.StateMachineCore
|
||||
{
|
||||
public abstract class ParallelState<TState> : State where TState : class, IState
|
||||
{
|
||||
private List<TState> _states;
|
||||
|
||||
public ParallelState(params TState[] states)
|
||||
{
|
||||
_states = new List<TState>(states);
|
||||
}
|
||||
|
||||
protected IReadOnlyList<TState> States => _states;
|
||||
|
||||
public override void Enter()
|
||||
{
|
||||
base.Enter();
|
||||
|
||||
foreach (TState state in _states)
|
||||
state.Enter();
|
||||
}
|
||||
|
||||
public override void Exit()
|
||||
{
|
||||
base.Exit();
|
||||
|
||||
foreach (TState state in _states)
|
||||
state.Exit();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user