public function __construct(Entity $target, $distance = 0, $tailCount = 0, $tailDistance = null)
{
parent::__construct($target->getLevel()->getChunk($target->x >> 4, $target->z >> 4), new Compound("", ["Pos" => new Enum("Pos", [new Double("", $target->x), new Double("", $target->y + 0.5), new Double("", $target->z)]), "Motion" => new Enum("Motion", [new Double("", 0), new Double("", 0), new Double("", 0)]), "Rotation" => new Enum("Rotation", [new Float("", 0), new Float("", 0)]), "TileID" => new Int("TileID", 1), "Data" => new Byte("Data", 0)]));
$this->target = $target;
$this->player = $target instanceof Player ? $target : ($target instanceof MobPetEntity && $target->player instanceof Player ? $target->player : null);
$this->distance = $target instanceof Player || $tailDistance == null ? $distance : $tailDistance;
if ($tailCount > 0) {
new MobPetEntity($this, $distance, $tailCount - 1, $tailDistance);
}
$this->isHead = $target instanceof Player;
parent::spawnToAll();
}