meta = $meta; } public function getHardness(){ return 2; } public function getToolType(){ return Tool::TYPE_AXE; } public function getName(){ static $names = [ self::FENCE_OAK => "Oak Fence", self::FENCE_SPRUCE => "Spruce Fence", self::FENCE_BIRCH => "Birch Fence", self::FENCE_JUNGLE => "Jungle Fence", self::FENCE_ACACIA => "Acacia Fence", self::FENCE_DARKOAK => "Dark Oak Fence", "", "" ]; return $names[$this->meta & 0x07]; } protected function recalculateBoundingBox(){ $north = $this->canConnect($this->getSide(Vector3::SIDE_NORTH)); $south = $this->canConnect($this->getSide(Vector3::SIDE_SOUTH)); $west = $this->canConnect($this->getSide(Vector3::SIDE_WEST)); $east = $this->canConnect($this->getSide(Vector3::SIDE_EAST)); $n = $north ? 0 : 0.375; $s = $south ? 1 : 0.625; $w = $west ? 0 : 0.375; $e = $east ? 1 : 0.625; return new AxisAlignedBB( $this->x + $w, $this->y, $this->z + $n, $this->x + $e, $this->y + 1.5, $this->z + $s ); } public function canConnect(Block $block){ return ($block instanceof Fence or $block instanceof FenceGate) ? true : $block->isSolid() and !$block->isTransparent(); } }