Strip all remaining legacy item ID/meta stuff from blocks

the doors are now finally open, we can:
- make all the wood types dynamic
- fix glazed terracotta
- add all the new blocks

LET'S GOOOOOOOOOOOO
This commit is contained in:
Dylan K. Taylor
2022-07-02 17:48:04 +01:00
parent 323c563684
commit b125d4d25f
13 changed files with 530 additions and 605 deletions

View File

@ -23,12 +23,27 @@ declare(strict_types=1);
namespace pocketmine\block;
use pocketmine\data\runtime\block\BlockDataReader;
use pocketmine\data\runtime\block\BlockDataWriter;
use pocketmine\item\Item;
class UnknownBlock extends Transparent{
public function __construct(BlockIdentifier $idInfo, BlockBreakInfo $breakInfo){
private int $stateData;
public function __construct(BlockIdentifier $idInfo, BlockBreakInfo $breakInfo, int $stateData){
parent::__construct($idInfo, "Unknown", $breakInfo);
$this->stateData = $stateData;
}
protected function decodeType(BlockDataReader $r) : void{
//use type instead of state, so we don't lose any information like colour
//this might be an improperly registered plugin block
$this->stateData = $r->readInt(Block::INTERNAL_STATE_DATA_BITS);
}
protected function encodeType(BlockDataWriter $w) : void{
$w->writeInt(Block::INTERNAL_STATE_DATA_BITS, $this->stateData);
}
public function canBePlaced() : bool{