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

@ -49,22 +49,14 @@ class Anvil extends Transparent implements Fallable{
public function getRequiredTypeDataBits() : int{ return 2; }
protected function decodeType(RuntimeDataReader $r) : void{
$this->setDamage($r->readBoundedInt(2, self::UNDAMAGED, self::VERY_DAMAGED));
}
protected function encodeType(RuntimeDataWriter $w) : void{
$w->writeBoundedInt(2, self::UNDAMAGED, self::VERY_DAMAGED, $this->getDamage());
protected function describeType(RuntimeDataReader|RuntimeDataWriter $w) : void{
$w->boundedInt(2, self::UNDAMAGED, self::VERY_DAMAGED, $this->damage);
}
public function getRequiredStateDataBits() : int{ return 2; }
protected function decodeState(RuntimeDataReader $r) : void{
$this->setFacing($r->readHorizontalFacing());
}
protected function encodeState(RuntimeDataWriter $w) : void{
$w->writeHorizontalFacing($this->getFacing());
protected function describeState(RuntimeDataReader|RuntimeDataWriter $w) : void{
$w->horizontalFacing($this->facing);
}
public function getDamage() : int{ return $this->damage; }