花 & 盆栽花 1.21.1 NeoForge 长线教程计划
本篇教程的视频
本篇教程的源代码
GitHub地址:
查看源代码
这篇教程我们来看看小植物如何添加,并添加它们的盆栽
当然,这里我们只讲一个方块大小的花,像玫瑰花这种两个方块大小的,感兴趣的同学可以自行研究
这里我们还是来看看源代码
1 | public static final Block DANDELION = register( |
这里我们以DANDELION为例,这也就是蒲公英
可以看到,它实例化的是FlowerBlock
FlowerBlock的第一个参数是合成谜之炖菜时携带的效果,第二个参数是持续时间,单位秒
后面就是方块的设置,里面的参数除了offsetType,其他我们也都见过了,这里就不解释了
offsetType这个是随机偏移,当我们放置花这种比较小的东西时,你会发现它并不是放置在方块正中央的,
而是向X和Z轴上随机偏移了一些,这正是offsetType方法起的作用
接下来再看看盆栽花
1 | public static final Block POTTED_DANDELION = register("potted_dandelion", flowerPot(DANDELION)); |
盆栽花的注册封装了一个方法,不过它也没有什么特别的地方,实例化的是FlowerPotBlock
pRequiredFeatures这个参数是可选的,用来指定这个盆栽花需要哪些世界生成特性,但原版似乎没有用到这个
注册花
接下来我们就来注册自己的花和盆栽花
注册方块
1 | public static final DeferredBlock<Block> SIMPLE_FLOWER = registerBlock("simple_flower", |
花实例化的是FlowerBlock,盆栽花实例化的是FlowerPotBlock
注意,盆栽花是没有对应的方块物品的,所以我们直接使用BLOCKS.register来注册
加入物品栏
1 | output.accept(ModBlocks.SIMPLE_FLOWER); |
添加映射
接下来我们到模组主类的onClientSetup方法下添加以下语句
1 | event.enqueueWork(() -> { |
这是让我们的盆栽花能正确放置我们的花
数据文件
战利品列表
1 | dropSelf(ModBlocks.SIMPLE_FLOWER.get()); |
盆栽花的战利品列表同样特殊
语言文件
1 | add(ModBlocks.SIMPLE_FLOWER.get(), "Simple Flower"); |
模型文件
1 | simpleBlock(ModBlocks.SIMPLE_FLOWER.get(), |
这个方法与树苗的差不多,不过盆栽花我们需要使用额外的方法创建
还有物品的模型文件
1 | blockItem(ModBlocks.SIMPLE_FLOWER); |
测试
那么放好贴图文件之后,我们就可以进入游戏进行测试了
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Tomorrow-Land!











