Added API method Block->getVariant()

This commit is contained in:
Dylan K. Taylor 2017-09-26 19:35:04 +01:00
parent 78af87a572
commit 992c4ce6a0
3 changed files with 11 additions and 3 deletions

View File

@ -2595,7 +2595,7 @@ class Player extends Human implements CommandSender, ChunkLoader, IPlayer{
$block = $this->level->getBlock($this->temporalVector->setComponents($packet->blockX, $packet->blockY, $packet->blockZ));
//TODO: this doesn't handle crops correctly (need more API work)
$item = Item::get($block->getItemId(), $block->getDamage() & $block->getVariantBitmask());
$item = Item::get($block->getItemId(), $block->getVariant());
if($packet->addUserData){
$tile = $this->getLevel()->getTile($block);

View File

@ -136,6 +136,14 @@ class Block extends Position implements BlockIds, Metadatable{
return -1;
}
/**
* Returns the block meta, stripped of non-variant flags.
* @return int
*/
public function getVariant() : int{
return $this->meta & $this->getVariantBitmask();
}
/**
* Places the Block, using block space and block target, and side. Returns if the block has been placed.
*
@ -352,7 +360,7 @@ class Block extends Position implements BlockIds, Metadatable{
*/
public function getDrops(Item $item) : array{
return [
ItemFactory::get($this->getItemId(), $this->getDamage() & $this->getVariantBitmask(), 1)
ItemFactory::get($this->getItemId(), $this->getVariant(), 1)
];
}

View File

@ -44,7 +44,7 @@ class WoodenStairs extends Stair{
public function getDrops(Item $item) : array{
//TODO: Hierarchy problem (base class is for stone stairs)
return [
ItemFactory::get($this->getItemId(), $this->getDamage() & $this->getVariantBitmask(), 1)
ItemFactory::get($this->getItemId(), $this->getVariant(), 1)
];
}
}