挖掘 AI(dig)
基本信息
| 属性 | 值 |
|---|---|
| 类名 | toast.specialAI.ai.grief.EntityAIDig |
| 实例化 | 源码中仅注释保留:AIHandler.addDigAI 与僵尸路径块皆被注释,未注入;属于 WIP 模板 |
功能
当实体被阻挡且无法沿路径到达目标时,扫描自身周围碰撞箱中第一个非空方块作为挖掘目标,从顶到底(Y 轴 maxY→minY)搜索并开始破坏。
⚠️ 实际并不启用:
AIHandler.onEntityJoinWorld中对应的// Digging if (event.entity instanceof EntityZombie) AIHandler.addDigAI(theEntity);整段被注释,因此EntityAIDig在运行时不会注入到任何实体。可作为 WIP 占位参考。
关键属性
| 字段 | 值 | 含义 |
|---|---|---|
PLAYER_ONLY |
false |
任何 EntityLivingBase 都可成为目标(硬编码) |
LEAVE_DROPS |
false |
不留物品 |
NEEDS_TOOL |
false |
不要求正确工具 |
shouldExecute
- 游戏规则
mobGriefing = true target存在targetHighestObstruction(target)找到顶部的遮蔽方块
continueExecuting
- 该位置仍为同一目标方块
- 实体距起点距离 ≤ 4(防止走出原位)
挖掘逻辑(updateTask)
每 tick BlockHelper.getDamageAmount 累加到 blockDamage,每 20 tick 播一次 1010 音效 + swingItem。blockDamage ≥ 1.0F 后 setBlockToAir + 播 2001 破坏音。destroyBlockInWorldPartially 客户端展示挖掘进度。