Skip to content

Releases: pmmp/ext-chunkutils2

0.3.5

24 Mar 16:59
036b4af
Compare
Choose a tag to compare
  • Enable vectorizing optimizations to significantly improve performance of validation in PalettedBlockArray::fromData().

0.3.4

26 Feb 13:33
d4b00ed
Compare
Choose a tag to compare

Changes since 0.3.3

  • Fixed LightArray::isUniform() incorrectly returning false for arrays which were uniform with a non-zero value.
  • Slightly improved performance of PalettedBlockArray::getPalette().

0.3.3

13 Oct 12:50
96e3389
Compare
Choose a tag to compare

Changes since 0.3.2

  • Fixed bogus corruption errors due to non-zero bits in 3, 5 and 6 bits-per-block PalettedBlockArrays.
  • Fixed memory corruption and assert failures in the following methods (now ignoring all but the final 4 bits in the coordinates given):
    • PalettedBlockArray::get()
    • PalettedBlockArray::set()
    • LightArray::get()
    • LightArray::set()

0.3.2

28 Apr 12:02
f6235ba
Compare
Choose a tag to compare

Changes since 0.3.1

  • Now PHP 8.1 ready.
  • PalettedBlockArray::fromData() now performs validation of the provided offset table (words) to ensure that no offset value points to an uninitialized or invalid palette offset. This was mainly a problem with corrupted data loaded from disk, where the palette for a block array was truncated for some reason.
    • Fixes various uninitialized values being returned in cases where offsets pointed outside of the palette.
    • Fixes a bug in 16 bpb that caused memory corruption outside the bounds of the palette when writing a block while the palette was already full. This happened because 16 bits can represent up to 65536 offsets, but the palette size is hard-capped at 4096. When 16 bpb has used all 4096 palette entries, the one used for the replaced block is directly overwritten without validating the offset.

0.3.1

07 Sep 21:56
f04dcb2
Compare
Choose a tag to compare

Changes since 0.3.0

  • Fixed a bug in PalettedBlockArray's garbage collection. If the bits-per-block of a palette was too high, but the palette had no holes, GC would not take place.

0.3.0

07 Sep 19:51
8f1329e
Compare
Choose a tag to compare

Changes since 0.2.0

  • PHP 8.0 is now required as a minimum.
  • Added support for 0-bits-per-block palettes (readiness for Minecraft Bedrock 1.18).
  • Added LightArray->isUniform(), which tells if the light array only contains the given unique value.
  • Fixed SubChunkConverter::convertFromLegacyColumn() not checking bounds of the yOffset parameter.