Спроектирована для решения следующих задач:
Система вооружения аватара позволяет конструировать поведение оружия и его снарядов из предоставляемого стандартного набора компонентов, а также расширять набор пользовательскими компонентами. Система была спроектирована с учётом возможности динамического изменения арсенала аватара, и поддерживает сценарии смены оружия, использования нескольких единиц оружия одновременно и т.д.
Общая схема работы системы представлена ниже:
Система предполагает обязательное наличие аватара для функционирования оружия.
Центральным компонентом поведения оружия является AvatarWeaponController. Он подключается к компоненту ввода аватара AvatarOverallInput и выполняет список компонентов-условий и компонентов-действий. Компоненты-условия определяют логику поведения оружия и после выполнения формируют нормализованный сигнал в диапазоне [0,1], который используют компоненты-действия. Компоненты-действия выполняют определённые операции в зависимости от величины входного сигнала. В отличие от компонентов-условий, компоненты-действия не могут повлиять на выполнение друг друга, а также не могут менять сигнал.
Все компоненты-условия наследуются от базового класса WeaponConditionController, а компоненты-действия - от WeaponActionController. Подробная информация представлена в соответствующих разделах.
Компонент AvatarWeaponController выполняет следующие функции: