▶️ ЗАБЕРИ СВОИ 8 ПОДАРКОВ 🎁 ПРИ СОЗДАНИИ СВОЕГО МАЙНКРАФТ СЕРВЕРА
Моды/Variants-CIT
Variants-CIT

Variants-CIT

Мод Variants-CIT для Майнкрафт - альтернативный формат CIT, созданный для больших коллекций вариантов с повторяющимися паттернами. Он упрощает создание ресурспаков с сотнями вариаций предметов, экономя время и ресурсы.

Оцените первым
1.5M
334

Variants-CIT - это мод для Майнкрафт, который предлагает альтернативный формат CIT (Custom Item Textures), заточенный под работу с огромным количеством вариантов одного предмета. Если ты когда-нибудь пытался сделать ресурспак, где у каждой зачарованной книги своя текстура, или мечи с разными названиями выглядят по-своему - ты знаешь, как это быстро превращается в ад из сотен JSON-файлов. Variants-CIT решает эту проблему кардинально.

Вместо того чтобы прописывать условия для каждого варианта отдельно (как это делает Optifine-CIT), ты создаёшь один модуль, который автоматически подбирает модель или текстуру под конкретный предмет. Это не просто удобно - это даёт реальный прирост производительности, когда у тебя в папке лежат тысячи текстур.

Как это работает

Всё крутится вокруг идеи: варианты предметов автоматически сопоставляются с моделями или текстурами, у которых совпадают имена. Ты задаёшь одно правило (модуль), которое определяет, какой предмет меняется, как вычислить его вариант и где искать модели.

Пример с зачарованными книгами

Допустим, ты хочешь, чтобы у каждой зачарованной книги была уникальная текстура. Вместо того чтобы писать условие для unbreaking, sharpness, protection и так далее, ты делаешь так:

{
	"items": "enchanted_book",
	"modelPrefix": "book_cit/",
	"assetGen": "item_model/generated",
	"type": "stored_entchantment",
	"parameters": {
		"levelSeparator": "_lvl_"
	}
}

Всё. Теперь книга с чарами minecraft:unbreaking уровня 2 будет искать текстуру по пути /assets/minecraft/textures/item/book_cit/unbreaking_lvl_2.png. И так для любого зачарования - ванильного или модного. Есть текстура - работает. Нет - использует стандартную.

Если нет готового типа под твою задачу

Для более специфичных случаев можно использовать модуль component_data. Например, для подозрительного рагу, у которого эффекты хранятся в компоненте:

{
	"items": "minecraft:suspicious_stew",
	"modelPrefix": "item/suspicious_stew_cit/",
	"assetGen": "item_model/generated",
	"type": "component_data",
	"parameters": {
		"componentType": "suspicious_stew_effects",
		"nbtPath": "[0].id"
	}
}

Обработка данных, которые нельзя использовать напрямую

Бывает, что вариант нужно вытащить из названия предмета. Например, у тебя есть алмазные мечи с разными именами вроде "Steel Sword" или "steev18's great Steel Sword of doom". Через регулярки можно вычленить нужную часть:

{
	"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"
			},
			{
				"function": "sanitize"
			}
		]
	}
}

Комбинирование данных из разных источников

А если нужно собрать вариант из нескольких параметров? Например, для тримованных алмазных мечей - узор и материал:

{
	"items": "minecraft:diamond_sword",
	"modelPrefix": "item/trimmed_diamond_sword/",
	"assetGen": "item_model/handheld",
	"type": "component_format",
	"parameters": {
		"format": "${pattern}_${material}",
		"variables": {
			"pattern": {
				"componentType": "trim",
				"nbtPath": ".pattern"
			},
			"material": {
				"componentType": "trim",
				"nbtPath": ".material",
				"transform": "discard_namespace"
			}
		}
	}
}

Когда автоматика не нужна

Если у тебя всего пара уникальных предметов, которые не вписываются ни в какую систему, можно использовать старый добрый подход с предикатами - почти как в Optifine-CIT:

{
	"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 }
                	        }
            	    }
        	]
    	}
}

Зачем это вообще нужно?

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

Скачать Variants-CIT стоит хотя бы ради того, чтобы попробовать новый подход к организации текстур. Особенно если ты уже сталкивался с тормозами Optifine-CIT на больших коллекциях. Мод работает на Fabric и совместим с Minecraft 1.20-1.21. Для работы потребуется Fabric API.

Важно знать

  • Мод не заменяет Optifine-CIT полностью - он дополняет его. Оба формата могут сосуществовать в одном ресурспаке.
  • Для работы с Variants-CIT нужно понимать структуру JSON и основы работы с компонентами в Minecraft 1.20.5+.
  • Если ты используешь старые версии Майнкрафт (до 1.20.5), мод может не поддерживать все фичи из-за изменений в формате предметов.
  • Производительность особенно заметна на сборках с 1000+ CIT-правил - разница в FPS при открытии инвентаря может быть существенной.

В целом, Variants-CIT - это инструмент для тех, кто хочет делать красиво и без лагов. Если тебе надоело копипастить условия для каждой мелочи - попробуй этот формат.

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

Совместимость

Minecraft: Java Edition

26.2.x26.1.x1.21.x

Платформы

Поддерживаемые окружения

Клиент

Зависимости

Ссылки


Создатели

Детали

Лицензия:
Опубликован:1 год назад
Обновлён:6 дней назад
Главная