Формат описания FSM
Примеры
Состояние
{State "stand_bazooka_pick" ;имя состояния
{from "stand"} ;из этого состояния можно перейти в описываемое
{fromTagged "up"} ;в это состояние можно перейти из любого события, в котором прописан указанный тэг
{transit "stand"} ;опциональное указание. не ждёт внешнего воздействия, а сразу автоматически, без запроса; переходит дальше как только есть возможность
{to "stand"} ;из описываемого состояния можно перейти в это
{tag "up"} ;тэг состояния
{tag "bazooka-pick"} ;тэгов у состояния может быть несколько
{condition "knock-down"} ;опциональное указание; в это состояние можно зайти только по указанному запросу
{split "walk_all" "linked"} ;опционально; нужно только в случаях когда объект состоит из 2-х полунезависимых частей; например, перезарядка стоя и перезарядка на бегу; в этом случае ноги могут действовать отдельно от рук и начать бег, не прерывая перезарядку
}
Запрос
{Request "move"
{priority 30} ;приоритет - чем больше, тем главнее
{interrupt} ;опционально - прерывает текущее состояние, не ждёт пока анимации доиграются до конца
{duration 2} ;имеет смысл только для Job запросов - сколько квантов ждать до автоматической отмены
{exit "stop-move"} ;имеет смысл только для Job запросов - куда выходить после отмены запроса
}
Подмножество
{subset "with_item" ;подмножесто с именем
from "default" ;опционально можно унаследоваться от существующего подмножества и внести в него коррективы
{disable "down"} ;запрещены все состояния с указанным тэгом
{disable "squat"}
{disable "looking"}
{disable "repair"}
{disable "step-aside"}
{enable "open-with-item"} ;разрешение все состояния с указанным тэгом
}
Last updated