Smashing Rock Entity
粉碎石投掷实体,继承自 EntityThrowable。
基本属性
| 属性 | 值 |
|---|---|
| 父类 | EntityThrowable(EntitySmashingRock.java:12) |
| 注册名 | chisel.SmashingRock(Features.java:3611) |
| 物品来源 | ItemSmashingRock |
| 追踪距离 / 更新频率 | 40 / 1(Features.java:3611) |
| 可被追踪 | true |
构造函数
支持三种构造方式:
EntitySmashingRock(World)- 空白构造EntitySmashingRock(World, EntityLivingBase)- 以实体为基准生成EntitySmashingRock(World, double, double, double)- 指定坐标生成
碰撞行为
onImpact 处理碰撞:
- 获取碰撞坐标和面
- 根据 sideHit 调整坐标
- 调用
smash(world, x, y, z)破坏方块 - 设置实体为 dead
- 播放破坏音效
smash 效果
已订正(语义写反 —— 本条目最严重的错误):原文称 “
smash效果:破坏指定坐标的方块 / 影响周围半径 5 格范围 / 衰减系数 3”。smash()不破坏方块。它是一个方块降级转化函数, 源码中没有setBlockToAir、没有掉落物生成、没有硬度判断。实际逻辑(
EntitySmashingRock.java:79-93):
原方块 变成 minecraft:stoneminecraft:cobblestoneminecraft:stonebrickmeta 0minecraft:stonebrickmeta 2minecraft:cobblestoneminecraft:gravelminecraft:gravelminecraft:sand其他任何方块 完全不变( :92提前 return)正确描述:粉碎石命中范围内把石头类方块逐级风化成沙,对其他方块无效。
半径 5、衰减 3 的部分正确(
EntitySmashingRock.java:57-58)。
命中音效
onImpact 在客户端播放 chisel:squash(音量 1.0f、音调 1.0f,
EntitySmashingRock.java:53)。原文未提及该音效。