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

@ -37,8 +37,7 @@ use pocketmine\world\BlockTransaction;
class Candle extends Transparent{
use CandleTrait {
decodeState as decodeLitState;
encodeState as encodeLitState;
describeState as encodeLitState;
getLightLevel as getBaseLightLevel;
}
@ -51,14 +50,9 @@ class Candle extends Transparent{
return 3;
}
protected function decodeState(RuntimeDataReader $r) : void{
$this->decodeLitState($r);
$this->count = $r->readBoundedInt(2, self::MIN_COUNT, self::MAX_COUNT);
}
protected function encodeState(RuntimeDataWriter $w) : void{
protected function describeState(RuntimeDataReader|RuntimeDataWriter $w) : void{
$this->encodeLitState($w);
$w->writeBoundedInt(2, self::MIN_COUNT, self::MAX_COUNT, $this->count);
$w->boundedInt(2, self::MIN_COUNT, self::MAX_COUNT, $this->count);
}
public function getCount() : int{ return $this->count; }