Introduce EntityFactory

This contains all of the static stuff that was previously embedded in the Entity static root. This solves a bunch of problems like circular dependencies between parent and child classes, encapsulating logic and reducing the size of the enormous Entity.php.
This commit is contained in:
Dylan K. Taylor
2019-01-06 23:54:29 +00:00
parent b1cef8509a
commit 7d827a1c65
13 changed files with 298 additions and 247 deletions

View File

@ -28,6 +28,7 @@ namespace pocketmine\level\format;
use pocketmine\block\BlockFactory;
use pocketmine\entity\Entity;
use pocketmine\entity\EntityFactory;
use pocketmine\level\Level;
use pocketmine\nbt\tag\CompoundTag;
use pocketmine\Player;
@ -601,7 +602,7 @@ class Chunk{
foreach($this->NBTentities as $nbt){
if($nbt instanceof CompoundTag){
try{
$entity = Entity::createFromData($level, $nbt);
$entity = EntityFactory::createFromData($level, $nbt);
if(!($entity instanceof Entity)){
$changed = true;
continue;