本篇教程由作者设定未经允许禁止转载。

首先是理论部分,自定义矿脉的第一步是移除矿脉以外的其他矿物,这一点非常容易做到,只需修改各模组的cfg文件即可,删除矿物的生成,这步操作不会影响cofh world。

现在来看cofh world是如何生成矿脉的,打开位于config\cofh\world的文件夹,我们在这里先来分析cofh cfg文件提供的示例(这里以煤炭为例)。

"coal": {
"distribution": "uniform",                                        //分布类型:在最小高度和最大高度之间均匀分布。
"generator": {
"block": "coal_ore",                                                 //需要替换为的方块:煤炭
"material": "minecraft:stone",                                //需要替换的方块:石头
"cluster-size": 17                                                    //矿簇期望规模(不是确切数值)                                                
},
"cluster-count": 20,                                                 //在单个区块成功生成矿脉的概率(生成成功尝试的次数),
                                                                                //符合条件的每个区块求值一次。(越大生成概率越高)
"min-height": 0,                                                      //矿脉最小生成高度
"max-height": 128,                                                 //矿脉最大生成高度
"retrogen": false,                                                     //如果该区块已经生成一次本矿脉,是否重复计算再次生成。
"biome": "all",                                                         //执行此操作的生物群系(值:所有)
"dimension": {                                                         //执行此操作的维度
"restriction": "blacklist",                                          //执行此操作的维度的黑名单(也可以设置为白名单)
"value": [                                                                 //执行黑名单维度 1,-1.地狱和末地啦。
-1,
1
]
}
},

我们现在来描述一下这个示例,在y轴0-128的范围内,以20次概率生成一个拥有17个煤炭矿石规模的矿脉,不限生物群系,维度。

值得注意的是。

"distribution": "uniform"                      //分布类型

这一行里,我们可以替换"uniform"为gaussian定高,surface地表,underwater水底,cave洞穴表面等等不同的分布类型,当然,后续的参数也需要修改。

不难发现,要使用cofh world控制原版矿物的生成是及其容易的,那么我们如何控制其生成一个拥有模组矿物的矿脉捏?

cofh world在自定义矿脉生成方面的应用-第1张图片

首先打开f3,准星对准你的矿物,看右下角的值,这里分别是 ic2:resource,type:copper_ore。

我们只需要将示例里的 "block" 稍作修改。(我们这里以一个混合多种矿物的矿脉为例)

"block": [
{
"name": "minecraft:iron_ore",                         //你的矿物
"weight": 60                                                    //矿脉里生此矿物的权重
},
{
"name": "ic2:resource",                                  //我们的模组矿物
"properties": {
"type": "copper_ore"                                      //type类型
},
"weight": 15
},
{
"name": "mekanism:oreblock",
"properties": {
"type": "osmium"
},
"weight": 25
}
 ],

我们在这里演示的是一个混合有ic2里的铜矿mek里的锇,原版的铁的矿脉,他们在这一个矿脉里生成的占比分别是0.6,0.15,0.25。

当然对于不同的模组,在获取“type”可能稍有差异。我们来看下边这个例子。

 {
"name": "libvulpes:ore0",
"properties": {
"varient": "8"
},
"weight": 40
}

这个方块没有对应的type,取而代之的是“varient”。