Документация
Docs/ru/reference/text-format/proto-text.md
Текст прототипов
Сгенерированный справочник. Не редактируйте его напрямую. Обновите
BuildTools/TextFormatInterface.json, затем выполнитеpython BuildTools/docs_text_format.py --write.
| Индекс | Синтаксис | Языки | Текст прототипов | Runtime | Проверка | Канонический JSON | Руководство |
Локализованный текст прототипа задаётся внутри любой допустимой секции прототипа:
[ProtoItem]
$Name = LaserRifle
$Text engl Name = Laser rifle
$Text engl Desc Short = Compact description
$Text russ Name = Localized name
Полный ключ состоит из сгенерированного пакета, id прототипа, необязательного Key2 и необязательного Key3. Если язык опущен, выбирается первый настроенный элемент BakeLanguages.
Генерируемые пакеты
Items, Critters, Maps, Locations, Protos
| Стабильный ID | Правило | Требование | Причина | Источник |
|---|---|---|---|---|
text-format.proto.syntax |
Ключ текста прототипа | Текст прототипа использует $Text [Language] [Key2] [Key3] = Value и принимает не более четырёх токенов ключа вместе с $Text. | Id прототипа становится Key1, а необязательные последующие токены становятся Key2 и Key3. | Source/Tools/ProtoTextBaker.cpp |
text-format.proto.default-language |
Опущенный язык | Если токен языка опущен, поле $Text принадлежит первому элементу Baking.BakeLanguages. | С исходными текстовыми пакетами используется один упорядоченный контракт базового языка. | Source/Tools/ProtoTextBaker.cpp |
text-format.proto.escape-decoding |
Декодирование escape-последовательностей | Значения $Text прототипов проходят через StringEscaping::DecodeString до добавления в текстовый пакет. | Последовательности наподобие \n становятся настоящими символами новой строки в запечённом значении. | Source/Tools/ProtoTextBaker.cpp, Source/Tests/Test_ProtoTextBaker.cpp |
text-format.proto.inheritance |
Унаследованный текст | Родительские поля $Text рекурсивно объединяются до полей потомка. | Потомок наследует отсутствующие точные текстовые ключи, а его собственное присваивание точного ключа заменяет унаследованное значение. | Source/Tools/ProtoTextBaker.cpp |
text-format.proto.pack-routing |
Маршрутизация генерируемого пакета | Прототипы Item, Critter, Map и Location направляются в Items, Critters, Maps и Locations; другие неэкспортируемые entity или fixed type с HasProtos направляются в Protos. | Эти пять имён образуют переиспользуемый набор текстовых пакетов прототипов, генерируемых Engine. | Source/Tools/ProtoTextBaker.cpp |
text-format.proto.complete-output-set |
Полный набор выходов | ProtoTextBaker создаёт все пять генерируемых пакетов для каждого настроенного языка, включая пустые пакеты. | Форма бинарного выхода детерминирована для разных проектов и наборов языков. | Source/Tools/ProtoTextBaker.cpp |
text-format.proto.intersections |
Межтиповые пересечения | Два исходника прототипов не могут создать один полный ключ в одном сгенерированном пакете и языке. | Пересечения считаются ошибками и прерывают запекание текста прототипов. | Source/Tools/ProtoTextBaker.cpp |
text-format.proto.unsupported-language |
Неподдерживаемый язык прототипа | Для языка $Text, отсутствующего в Baking.BakeLanguages, выводится предупреждение, и поле пропускается. | Локализованный текст прототипов следует настроенному набору выходных языков. | Source/Tools/ProtoTextBaker.cpp |