diff --git a/src/world/generator/object/Tree.php b/src/world/generator/object/Tree.php index 836393541..b37f56a3d 100644 --- a/src/world/generator/object/Tree.php +++ b/src/world/generator/object/Tree.php @@ -26,7 +26,6 @@ namespace pocketmine\world\generator\object; use pocketmine\block\Block; use pocketmine\block\Leaves; use pocketmine\block\Sapling; -use pocketmine\block\utils\TreeType; use pocketmine\block\VanillaBlocks; use pocketmine\utils\Random; use pocketmine\world\BlockTransaction; @@ -49,32 +48,6 @@ abstract class Tree{ $this->treeHeight = $treeHeight; } - /** - * @param TreeType|null $type default oak - */ - public static function get(Random $random, ?TreeType $type = null) : ?self{ - $type = $type ?? TreeType::OAK(); - if($type->equals(TreeType::SPRUCE())){ - return new SpruceTree(); - }elseif($type->equals(TreeType::BIRCH())){ - if($random->nextBoundedInt(39) === 0){ - return new BirchTree(true); - }else{ - return new BirchTree(); - } - }elseif($type->equals(TreeType::JUNGLE())){ - return new JungleTree(); - }elseif($type->equals(TreeType::OAK())){ //default - return new OakTree(); - /*if($random->nextRange(0, 9) === 0){ - $tree = new BigTree(); - }else{*/ - - //} - } - return null; - } - public function canPlaceObject(ChunkManager $world, int $x, int $y, int $z, Random $random) : bool{ $radiusToCheck = 0; for($yy = 0; $yy < $this->treeHeight + 3; ++$yy){ diff --git a/src/world/generator/object/TreeFactory.php b/src/world/generator/object/TreeFactory.php new file mode 100644 index 000000000..692181738 --- /dev/null +++ b/src/world/generator/object/TreeFactory.php @@ -0,0 +1,56 @@ +equals(TreeType::SPRUCE())){ + return new SpruceTree(); + }elseif($type->equals(TreeType::BIRCH())){ + if($random->nextBoundedInt(39) === 0){ + return new BirchTree(true); + }else{ + return new BirchTree(); + } + }elseif($type->equals(TreeType::JUNGLE())){ + return new JungleTree(); + }elseif($type->equals(TreeType::OAK())){ //default + return new OakTree(); + /*if($random->nextRange(0, 9) === 0){ + $tree = new BigTree(); + }else{*/ + + //} + } + return null; + } +} diff --git a/src/world/generator/populator/Tree.php b/src/world/generator/populator/Tree.php index f1de8c114..26063d99f 100644 --- a/src/world/generator/populator/Tree.php +++ b/src/world/generator/populator/Tree.php @@ -27,7 +27,7 @@ use pocketmine\block\BlockLegacyIds; use pocketmine\block\utils\TreeType; use pocketmine\utils\Random; use pocketmine\world\ChunkManager; -use pocketmine\world\generator\object\Tree as ObjectTree; +use pocketmine\world\generator\object\TreeFactory; class Tree extends Populator{ /** @var int */ @@ -62,7 +62,7 @@ class Tree extends Populator{ if($y === -1){ continue; } - $tree = ObjectTree::get($random, $this->type); + $tree = TreeFactory::get($random, $this->type); $transaction = $tree?->getBlockTransaction($world, $x, $y, $z, $random); $transaction?->apply(); }