pocketmine\block\Door::recalculateBoundingBox PHP Méthode

recalculateBoundingBox() protected méthode

protected recalculateBoundingBox ( )
    protected function recalculateBoundingBox()
    {
        $f = 0.1875;
        $damage = $this->getFullDamage();
        $bb = new AxisAlignedBB($this->x, $this->y, $this->z, $this->x + 1, $this->y + 2, $this->z + 1);
        $j = $damage & 0x3;
        $isOpen = ($damage & 0x4) > 0;
        $isRight = ($damage & 0x10) > 0;
        if ($j === 0) {
            if ($isOpen) {
                if (!$isRight) {
                    $bb->setBounds($this->x, $this->y, $this->z, $this->x + 1, $this->y + 1, $this->z + $f);
                } else {
                    $bb->setBounds($this->x, $this->y, $this->z + 1 - $f, $this->x + 1, $this->y + 1, $this->z + 1);
                }
            } else {
                $bb->setBounds($this->x, $this->y, $this->z, $this->x + $f, $this->y + 1, $this->z + 1);
            }
        } elseif ($j === 1) {
            if ($isOpen) {
                if (!$isRight) {
                    $bb->setBounds($this->x + 1 - $f, $this->y, $this->z, $this->x + 1, $this->y + 1, $this->z + 1);
                } else {
                    $bb->setBounds($this->x, $this->y, $this->z, $this->x + $f, $this->y + 1, $this->z + 1);
                }
            } else {
                $bb->setBounds($this->x, $this->y, $this->z, $this->x + 1, $this->y + 1, $this->z + $f);
            }
        } elseif ($j === 2) {
            if ($isOpen) {
                if (!$isRight) {
                    $bb->setBounds($this->x, $this->y, $this->z + 1 - $f, $this->x + 1, $this->y + 1, $this->z + 1);
                } else {
                    $bb->setBounds($this->x, $this->y, $this->z, $this->x + 1, $this->y + 1, $this->z + $f);
                }
            } else {
                $bb->setBounds($this->x + 1 - $f, $this->y, $this->z, $this->x + 1, $this->y + 1, $this->z + 1);
            }
        } elseif ($j === 3) {
            if ($isOpen) {
                if (!$isRight) {
                    $bb->setBounds($this->x, $this->y, $this->z, $this->x + $f, $this->y + 1, $this->z + 1);
                } else {
                    $bb->setBounds($this->x + 1 - $f, $this->y, $this->z, $this->x + 1, $this->y + 1, $this->z + 1);
                }
            } else {
                $bb->setBounds($this->x, $this->y, $this->z + 1 - $f, $this->x + 1, $this->y + 1, $this->z + 1);
            }
        }
        return $bb;
    }