Variation Addition Type
基本信息
| 属性 | 值 |
|---|---|
| 配置文件 | config/ChiselTones.cfg |
| 分类 | Misc |
| 配置键 | variationAdditionType |
| 取值范围 | 0 ~ 1(整数) |
| 默认值 | 0 |
| 实现类 | tehnut.chiseltones.ConfigHandler#syncConfig |
功能
控制 ChiselTones 将 Ztones 方块注册进 Chisel 雕刻组(variation group)时的两种不同策略。
读自 ConfigHandler.java 的描述原文:
There are 2 modes supported currently:
0 - Allow chiseling of the Ztones Tile into each of the different types Ztones adds at a meta of 0. Then you cycle through from there. This makes the crafting recipes useless.
1 - Allow chiseling between all the blocks within their type. This requires the user to still craft the type, but makes the cycling useless.
两种模式互斥:玩家在游戏启动后通过修改 ChiselTones.cfg 中的 variationAdditionType 切换。
数值
| 数值名 | 默认值 | 范围 | 含义 |
|---|---|---|---|
| variationAdditionType | 0 | 0–1 | 注册策略模式选择 |
两种模式对比
模式 0 — BaseTile 合并模式(默认)
核心差异:把 Ztones 的 33 个方块(含 stoneTile 和 32 个衍生块)以 meta = 0 的形式全部注册到同一个 Chisel 组 "BaseTile" 中,循环遍历时 meta 始终为 0。
实现路径:ChiselTones#addVariations 的 if (variationAdditionType == 0) 分支,调用 addVariationWithoutMeta(groupName, block, order, config) 共 33 次,每次仅注册 block.meta=0 的一种变体,order 从 1 至 33 依次排列。
实际效果:
- 玩家在
BaseTile组循环时,可以从任意 Ztones 方块直接雕刻成agonBlock/bittBlock/crayBlock/ … /ztylBlock中的任何一个。 - 由于所有变体都是
meta=0,Chisel 的 16 meta 循环不再有意义;玩家的切换实际是跨类型切换。 - 使 Ztones 自带的合成配方变得无用(玩家用 Chisel 直接雕刻即可,无需配方)。
模式 1 — 类型内循环模式
核心差异:为每个 Ztones 方块单独建立一个独立的 Chisel 组(Agon / Bitt / Cray / … / Ztyl 共 27 个组),在每个组内把 meta = 0..15 共 16 个变体全部注册进去。
实现路径:ChiselTones#addVariations 的 else if (variationAdditionType == 1) 分支,调用 addVariationFast(groupName, block, maxMeta=15, config) 27 次。
实际效果:
- 玩家只能在同一个 Ztones 类型内循环雕刻 16 种纹理变体。
- 必须先用 Ztones 配方合成对应类型的方块才能雕刻(否则根本没有这个 Chisel 组的变体可循环)。
- 使 Chisel 的 16-meta 循环变得无用(每个组都注册了所有 meta,但实际只是同类型的不同外观)。
两种模式对比表
| 属性 | 模式 0(默认) | 模式 1 |
|---|---|---|
| Chisel 组数量 | 1(BaseTile) |
27(每个 Ztones 方块一个) |
| 每组变体数 | 33(每个 Ztones 方块 1 个) | 16(每个 meta 一个) |
| 注册时使用的 meta | 始终 0 | 0…15 |
| 是否还需要合成配方 | 否 | 是 |
| 16-meta 循环是否有意义 | 否 | 否 |
| 玩家使用方式 | 把任意 Ztones 方块雕刻成其他 Ztones 类型 | 雕刻同类型内的 16 种纹理 |
注册过程
无论模式,addVariations() 都在 FMLInitializationEvent 阶段调用(ChiselTones#init):
@Mod.EventHandler
public void init(FMLInitializationEvent event) {
addVariations();
}
实际调用的是 Chisel 公开 API CarvingUtils.chisel.addVariation(groupName, block, meta, order),所以本 mod 仅作为适配层存在,不注册任何新 Block/Item/TileEntity。
相关条目
- Ztones 适配方块汇总 - 列出所有 33 个被注册的 Ztones 方块及其在两种模式下的归属