2f745ba328
- Refactor BootStatesController to implement IStatesController interface - Move state dictionary creation into constructor, remove static helper method - Add CancellationToken validation before state transitions in StatesController - Track current state presence with _hasCurrentState flag for safety - Update TASK-0002 with Ready status Выполнена задача TASK-0002 и обновлён статус: - Рефакторинг BootStatesController для реализации интерфейса IStatesController - Перемещено создание словаря состояний в конструктор, удалён статический вспомогательный метод - Добавлена валидация CancellationToken перед переходами между состояниями в StatesController - Добавлен флаг _hasCurrentState для отслеживания текущего состояния - Обновлён статус TASK-0002 до Ready
32 lines
990 B
C#
32 lines
990 B
C#
using System.Collections.Generic;
|
|
using System.Threading;
|
|
using Cysharp.Threading.Tasks;
|
|
using QuizPleaseTest.Common.StateMachine;
|
|
|
|
namespace QuizPleaseTest.Boot.States
|
|
{
|
|
public class BootStatesController : IStatesController<BootStateCode>
|
|
{
|
|
private readonly StatesController<BootStateCode> _statesController;
|
|
|
|
public BootStatesController(
|
|
SplashState splashState,
|
|
LoadState loadState,
|
|
MenuState menuState)
|
|
{
|
|
_statesController = new StatesController<BootStateCode>(
|
|
new Dictionary<BootStateCode, IState>
|
|
{
|
|
{ BootStateCode.Splash, splashState },
|
|
{ BootStateCode.Load, loadState },
|
|
{ BootStateCode.Menu, menuState }
|
|
});
|
|
}
|
|
|
|
public UniTask EnterStateAsync(BootStateCode code, CancellationToken ct)
|
|
{
|
|
return _statesController.EnterStateAsync(code, ct);
|
|
}
|
|
}
|
|
}
|