diff --git a/src/world/format/io/region/Anvil.php b/src/world/format/io/region/Anvil.php index dc2c039d4..36fdcfda2 100644 --- a/src/world/format/io/region/Anvil.php +++ b/src/world/format/io/region/Anvil.php @@ -31,10 +31,6 @@ use pocketmine\world\format\SubChunk; class Anvil extends RegionWorldProvider{ use LegacyAnvilChunkTrait; - protected function serializeSubChunk(SubChunk $subChunk) : CompoundTag{ - throw new \RuntimeException("Unsupported"); - } - protected function deserializeSubChunk(CompoundTag $subChunk) : SubChunk{ return new SubChunk(BlockLegacyIds::AIR << 4, [SubChunkConverter::convertSubChunkYZX( self::readFixedSizeByteArray($subChunk, "Blocks", 4096), diff --git a/src/world/format/io/region/LegacyAnvilChunkTrait.php b/src/world/format/io/region/LegacyAnvilChunkTrait.php index c61914e39..c507c8638 100644 --- a/src/world/format/io/region/LegacyAnvilChunkTrait.php +++ b/src/world/format/io/region/LegacyAnvilChunkTrait.php @@ -46,11 +46,6 @@ use function zlib_decode; * @internal */ trait LegacyAnvilChunkTrait{ - - protected function serializeChunk(Chunk $chunk) : string{ - throw new \RuntimeException("Unsupported"); - } - /** * @throws CorruptedChunkException */ diff --git a/src/world/format/io/region/McRegion.php b/src/world/format/io/region/McRegion.php index 1a80f90b6..2b2b68384 100644 --- a/src/world/format/io/region/McRegion.php +++ b/src/world/format/io/region/McRegion.php @@ -39,14 +39,6 @@ use pocketmine\world\format\SubChunk; use function zlib_decode; class McRegion extends RegionWorldProvider{ - - /** - * @throws \RuntimeException - */ - protected function serializeChunk(Chunk $chunk) : string{ - throw new \RuntimeException("Unsupported"); - } - /** * @throws CorruptedChunkException */ diff --git a/src/world/format/io/region/RegionWorldProvider.php b/src/world/format/io/region/RegionWorldProvider.php index a54fce73e..0ff7925a5 100644 --- a/src/world/format/io/region/RegionWorldProvider.php +++ b/src/world/format/io/region/RegionWorldProvider.php @@ -163,8 +163,6 @@ abstract class RegionWorldProvider extends BaseWorldProvider{ } } - abstract protected function serializeChunk(Chunk $chunk) : string; - /** * @throws CorruptedChunkException */ @@ -224,11 +222,6 @@ abstract class RegionWorldProvider extends BaseWorldProvider{ return null; } - public function saveChunk(int $chunkX, int $chunkZ, Chunk $chunk) : void{ - self::getRegionIndex($chunkX, $chunkZ, $regionX, $regionZ); - $this->loadRegion($regionX, $regionZ)->writeChunk($chunkX & 0x1f, $chunkZ & 0x1f, $this->serializeChunk($chunk)); - } - private function createRegionIterator() : \RegexIterator{ return new \RegexIterator( new \FilesystemIterator( diff --git a/src/world/format/io/region/WritableRegionWorldProvider.php b/src/world/format/io/region/WritableRegionWorldProvider.php new file mode 100644 index 000000000..156caa3e6 --- /dev/null +++ b/src/world/format/io/region/WritableRegionWorldProvider.php @@ -0,0 +1,58 @@ +loadRegion($regionX, $regionZ)->writeChunk($chunkX & 0x1f, $chunkZ & 0x1f, $this->serializeChunk($chunk)); + } +}