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)); $block = $this->level->getBlock($this->temporalVector->setComponents($packet->blockX, $packet->blockY, $packet->blockZ));
//TODO: this doesn't handle crops correctly (need more API work) //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){ if($packet->addUserData){
$tile = $this->getLevel()->getTile($block); $tile = $this->getLevel()->getTile($block);

View File

@ -136,6 +136,14 @@ class Block extends Position implements BlockIds, Metadatable{
return -1; 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. * 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{ public function getDrops(Item $item) : array{
return [ 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{ public function getDrops(Item $item) : array{
//TODO: Hierarchy problem (base class is for stone stairs) //TODO: Hierarchy problem (base class is for stone stairs)
return [ return [
ItemFactory::get($this->getItemId(), $this->getDamage() & $this->getVariantBitmask(), 1) ItemFactory::get($this->getItemId(), $this->getVariant(), 1)
]; ];
} }
} }