花 & 盆栽花 1.20 Fabric 长线教程计划
本篇教程的视频
(待发布)
本篇教程的源代码
(待发布)
本篇教程目标
- 理解原版的花和盆栽花的注册
- 学会自己注册花和盆栽花
查看源代码
这篇教程我们来看看小植物
如何添加,并添加它们的盆栽
当然,这里我们只讲一个方块
大小的花,像玫瑰花
这种两个方块大小的,感兴趣的同学可以自行研究
这里我们还是来看看源代码
1 | public static final Block DANDELION = register( |
这里我们以DANDELION
为例,这也就是蒲公英
可以看到,它实例化的是FlowerBlock
FlowerBlock
的第一个参数是合成谜之炖菜
时携带的效果
,第二个参数是持续时间
,单位秒
后面就是方块的设置,里面的参数除了offset
,其他我们也都见过了,这里就不解释了
offset
这个是随机偏移,当我们放置花这种比较小的东西时,你会发现它并不是放置在方块正中央
的,
而是向X
和Z
轴上随机偏移了一些,这正是offset
方法起的作用
接下来再看看盆栽花
1 | public static final Block POTTED_DANDELION = register("potted_dandelion", createFlowerPotBlock(DANDELION)); |
盆栽花的注册封装了一个方法,不过它也没有什么特别的地方,实例化的是FlowerPotBlock
requireFeatures
这个参数是可选的,用来指定这个盆栽花需要哪些世界生成特性,但原版似乎没有用到这个
注册花
接下来我们就来注册自己的花
和盆栽花
注册方块
1 | public static final Block SIMPLE_FLOWER = register("simple_flower", |
花实例化的是FlowerBlock
,盆栽花实例化的是FlowerPotBlock
注意,盆栽花是没有对应的方块物品
的,所以我们直接使用Registry.register
来注册
加入物品栏
1 | entries.add(ModBlocks.SIMPLE_FLOWER); |
渲染层设置
花的材质一般也是带有全透明区域的,所以我们也加一下,加上花和盆栽花
1 | BlockRenderLayerMap.INSTANCE.putBlocks(RenderLayer.getCutout(), ModBlocks.SIMPLE_FLOWER, ModBlocks.POTTED_SIMPLE_FLOWER); |
数据文件
语言文件
1 | translationBuilder.add(ModBlocks.SIMPLE_FLOWER, "Simple Flower"); |
模型文件
1 | blockStateModelGenerator.registerFlowerPotPlant(ModBlocks.SIMPLE_FLOWER, ModBlocks.POTTED_SIMPLE_FLOWER, BlockStateModelGenerator.TintType.NOT_TINTED); |
这里注册方法用的是registerFlowerPotPlant
,它会生成花和盆栽花对应的方块状态和方块模型文件
测试
那么放好贴图文件之后,我们就可以进入游戏进行测试了
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Tomorrow-Land!