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;
}
}