Fixed spawning of Tile entities via chunk packets

This commit is contained in:
Shoghi Cervantes
2014-06-22 18:05:42 +02:00
parent 0d5eb149ab
commit 279a438ae6
33 changed files with 58 additions and 87 deletions

View File

@ -22,11 +22,31 @@
namespace pocketmine\tile;
use pocketmine\level\format\Chunk;
use pocketmine\nbt\NBT;
use pocketmine\nbt\tag\Compound;
use pocketmine\network\protocol\EntityDataPacket;
use pocketmine\Player;
abstract class Spawnable extends Tile{
public abstract function spawnTo(Player $player);
public function spawnTo(Player $player){
if($this->closed){
return false;
}
$nbt = new NBT(NBT::LITTLE_ENDIAN);
$nbt->setData($this->getSpawnCompound());
$pk = new EntityDataPacket;
$pk->x = $this->x;
$pk->y = $this->y;
$pk->z = $this->z;
$pk->namedtag = $nbt->write();
$player->dataPacket($pk);
return true;
}
public abstract function getSpawnCompound();
public function __construct(Chunk $chunk, Compound $nbt){
parent::__construct($chunk, $nbt);