Получите значения конфигураций, переводы, динамические токены и ресурсы из других модов с помощью специальных токенов Content Patcher.
Токены кросс-модовой совместимости добавляют несколько специальных, настраиваемых токенов Content Patcher, которые позволяют вам (если вы автор мода) получать доступ к значениям конфигурации, переводам и динамическим токенам других модов, включая моды, не предназначенные специально для Content Patcher. Они могут быть полезны, если у вас нет другого способа обеспечить идеальную совместимость между вашим модом и сторонними модами, если вам нужно что-то изменить в зависимости от любого из вышеупомянутых значений.
УстановкаИспользование для игроковЭтот мод сам по себе ничего не делает. Установка его пользователем бесполезна, если другой используемый вами мод не требует этого.
Использование для авторов модов Content PatcherЭтот мод добавляет четыре токена:
- Spiderbuttons.CMCT/Config
- Spiderbuttons.CMCT/Перевод
- Spiderbuttons.CMCT/Dynamic
- Spiderbuttons.CMCT/Asset
Каждый из этих токенов позволит вам получить значения конфигурации, строки перевода, динамические значения токенов или внутренние ключи активов соответственно. Все четыре
требовать Входные аргументы. Первый входной аргумент всегда будет уникальным идентификатором мода, из которого вы пытаетесь получить значение. Второй входной аргумент будет зависеть от соответствующего токена:
- Конфигурация: Имя искомого значения конфигурации. Если значение конфигурации вложенное, необходимо указать полный путь к конфигурации на основе структуры JSON.
- Перевод: ключ i18n нужного вам перевода. Он всегда будет использовать перевод для текущего выбранного языка.
- Динамический: Имя динамического токена.
- Актив: Путь актива из другого мода относительно их файл manifest.json.
Если вы используете любой из этих токенов, вы
должен Установите другой мод как зависимость. Если вы этого не сделаете, он
мощь Работает, но может выдавать странные ошибки. Вот четыре примера, по одному для каждого токена, с использованием
Поиск чего угодно,
Шляпная Мышь Лейси, и
Дополнительные книги Баттона для демонстрации:
- {{Spiderbuttons.CMCT/Config: Pathoschild.LookupAnything, Controls.ToggleSearch}}
- {{Spiderbuttons.CMCT/Перевод: ichortower.HatMouseLacey, houseDisplayName}}
- {{Spiderbuttons.CMCT/Динамический: ichortower.HatMouseLacey, Lacey}}
- {{Spiderbuttons.CMCT/Asset: Spiderbuttons.ButtonsExtraBooks, assets/Books/sheet.png}}
ОграниченияВ настоящее время я бы посчитал ограничениями два основных момента:
- Переводы, которые принимают токены в качестве входных данных (т. е. значения i18n, имеющие собственные {{tokens}} внутри самого i18n), работают некорректно и захватывают только буквальную строку с токеном, все еще присутствующим в фигурных скобках.
- Динамические токены инициализируются только при загрузке сохранения, а не при запуске игры. Это может иметь для вас значение, а может и не иметь.
Также стоит отметить, что вам следует использовать динамический токен.
как можно режеНе вдаваясь в подробности работы Content Patcher, скажу, что из-за особенностей реализации токена, которые мне пришлось применить, он всегда будет сигнализировать о необходимости распространения изменений, даже если динамический токен, который он проверяет из другого мода, не изменился. Это не так уж и плохо, если ваш токен обновляет только OnDayStart, как это происходит по умолчанию, но может привести к серьёзным затратам, если вы обновляете его OnTimeChange или OnLocationChange!
Исходный код