Дерево поведения полностью состоит из нод (узлов). Каждая нода выполняет какое-то действие: нажимает кнопки, проверяет условия и так далее.
Все ноды по результату выполнения возвращают один из статусов:
- Success — действие успешно выполнено: кнопка нажата, изображение найдено и т. п.
- Failure — произошло обратное: выполнить действие не удалось или условие не выполнено.
- Running — нода уже начала работу, но ещё не завершила её. Это происходит, когда действие занимает больше одного тика. Обычно в таком случае всё дерево ждёт, пока нода не закончит работу и не вернёт Success или Failure. Классический пример — нода Wait, которая просто задерживает выполнение дерева на указанное время.
- Root — корень всего дерева, содержит общие настройки.
- Sequence — перебирает дочерние ноды, пока не встретит ту, которая вернёт
Failure.
- Selector — перебирает дочерние ноды, пока не встретит ту, которая вернёт
Success.
- Aura Is Active — позволяет указать одну или несколько аур, которые будут использоваться как условия для ноды.
- Execute Aura — задаёт ауру, действия которой будут выполнены при запуске ноды.
- Key Press — нажимает клавишу или сочетание клавиш.
- Wait — приостанавливает выполнение дерева на указанное время.
- Cooldown — не позволяет конкретной ноде выполняться слишком часто.
- Inverter — инвертирует статус дочерней ноды (
Success => Failure и наоборот).
- Force Failure — выполняет дочернюю ноду, но всегда возвращает
Failure.
- Force Success — выполняет дочернюю ноду, но всегда возвращает
Success.
- Until Success — выполняет дочернюю ноду до тех пор, пока она не вернёт
Success.
- Fixed Status — вспомогательная нода, позволяющая задать фиксированный статус, который она будет возвращать; полезно для отладки и настройки.
- Comment — позволяет оставлять комментарии к логике прямо в дереве.