实体方块的判断——源码中调用isNormalCube()的位置总结


  • TIS成员

    游戏版本:Minecraft Java Edition 1.13.2
    源码来源:mcp
    不保证下列调用目的的表述正确性,仅均为个人猜想

    实体方块,实心方块,整砖,普通方块,具体指什么?

    在我看来,绝大部分时间里,当我们提及“实体方块”一词的时候,指的都是能压线压箱发矿车的那一类实心完整方块。在源码中,这些,都是通过一个叫做isNormalCube()的函数进行判定的

    net/minecraft/block/Block.java:293

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


    isNormalCube

    net/minecraft/block/Block.java:293

    我猜这个是实体方块

    箱子压箱判定

    net/minecraft/block/BlockChest.java:335

    箱子上面有实体方块时无法打开

    末影箱压箱判定

    net/minecraft/block/BlockEnderChest.java:97

    末影箱上面有实体方块时无法打开

    比较器隔方块检测容器的判定

    net/minecraft/block/BlockRedstoneComparator.java:85

    红石粉的各种判定

    压线判定

    title

    net/minecraft/block/BlockRedstoneWire.java:150

    红石粉更新

    看看是沿实体方块的表面上传还是下传

    红石粉信号更新

    title

    net/minecraft/block/BlockRedstoneWire.java:222

    方块增加时

    title

    net/minecraft/block/BlockRedstoneWire.java:305

    方块替换时

    title

    net/minecraft/block/BlockRedstoneWire.java:341

    判断信号源

    title

    net/minecraft/block/BlockRedstoneWire.java:438

    地狱门方块刷新僵尸猪人

    title

    net/minecraft/block/BlockPortal.java:70

    只在实体方块上面刷猪人

    获得红石信号强度时判断强弱充能

    title

    net/minecraft/world/World.java:2548

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

    title

    net/minecraft/world/World.java:3071

    刷怪循环

    集群刷怪的开始判定

    title

    net/minecraft/world/WorldEntitySpawner.java:107

    实体方块会在集群刷怪的开始打断集群刷怪

    水生生物的刷新判定

    title

    net/minecraft/world/WorldEntitySpawner.java

    水生生物刷新方块的上方不能是实体方块

    挤出卡入实体方块中的玩家

    title

    net/minecraft/client/entity/EntityPlayerSP.java:474

    title

    net/minecraft/client/entity/EntityPlayerSP.java:534

    title

    net/minecraft/entity/player/EntityPlayer.java:1826

    定义玩家类中的isNormalCube()

    title

    net/minecraft/entity/player/EntityPlayer.java:1830

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

    title

    net/minecraft/entity/item/EntityMinecart.java:615

    蝙蝠倒挂睡觉

    title

    net/minecraft/entity/passive/EntityBat.java:132

    title

    net/minecraft/entity/passive/EntityBat.java:174

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


    相关链接


 

友情链接

魔茶国际
Powered by TIS