[ci skip] more world stuff for changelog

This commit is contained in:
Dylan K. Taylor 2020-12-05 01:02:53 +00:00
parent d728160a77
commit 070d8efda3

View File

@ -761,11 +761,46 @@ This version features substantial changes to the network system, improving coher
- The following API methods have been added:
- `World->registerChunkListener()`
- `World->unregisterChunkListener()`
- `Chunk->isDirty()` (replacement for `Chunk->hasChanged()`)
- `Chunk->getDirtyFlag()` (more granular component-based chunk dirty-flagging, used to avoid saving unmodified parts of the chunk)
- `Chunk->setDirty()`
- `Chunk->setDirtyFlag()`
- The following API methods have been removed:
- `ChunkLoader->getLoaderId()` (now object ID is used)
- `ChunkLoader->isLoaderActive()`
- `ChunkLoader->getPosition()`
- `ChunkLoader->getLevel()`
- `Chunk->fastSerialize()` (use `FastChunkSerializer::serialize()` instead)
- `Chunk->getBlockData()`
- `Chunk->getBlockDataColumn()`
- `Chunk->getBlockId()`
- `Chunk->getBlockIdColumn()`
- `Chunk->getBlockLight()`
- `Chunk->getBlockLightColumn()`
- `Chunk->getBlockSkyLight()`
- `Chunk->getBlockSkyLightColumn()`
- `Chunk->getMaxY()`
- `Chunk->getSubChunkSendCount()` (this was specialized for protocol usage)
- `Chunk->getX()`
- `Chunk->getZ()`
- `Chunk->hasChanged()` (use `Chunk->isDirty()` or `Chunk->getDirtyFlag()` instead)
- `Chunk->isGenerated()`
- `Chunk->networkSerialize()` (see `ChunkSerializer` in the `network\mcpe\serializer` package)
- `Chunk->populateSkyLight()` (use `SkyLightUpdate->recalculateChunk()` instead)
- `Chunk->recalculateHeightMap()` (moved to `SkyLightUpdate`)
- `Chunk->recalculateHeightMapColumn()` (moved to `SkyLightUpdate`)
- `Chunk->setAllBlockLight()`
- `Chunk->setAllBlockSkyLight()`
- `Chunk->setBlock()`
- `Chunk->setBlockData()`
- `Chunk->setBlockId()`
- `Chunk->setBlockLight()`
- `Chunk->setBlockSkyLight()`
- `Chunk->setChanged()` (use `Chunk->setDirty()` or `Chunk->setDirtyFlag()` instead)
- `Chunk->setGenerated()`
- `Chunk->setX()`
- `Chunk->setZ()`
- `Chunk::fastDeserialize()` (use `FastChunkSerializer::deserialize()` instead)
- `World->isFullBlock()`
- `World->getFullBlock()`
- `World->getBlockIdAt()`
@ -801,9 +836,12 @@ This version features substantial changes to the network system, improving coher
- `World->addRandomTickedBlock()` now accepts `Block` instead of `int, int`.
- `World->removeRandomTickedBlock()` now accepts `Block` instead of `int, int`.
- `World->setBlock()` has had the `$direct` parameter removed.
- `World->loadChunk()` now returns `?Chunk`, and the `$create` parameter is mandatory.
- `World->loadChunk()` now returns `?Chunk`, and the `$create` parameter has been removed.
- `World->getChunk()` no longer accepts a `$create` parameter.
- `World->updateAllLight()` now accepts `int, int, int` instead of `Vector3`.
- `Chunk->__construct()` now has the signature `array<int, SubChunk> $subChunks, ?list<CompoundTag> $entities, ?list<CompoundTag> $tiles, ?BiomeArray $biomeArray, ?HeightArray $heightArray`.
- `Chunk->getSubChunk()` now returns `SubChunk` instead of `SubChunkInterface|null` (and throws `InvalidArgumentException` on out-of-bounds coordinates).
- `Chunk->setSubChunk()` no longer accepts `SubChunkInterface`, and the `$allowEmpty` parameter has been removed.
- The following API methods have been renamed / moved:
- `Level->getCollisionCubes()` -> `World->getCollisionBoxes()`
- `World->getName()` -> `World->getDisplayName()`
@ -812,9 +850,10 @@ This version features substantial changes to the network system, improving coher
- The following methods now throw `WorldException` when targeting ungenerated terrain:
- `World->getSafeSpawn()` (previously it just silently returned the input position)
- `World->getHighestBlockAt()` (previously it returned -1)
- Extracted a unit `pocketmine\world\format\io\FastChunkSerializer` from `Chunk`:
- `Chunk->fastDeserialize()` -> `FastChunkSerializer::deserialize()`
- `Chunk->fastSerialize()` -> `FastChunkSerializer::serialize()`
- `World->loadChunk()` no longer creates an empty chunk when the target chunk doesn't exist on disk.
- `World->setChunk()` now fires `ChunkLoadEvent` and `ChunkListener->onChunkLoaded()` when replacing a chunk that didn't previously exist.
- `World->useBreakOn()` now returns `false` when the target position is in an ungenerated or unloaded chunk (or chunk locked for generation).
- `World->useItemOn()` now returns `false` when the target position is in an ungenerated or unloaded chunk (or chunk locked for generation).
- A `ChunkListener` interface has been extracted from `ChunkLoader`. The following methods have been moved:
- `ChunkLoader->onBlockChanged()` -> `ChunkListener->onBlockChanged()`
- `ChunkLoader->onChunkChanged()` -> `ChunkListener->onChunkChanged()`