ItemBlock: reference blocks directly (take 2)

This was first attempted in f64dc01bd1, but reverted, since I hadn't considered how to handle stripping state data from blocks.

This removes the abusable API RuntimeBlockStateRegistry::fromTypeId() and related methods. These were only used to allow ItemBlocks to magically start referencing other blocks if the blocks were overridden by a plugin, but this was never a well-supported use-case anyway.

Instead of relying on RuntimeBlockStateRegistry, we remember the state that the block had during its constructor, and use that to normalize the non-item properties for asItem().

closes #5609
This commit is contained in:
Dylan K. Taylor
2023-04-13 12:44:47 +01:00
parent 1c626baf1a
commit 874fdf5adb
18 changed files with 57 additions and 83 deletions

View File

@ -28,7 +28,7 @@ use pocketmine\data\runtime\RuntimeDataDescriber;
class Sponge extends Opaque{
protected bool $wet = false;
protected function describeType(RuntimeDataDescriber $w) : void{
public function describeType(RuntimeDataDescriber $w) : void{
$w->bool($this->wet);
}