pocketmine\level\generator\object\Tree::growTree PHP Метод

growTree() публичный статический Метод

public static growTree ( pocketmine\level\ChunkManager $level, $x, $y, $z, Random $random, $type, boolean $noBigTree = true )
$level pocketmine\level\ChunkManager
$random pocketmine\utils\Random
$noBigTree boolean
    public static function growTree(ChunkManager $level, $x, $y, $z, Random $random, $type = 0, bool $noBigTree = true)
    {
        switch ($type) {
            case Sapling::SPRUCE:
                $tree = new SpruceTree();
                break;
            case Sapling::BIRCH:
                if ($random->nextBoundedInt(39) === 0) {
                    $tree = new BirchTree(true);
                } else {
                    $tree = new BirchTree();
                }
                break;
            case Sapling::JUNGLE:
                $tree = new JungleTree();
                break;
            case Sapling::ACACIA:
                $tree = new AcaciaTree();
                break;
            case Sapling::DARK_OAK:
                $tree = new DarkOakTree();
                break;
            case Sapling::OAK:
            default:
                if (!$noBigTree and $random->nextRange(0, 9) === 0) {
                    $tree = new BigTree();
                } else {
                    $tree = new OakTree();
                }
                break;
        }
        if ($tree->canPlaceObject($level, $x, $y, $z, $random)) {
            $tree->placeObject($level, $x, $y, $z, $random);
        }
    }

Usage Example

Пример #1
0
 public function onUpdate($type)
 {
     if ($type === Level::BLOCK_UPDATE_NORMAL) {
         if ($this->getSide(0)->isTransparent === true) {
             //Replace with common break method
             //TODO
             //Server::getInstance()->api->entity->drop($this, Item::get($this->id));
             $this->getLevel()->setBlock($this, new Air(), false, false, true);
             return Level::BLOCK_UPDATE_NORMAL;
         }
     } elseif ($type === Level::BLOCK_UPDATE_RANDOM) {
         //Growth
         if (mt_rand(1, 7) === 1) {
             if (($this->meta & 0x8) === 0x8) {
                 Tree::growTree($this->getLevel(), $this->x, $this->y, $this->z, new Random(mt_rand()), $this->meta & 0x7);
             } else {
                 $this->meta |= 0x8;
                 $this->getLevel()->setBlock($this, $this, true);
                 return Level::BLOCK_UPDATE_RANDOM;
             }
         } else {
             return Level::BLOCK_UPDATE_RANDOM;
         }
     }
     return false;
 }
All Usage Examples Of pocketmine\level\generator\object\Tree::growTree