Скачать Custom Model Predicates — Minecraft Моды — MetaMods

Custom Model Predicates

Активный

Установок

0

Последнее обновление

3 года назад
Клиент
Fabric
Quilt
Forge
Neoforge
Декорации
Утилиты

Custom Model Predicates

Custom Model Predicates — это модификация для Forge, которая открывает новые возможности для создателей ресурспаков и разработчиков модов. С её помощью можно задавать индивидуальные модели предметов в зависимости от различных параметров: имени, NBT-тегов, размера стопки и других характеристик.

Принцип работы

Мод функционирует по принципу замены моделей, схожему с механизмом ресурспаков, но с важными отличиями. Для начала работы необходимо указать в JSON-файле специальный загрузчик: "loader": "custommodelpredicates:custommodelpredicates". Это обязательное условие для корректного распознавания модом.

Каждый файл конфигурации должен содержать базовую модель, которая применяется, когда ни одно из условий не соответствует. Вместо стандартного массива "overrides" используется новый массив "predicates", который проверяется ПЕРЕД стандартными переопределениями ванильных JSON-файлов.

Массив "predicates" может содержать любое количество условий, однако рекомендуется ограничивать их количество для снижения нагрузки на производительность. Каждое условие проверяется при каждой отрисовке модели, и возвращается первое подходящее. Порядок условий имеет значение!

Типы условий

Каждое условие состоит из типа предиката, требований для соответствия и модели, которая возвращается при совпадении. Список поддерживаемых предикатов будет расширяться по мере развития мода.

Имя (Name)

Предикат имени срабатывает, когда предмет имеет определённое название:

{
  "type": "name",
  "name": "aw man",
  "model": {"parent": "item/gunpowder"}
}

Количество (Count)

Предикат количества активируется, когда размер стопки предметов больше, меньше или равен указанному числу.

Больше:

{
  "type": "count",
  "count": ">2",
  "model": {"parent": "custommodelpredicates:item/three_gold_ingots"}
}

Меньше:

{
  "type": "count",
  "count": "<3",
  "model": {"parent": "custommodelpredicates:item/two_gold_ingots"}
}

Равно:

{
  "type": "count",
  "count": "2",
  "model": {"parent": "custommodelpredicates:item/two_gold_ingots"}
}

NBT-теги

NBT-предикат срабатывает, когда предмет имеет определённый NBT-тег с конкретным значением или в заданном диапазоне.

Мод поддерживает следующие типы NBT-тегов: boolean, byte, short, int, long, float, double и string. Все типы, кроме boolean и string, поддерживают сравнения с использованием операторов < и >. Все типы поддерживают точное совпадение. Будьте осторожны при точном сравнении значений float/double.

Пример:

{
  "type": "nbt",
  "tag_name": "test_number",
  "tag_type": "int",
  "require": "=1",
  "model": {"parent": "item/diamond"}
}

Идентификатор мода (Modid)

Предикат modid проверяет, загружен ли указанный мод:

{
  "type": "modid",
  "modid": "examplemod",
  "model": {"parent": "item/iron_ingot"}
}

На GitHub доступны базовые примеры использования (в разработке).

Часто задаваемые вопросы

Вопрос: Можно ли портировать эту версию на более старые версии Minecraft (ниже 1.16.5)?
Ответ: Нет.

Вопрос: Может ли мод работать только на стороне клиента?
Ответ: Да, он даже работает на ванильных серверах.

Вопрос: Может ли этот мод загружать CIT ресурспаки?
Ответ: Нет, но когда мод достигнет зрелости, он сможет обеспечить эквивалент всех предикатов Optifine.

Вопрос: Можно ли использовать этот мод в сборках модов?
Ответ: Безусловно, в любых условиях.

Участники проекта
tfarecnim

tfarecnim

Создан: 27 дек 2021

ID: 27959