pocketmine\entity\Creature::whatBlock PHP Метод

whatBlock() публичный Метод

public whatBlock ( Level $level, $v3 )
$level pocketmine\level\Level
    public function whatBlock(Level $level, $v3)
    {
        //boybook的y轴判断法 核心 什么方块?
        $id = $level->getBlockIdAt($v3->x, $v3->y, $v3->z);
        $damage = $level->getBlockDataAt($v3->x, $v3->y, $v3->z);
        switch ($id) {
            case 0:
            case 6:
            case 27:
            case 30:
            case 31:
            case 37:
            case 38:
            case 39:
            case 40:
            case 50:
            case 51:
            case 63:
            case 66:
            case 68:
            case 78:
            case 111:
            case 141:
            case 142:
            case 171:
            case 175:
            case 244:
            case 323:
                //透明方块
                return "air";
                break;
            case 8:
            case 9:
                //水
                return "water";
                break;
            case 10:
            case 11:
                //岩浆
                return "lava";
                break;
            case 44:
            case 158:
                //半砖
                if ($damage >= 8) {
                    return "block";
                } else {
                    return "half";
                }
                break;
            case 64:
                //门
                //var_dump($damage." ");
                //TODO 不知如何判断门是否开启,因为以下条件永远满足
                if (($damage & 0x8) === 0x8) {
                    return "air";
                } else {
                    return "block";
                }
                break;
            case 85:
            case 107:
            case 139:
                //1.5格高的无法跳跃物
                return "high";
                break;
            case 65:
            case 106:
                //可攀爬物
                return "climb";
                break;
            default:
                //普通方块
                return "block";
                break;
        }
    }