diff --git a/src/pocketmine/Player.php b/src/pocketmine/Player.php index 0eda7fac1..7d6ee0bba 100644 --- a/src/pocketmine/Player.php +++ b/src/pocketmine/Player.php @@ -2167,7 +2167,7 @@ class Player extends Human implements CommandSender, ChunkLoader, IPlayer{ $this->level->broadcastLevelEvent( $pos, LevelEventPacket::EVENT_PARTICLE_PUNCH_BLOCK, - BlockFactory::toStaticRuntimeId($block->getId(), $block->getDamage()) | ($face << 24) + $block->getRuntimeId() | ($face << 24) ); //TODO: destroy-progress level event diff --git a/src/pocketmine/block/Block.php b/src/pocketmine/block/Block.php index 07215efa7..20d195dfa 100644 --- a/src/pocketmine/block/Block.php +++ b/src/pocketmine/block/Block.php @@ -110,6 +110,14 @@ class Block extends Position implements BlockIds, Metadatable{ return $this->itemId ?? $this->getId(); } + /** + * @internal + * @return int + */ + public function getRuntimeId() : int{ + return BlockFactory::toStaticRuntimeId($this->getId(), $this->getDamage()); + } + /** * @return int */ diff --git a/src/pocketmine/entity/object/FallingBlock.php b/src/pocketmine/entity/object/FallingBlock.php index 7aa93469a..eb023b77c 100644 --- a/src/pocketmine/entity/object/FallingBlock.php +++ b/src/pocketmine/entity/object/FallingBlock.php @@ -71,7 +71,7 @@ class FallingBlock extends Entity{ $this->block = BlockFactory::get($blockId, $damage); - $this->propertyManager->setInt(self::DATA_VARIANT, BlockFactory::toStaticRuntimeId($this->block->getId(), $this->block->getDamage())); + $this->propertyManager->setInt(self::DATA_VARIANT, $this->block->getRuntimeId()); } public function canCollideWith(Entity $entity) : bool{ diff --git a/src/pocketmine/level/Level.php b/src/pocketmine/level/Level.php index 8c025b4f8..1c1b221cd 100644 --- a/src/pocketmine/level/Level.php +++ b/src/pocketmine/level/Level.php @@ -877,16 +877,12 @@ class Level implements ChunkManager, Metadatable{ $pk->z = $b->z; if($b instanceof Block){ - $blockId = $b->getId(); - $blockData = $b->getDamage(); + $pk->blockRuntimeId = $b->getRuntimeId(); }else{ $fullBlock = $this->getFullBlock($b->x, $b->y, $b->z); - $blockId = $fullBlock >> 4; - $blockData = $fullBlock & 0xf; + $pk->blockRuntimeId = BlockFactory::toStaticRuntimeId($fullBlock >> 4, $fullBlock & 0xf); } - $pk->blockRuntimeId = BlockFactory::toStaticRuntimeId($blockId, $blockData); - $pk->flags = $first ? $flags : UpdateBlockPacket::FLAG_NONE; $packets[] = $pk; @@ -903,16 +899,12 @@ class Level implements ChunkManager, Metadatable{ $pk->z = $b->z; if($b instanceof Block){ - $blockId = $b->getId(); - $blockData = $b->getDamage(); + $pk->blockRuntimeId = $b->getRuntimeId(); }else{ $fullBlock = $this->getFullBlock($b->x, $b->y, $b->z); - $blockId = $fullBlock >> 4; - $blockData = $fullBlock & 0xf; + $pk->blockRuntimeId = BlockFactory::toStaticRuntimeId($fullBlock >> 4, $fullBlock & 0xf); } - $pk->blockRuntimeId = BlockFactory::toStaticRuntimeId($blockId, $blockData); - $pk->flags = $flags; $packets[] = $pk; @@ -1885,7 +1877,7 @@ class Level implements ChunkManager, Metadatable{ } if($playSound){ - $this->broadcastLevelSoundEvent($hand, LevelSoundEventPacket::SOUND_PLACE, 1, BlockFactory::toStaticRuntimeId($hand->getId(), $hand->getDamage())); + $this->broadcastLevelSoundEvent($hand, LevelSoundEventPacket::SOUND_PLACE, 1, $hand->getRuntimeId()); } $item->pop(); diff --git a/src/pocketmine/level/particle/DestroyBlockParticle.php b/src/pocketmine/level/particle/DestroyBlockParticle.php index 203163e63..3bec46f60 100644 --- a/src/pocketmine/level/particle/DestroyBlockParticle.php +++ b/src/pocketmine/level/particle/DestroyBlockParticle.php @@ -24,7 +24,6 @@ declare(strict_types=1); namespace pocketmine\level\particle; use pocketmine\block\Block; -use pocketmine\block\BlockFactory; use pocketmine\math\Vector3; use pocketmine\network\mcpe\protocol\LevelEventPacket; @@ -35,7 +34,7 @@ class DestroyBlockParticle extends Particle{ public function __construct(Vector3 $pos, Block $b){ parent::__construct($pos->x, $pos->y, $pos->z); - $this->data = BlockFactory::toStaticRuntimeId($b->getId(), $b->getDamage()); + $this->data = $b->getRuntimeId(); } public function encode(){ diff --git a/src/pocketmine/level/particle/TerrainParticle.php b/src/pocketmine/level/particle/TerrainParticle.php index 6864b63f9..8295f3d1d 100644 --- a/src/pocketmine/level/particle/TerrainParticle.php +++ b/src/pocketmine/level/particle/TerrainParticle.php @@ -24,11 +24,10 @@ declare(strict_types=1); namespace pocketmine\level\particle; use pocketmine\block\Block; -use pocketmine\block\BlockFactory; use pocketmine\math\Vector3; class TerrainParticle extends GenericParticle{ public function __construct(Vector3 $pos, Block $b){ - parent::__construct($pos, Particle::TYPE_TERRAIN, BlockFactory::toStaticRuntimeId($b->getId(), $b->getDamage())); + parent::__construct($pos, Particle::TYPE_TERRAIN, $b->getRuntimeId()); } }