--- title: Настройки мода и готовые UI API summary: Когда использовать готовую библиотеку настроек, а когда строить собственное окно. section: ui kind: guide status: reference tags: ["ui","настройки","Simple Menu API","sn_mod_support_apis","callback"] sources: ["https://github.com/bvbohnen/x4-projects/tree/master/extensions/sn_mod_support_apis"] --- ## Настройка - не всегда новое окно Переключатель, число или выбор режима удобнее разместить в согласованном интерфейсе настроек расширений. Для нестандартной панели с собственным содержимым подойдёт [своё окно](wiki:create-ui). Один из сторонних вариантов - X4 Mod Support APIs (`sn_mod_support_apis`). Его Simple Menu API предоставляет настройки и построение меню, Lua Loader API помогает с загрузкой и отложенной инициализацией. ## Отделяйте библиотеку от игры `Register_OnLoad_Init` и MD-точки `Simple_Menu_Options` принадлежат этой библиотеке. Это не функции, которые обязательно присутствуют в чистой X4. Для нового использования прочитайте документацию установленной версии, объявите зависимость в `content.xml` и нужную UI-зависимость в `ui.xml`. Не вызывайте библиотеку до её готовности. ## Маршрут настройки Задайте уникальный ID, текст, тип и значение по умолчанию. Зарегистрируйте обработчик изменения. Полученное значение проверьте и сохраните в подходящем контексте своего мода. Не сбрасывайте сохранённый выбор игрока значением по умолчанию при каждой загрузке. Перестроение меню не должно повторно применять дорогую игровую операцию. ## Проверка Проверьте первое открытие, изменение значения, повторное открытие, сохранение и загрузку. Отдельно проверьте отсутствие зависимости или несовместимую версию. Сигнатуры берите из документации библиотеки, а не из непроверенного примера для старого выпуска.