我的世界Minecraft 1.19 Mod开发教程分享-08-blockstate方块状态。
看一下原版的红石矿的代码
双击shift,会打开一个搜索栏,输入redstoneoreblock打开

可以看到红石矿继承与Block,具有一个LIT的boolean属性,该属性表示了红石矿是否点亮

在该类中有这样的一个方法,第一个参数表示方块的状态,方块所在的世界,以及方块的位置。

第一个方法spawnParicles是在方块的周围产生粒子效果。
通过getvalue判断是否处于激活状态
若没处于激活状态那么就将LIT设置为激活状态。
可以看到,当玩家攻击,走过,以及use时候都会调用该方法点亮红石矿。


我们来自己做一个具有不同状态的方块
创建如下的目录和文件

该类继承Block

我们首先创建一个Boolean的属性用于表示灯光的开启和关闭,

在该类中加入如下的代码:

注册自定义的方块

其中的lightLevel是根据state的LIT的状态返回是15亮度还是0亮度。

创建JSON
创建如下的JSON,描述该方块的变体和model的位置,具有亮和不亮两个变体

语言文件加入内容。

在model/block中加入json

on.json
off.json
models/item中加入JSON

在加入贴图即可。贴图的下载地址:
https://url.kaupenjoe.net/yt351/assets


测试
启动游戏

放下来后是亮的

右键后熄灭


小结
介绍了方块的状态,以及如何加入状态,如何写变体的配置model和textures