FSM и команды на примере хода
Проследим, что происходит после отпускания фигуры.
Рассмотрим отпускание фигуры над допустимыми клетками. Компонент перетаскивания отправляет PlacementRequested с slotId и anchor. Далее управление переходит к FSM игры.
ЗапросDragComponent → PlacementRequested → PlaceBlockCommand
Проверка и записьGameplay → Board / Slots / ScoreRules
Снимки результатаboardBeforeClear, boardAfterClear, clearedCells, scoreDelta
ЭкранBoardChanged, BlocksChanged, ScoreChanged и LinesCleared
Что происходит с FSM
PlaceBlockCommand выполняется в playing. Затем FSM переходит в resolvingPlacement, читает PlacementCompleted из очереди и в checkingMoves проверяет доступные ходы.
На схеме ниже разберём успешное размещение по шагам.