Перейти к содержимому

Variants-CIT

Альтернативный формат CIT для больших коллекций вариантов с повторяющимися шаблонами.

Fabric
Загрузчики
Fabric
Скачиваний на Modrinth
1,9 млн
Подписчиков на Modrinth
361
версия
191
Обновлён
13 октября 202613 окт.
Опубликован
в 2024
Это библиотека — она нужна другим модам и сама ничего не добавляет в игру
Even Better Enchants — Textures from Even Better Enchants · свайп

Коротко о моде

Библиотека — нужна другим модам
Работает на Fabric
Для Minecraft 1.21–26.3
Ставится только в игру; на сервер ставить не нужно
Последняя версия — 5.7.1+26.3 от 13 октября 2026
Нужен Fabric API
Где нужен
В игреобязателенНа серверене нужен

Ставится только в игру; на сервер ставить не нужно

Версии игры1.21–26.3
Описание переведено автоматическиПоказать оригинал (EN)

Variants-CIT

Альтернативный формат CIT, созданный для обработки большого количества вариантов.

Этот мод отлично подходит для случаев, когда у одного предмета много вариантов, основанных на одних и тех же данных. Он обеспечивает лучшую производительность при огромном количестве CIT, а также использует менее избыточный формат ресурсов, требующий всего одного короткого файла для настройки всех возможных вариантов предмета сразу.

Назначать модели по отдельности (как это делает Optifine-CIT) по-прежнему можно, но такой подход не может похвастаться той же производительностью.

Формат ресурспака

Это краткая демонстрация. Полное руководство смотри в The Wiki.

Формат строится на том, что варианты предметов автоматически связываются с моделями или текстурами по совпадающим именам. Вместо того чтобы задавать отдельные условия для каждого варианта, ты задаёшь одно правило, управляющее всеми вариантами в коллекции (так называемые модули). Этот модуль определяет, на какой предмет он влияет, как вычислить его варианты и где находятся модели вариантов.

Полностью автоматическая связь вариантов с моделями

Вот простой модуль, который меняет текстуру зачарованных книг:

{
    "items": "enchanted_book", // Тип(ы) затронутых предметов

    "modelPrefix": "book_cit/", // Папка с возможными моделями/текстурами.
    "assetGen": "item_model/generated", // Автогенерация моделей из текстур (если их нет)
    
    "type": "stored_entchantment", // Как вычислить "ID варианта" предмета
    "parameters": { // Дополнительные параметры, специфичные для типа модуля
        "levelSeparator": "_lvl_" // Включать уровень зачарования в ID варианта
    }
}

Здесь книга с зачарованием minecraft:unbreaking уровня 2 получит ID варианта minecraft:unbreaking_lvl_2 и, соответственно, будет использовать текстуру, хранящуюся по пути /assets/minecraft/textures/item/book_cit/unbreaking_lvl_2.png. Этот единственный модуль будет работать для любого возможного зачарования, ванильного или модового, при условии, что существует соответствующая текстура.

Автоматические варианты на основе пользовательских данных

У модуля выше есть специально созданный тип для зачарованных книг. Если для конкретного случая типа не существует, всё равно можно использовать более универсальные модули, чтобы получить вариант из любого компонента:

{
    "items": "minecraft:suspicious_stew",
    "modelPrefix": "item/suspicious_stew_cit/",
    "assetGen": "item_model/generated",

    "type": "component_data",
    "parameters": {
        "componentType": "suspicious_stew_effects", // Компонент, содержащий ID варианта
        "nbtPath": "[0].id" // Расположение ID варианта в компоненте.
    }
}
Обработка данных, которые нельзя использовать как есть:
{
    "items": "diamond_sword",

    "modelPrefix": "item/named_swords/",
    "assetGen": "item_model/handheld",

    "type": "component_data",
    "parameters":
    {
        "componentType": "custom_name",
        "transform": [
            {
                "function": "regex",
                // Сопоставление с шаблоном,..
                "regex": "(?i)(.*'s )?(Great |Grand )?(?<var>.*(sword|dagger))( of doom)?",
                // ... и сохранение только части имени.
                "substitution": "$var"
                // (Например: "steev18's great Steel Sword" => "Steel Sword")
            }
            {
                // Превращает любой текст в допустимый идентификатор
                "function": "sanitize"
                // (Например: "Steel Sword" => "minecraft:steel_sword")
            }
        ]
    }
}
Объединение нескольких фрагментов данных из разных источников:
{
    "items": "minecraft:diamond_sword",
    "modelPrefix": "item/trimmed_diamond_sword/",
    "assetGen": "item_model/handheld",

    "type": "component_format",
    "parameters":
    {
        // Как объединить различные фрагменты данных в ID варианта
        // (Например: sentry_diamond)
        "format": "${pattern}_${material}",
        // Где найти эти фрагменты данных.
        "variables": {
            "pattern": {
                "componentType": "trim",
                "nbtPath": ".pattern"
            },
            "material": {
                "componentType": "trim",
                "nbtPath": ".material",
                "transform": "discard_namespace"
            }
        }
    }
}

### Варианты для отдельных случаев
Для систем, которые не следуют никаким правилам (или если у вас слишком мало вариантов, чтобы заморачиваться с автоматизмом), можно использовать формат, более близкий к парадигмам Optifine-CIT:
```jsonc
{
    "items": "trident",
    "modelPrefix": "item/godly_tridents/",
    "assetGen": "item_model/trident",

    "type": "predicates",
    "parameters": {
        "predicates":
        [
            {
                "variantId": "zeus_smite",
                "precondition": {
                    "enchantments.channeling": { "greater_or_equals": 1 }
                }
            },
            {
                "variantId": "jupiter_syphon",
                "precondition": {
                    "enchantments.riptide": { "greater_or_equals": 1 }
                }
            }
            // etc
        ]
    }
}

Частые вопросы

Как установить Variants-CIT?

Установите Fabric под свою версию Minecraft, скачайте Variants-CIT под ту же версию и загрузчик, положите файл в папку mods и запустите игру с профилем загрузчика.

Для каких версий Minecraft есть Variants-CIT?

У Variants-CIT есть сборки для Minecraft 1.21–26.3.

Нужен ли Variants-CIT на сервере?

Ставится только в игру; на сервер ставить не нужно

Лицензия и источник
European Union Public License 1.2можно использовать и распространять; изменённые версии — под той же лицензией и с исходным кодом
Оригинал — Modrinth↗Файлы — без изменений, проверены по SHA-512Это ваш мод? Правообладателям

Сайт использует cookie: необходимые — для входа и темы, а также счётчики посещений Яндекс Метрика и LiveInternet — по ним мы видим, как пользуются сайтом. Рекламных cookie у нас нет. Подробнее