一种用于处理大量变体的替代 CIT 格式。
这个模组非常适合这样的场景:同一个物品有许多变体,而这些变体都基于相同的数据片段。当天量的 CIT 存在时,它能提供更好的性能,并且使用一种更少冗余的资源格式,只需一个简短的文件,就能一次性配置某个物品的所有可能变体。
仍然可以逐个指定模型(类似 Optifine-CIT 的处理方式),但性能表现不如前者。
这里只做快速展示。完整指南请参阅 The Wiki。
这种格式的核心在于:物品变体会自动关联到名称匹配的模型或纹理。
你无需为每个变体分别定义条件,而是定义一条统一规则来管理一个变体集合(称为 modules)。这个模块会定义影响哪些物品、如何确定其变体,以及这些变体模型位于何处。
下面是一个会改变附魔书纹理的简单模块:
{
"items": "enchanted_book", // 受影响的物品类型
"modelPrefix": "book_cit/", // 包含可能模型/纹理的文件夹
"assetGen": "item_model/generated", // 从纹理自动生成模型(如果缺失)
"type": "stored_entchantment", // 如何计算物品的“variant ID”
"parameters": { // 模块类型专用的额外选项
"levelSeparator": "_lvl_" // 在 variant ID 中包含附魔等级
}
}
这里,一本带有 minecraft:unbreaking 附魔且等级为 2 的书,其 variant ID 将是 minecraft:unbreakinglvl2,因此会使用存放在 /assets/minecraft/textures/item/bookcit/unbreakinglvl_2.png 的纹理。
这个单独的模块适用于所有可能的附魔,无论是原版还是模组附魔,只要存在对应的纹理即可。
上面的模块为附魔书提供了专门用途的类型。如果某个特定用途没有现成的类型,你仍然可以使用更通用的模块,从任意组件中获取变体:
{
"items": "minecraft:suspicious_stew",
"modelPrefix": "item/suspicious_stew_cit/",
"assetGen": "item_model/generated",
"type": "component_data",
"parameters": {
"componentType": "suspicious_stew_effects", // 包含 variant ID 的组件
"nbtPath": "[0].id" // variant 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 )?(?.*(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":
{
// 如何将多段数据组合成一个 variant 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 }
}
}
// 等等
]
}
} 友情链接: 网易我的世界 | 泰拉瑞亚 | ocent云计算 | 米饭Minecraft插件文档 | 友链合作
历史访问人数:164,601 | 历史访问人次:263,764
今日访问人数:1,516 | 今日访问人次:1,657
昨日访问人数:23,567 | 昨日访问人次:27,193
Copyright © 2019-2026 我的世界服务器列表站. All rights reserved.
❤ Powered by GermMC 京ICP备17023959号-6