public function tiankengy(Level $level, $x, $y, $z, $l, $id, $bd)
{
if ($level->getBlock(new Vector3($x, $y, $z))->getId() == 0) {
$level->setBlock(new Vector3($x, $y, $z), Item::get($id, $bd)->getBlock());
}
if ($l >= 0) {
$random = mt_rand(0, 99999) / 100000;
$mz = $this->ranz(4);
foreach ($mz as $sss) {
switch ($mz[$sss]) {
case 0:
if ($level->getBlock(new Vector3($x, $y, $z - 1))->getId() == 0) {
$this->tiankengy($level, $x, $y, $z - 1, $l - $random, $id, $bd);
}
break;
case 1:
if ($level->getBlock(new Vector3($x, $y, $z + 1))->getId() == 0) {
$this->tiankengy($level, $x, $y, $z + 1, $l - $random, $id, $bd);
}
break;
case 2:
if ($level->getBlock(new Vector3($x + 1, $y, $z))->getId() == 0) {
$this->tiankengy($level, $x + 1, $y, $z, $l - $random, $id, $bd);
}
break;
case 3:
if ($level->getBlock(new Vector3($x - 1, $y, $z))->getId() == 0) {
$this->tiankengy($level, $x - 1, $y, $z, $l - $random, $id, $bd);
}
break;
}
}
}
}