Документация
Docs/ru/reference/font-format/binding.md
Контракт привязки шрифтов
Сгенерированный справочник. Не редактируйте его напрямую. Обновите
BuildTools/FontFormatInterface.json, затем выполнитеpython BuildTools/docs_font_format.py --write.
| Индекс | Форматы | FOFNT | BMFont | Привязка | Компоновка | Отрисовка | Проверка | Канонический JSON | Руководство |
| Стабильный ID | Правило | Требование | Причина | Источник |
|---|---|---|---|---|
font-format.binding.extension-dispatch |
Точная диспетчеризация расширения | Вызывайте Game.BindFont с точным путём в нижнем регистре с суффиксом .fofnt или .fnt; любой другой суффикс создаёт скриптовое исключение. | Диспетчеризация использует регистрозависимые проверки ends_with и не определяет формат по содержимому. | Source/Scripting/ClientGlobalScriptMethods.cpp |
font-format.binding.raw-copy |
Граница raw-copy для дескриптора | Оставьте fofnt и fnt в Baking.RawCopyFileExtensions, чтобы байты дескриптора без изменений попали в запечённые ресурсы. | Отдельного baker дескрипторов шрифтов нет; RawCopyBaker сохраняет путь и байты. | Source/Common/Settings.inc, Source/Tools/RawCopyBaker.cpp |
font-format.binding.image-resource |
Отдельно запечённое изображение | Поставляйте связанное изображение как независимо поддерживаемый ресурс в том же пакете и сохраняйте его относительный путь. | Дескриптор копируется raw-copy, а изображение загружается через SpriteManager и обычный конвейер image-format. | Source/Client/FontManager.cpp |
font-format.binding.font-slots |
Расширяемые проектом слоты | Привяжите каждый слот FontType до измерения или отрисовки; Engine называет только Default = 0, а встраивающие скрипты могут расширить enum через аннотации codegen. | FontType является индексированной таблицей загруженных шрифтов; незагруженные и выходящие за границы слоты создают исключение. | Source/Client/FontManager.h |
font-format.binding.iface-atlas |
Атлас спрайтов интерфейса | Привязанные скриптом шрифты размещают обычные и необязательные обведённые текстуры в AtlasType::IfaceSprites. | Обе ветви дескрипторов Game.BindFont передают один тип атласа интерфейса. | Source/Scripting/ClientGlobalScriptMethods.cpp |
font-format.binding.bind-time-scale |
Уменьшение при привязке | Передавайте конечный defaultScale в (0, 1]; используйте больший исходный растр и уменьшайте его вместо runtime-увеличения. | При привязке пиксели усредняются по площади, а метрики округляются один раз; значения выше единицы, неположительные и неконечные отклоняются. | Source/Client/FontManager.cpp |
font-format.binding.rebind |
Замена слота и сброс кэша | Считайте повторную привязку того же слота заменой; все кэшированные компоновки удаляются до использования перестроенного шрифта. | StoreFont заменяет необязательную запись таблицы, перестраивает атлас и очищает кэш форматов. | Source/Client/FontManager.cpp |
font-format.binding.updater-default |
Запасной шрифт обновлятора | Сохраняйте Fonts/Default.fofnt доступным для встроенного обновлятора, если хост намеренно не заменяет этот контракт ресурса. | Обновлятор привязывает слот Default из точного пути и пропускает уже загруженный слот. | Source/Client/Updater.cpp |