实体方块的判断——源码中调用isNormalCube()的位置总结
2019-08-10 14:19 作者:Fallen_Breath | 我要投稿

前往TIS论坛,感受更好的 Markdown 渲染体验:https://forum.tis.world/topic/141/实体方块的判断-源码中调用isnormalcube-的位置总结

游戏版本:Minecraft Java Edition 1.13.2
源码来源:mcp
不保证下列调用目的的表述正确性,仅均为个人猜想
实体方块,实心方块,整砖,普通方块,具体指什么?
在我看来,绝大部分时间里,当我们提及“实体方块”一词的时候,指的都是能压线压箱发矿车的那一类实心完整方块。在源码中,这些,都是通过一个叫做isNormalCube()
的函数进行判定的

这个函数里的三个判据我先不细究,先来看看源码中所有调用isNormalCube()
的位置,来看看这个实体方块判断,会用在什么地方

箱子压箱判定

箱子上面有实体方块时无法打开
末影箱压箱判定

末影箱上面有实体方块时无法打开
比较器隔方块检测容器的判定

比较器可以隔着一个实体方块检测容器
红石粉压线判定

实体方块可帮助或者切断红石粉的上下连接
红石粉更新
看看是沿实体方块的表面上传还是下传
信号更新

方块增加时

方块替换时

判断信号源

地狱门方块刷新僵尸猪人

有地狱门方块引起的僵尸猪人刷新,只在实体方块上面刷
获得红石信号强度时判断强弱充能

判断更新隔实体方块检测容器的比较器输出

比较器可以隔着一个实体方块检测容器
刷怪循环
联动《MC1.13.2 刷怪机制详细讲解》里其中一种“普通方块”
集群刷怪的开始判定

实体方块会在集群刷怪的开始打断集群刷怪,这也是刷怪塔的刷怪层要避免有实体方块的原因
水生生物的刷新判定

水生生物刷新方块的上方不能是实体方块
挤出卡入实体方块中的玩家



定义玩家类中的ISNORMALCUBE()

矿车在激活的充能铁轨上贴实体方块时的启动

蝙蝠倒挂睡觉


蝙蝠得倒挂在实体方块下才可能睡觉
