
Variants-CIT
针对具有重复模式的大型变异集合的备选CIT格式。
查看大图Variants-CIT
一种替代性的 CIT 格式,旨在处理大量变体。
该模组在以下场景中表现出色:一个物品拥有许多基于相同数据片段的变体。当存在极大量 CIT 时,它能提供更好的性能,并使用冗余更少的资源格式,只需一个简短文件即可一次性配置某个物品的所有可能变体。
仍支持逐案例分配模型(类似于 Optifine-CIT 的处理方式),但性能不如前者。
资源包格式
以下是快速展示。完整指南请参阅 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 范式的格式:
{
"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 }
}
}
// 等等
]
}
}
正在加载版本记录…

正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。