A giant hack to cut down code needed for runtime block serialization by 50%

this also avoids repeated information and inconsistencies.
This commit is contained in:
Dylan K. Taylor
2022-07-18 18:25:41 +01:00
parent cf34f88a67
commit 6d4279671e
90 changed files with 380 additions and 717 deletions

View File

@ -36,14 +36,10 @@ class UnknownBlock extends Transparent{
$this->stateData = $stateData;
}
protected function decodeType(RuntimeDataReader $r) : void{
protected function describeType(RuntimeDataReader|RuntimeDataWriter $w) : 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(RuntimeDataWriter $w) : void{
$w->writeInt(Block::INTERNAL_STATE_DATA_BITS, $this->stateData);
$w->int(Block::INTERNAL_STATE_DATA_BITS, $this->stateData);
}
public function canBePlaced() : bool{