All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Minecraft 1.21.4 compatibility
- Minecraft 1.21.2-1.21.3 compatibility
- Minecraft 1.21.1 compatibility
- Marked Biospherical Expansion as incompatible
- Fabric
- NeoForge (Minecraft 1.21-1.21.1)
- Fixed an issue where C2ME would create more threads than it should
- Moved an
@Inject
onNoiseChunkGenerator#method_38332
to an@Overwrite
- This allows other mods, such as ishland's mods, to change the
Executor
ofNoiseChunkGenerator#populateNoise
'sCompletableFuture
.
- This allows other mods, such as ishland's mods, to change the
- Minecraft 1.21 compatibility
- Minecraft 1.20.5-1.20.6 compatibility
- Removed Forge support
- On 1.20.5 and up only
- Ad Astra compatibility
- Ad Astra and other dimension mods no longer crash when trying to generate chunks in their dimensions
- The code is also slightly faster and more concise, because the chunk sections array is now fetched directly from the chunk that's being generated, instead of recreating it before noise population, which may result in a very slight performance increase
- Lithium compatibility
- You no longer have to sacrifice fish for performance
- NeoForge 1.20.2+ support
- Removed the JiJ Mixin Extras, because NeoForge already includes it
ChunkSection#populateBiomes
axis order optimisation- The optimisation's axis order was incorrect (it was reversed)
- Thank you to embeddedt for spotting this issue
- NeoForge support
- Removed the dependency on (Neo)Forge, so the merged JAR can work for both NeoForge and Forge
- Forge support
- NeoForge support
GenerationShapeConfig
caching optimisationhorizontalCellBlockCount
andverticalCellBlockCount
are now cached, which skips aBiomeCoords#toBlock
call every time these methods are invoked
- ReTerraForged, Nether Depths, and Lost Cities compatibility
- The main optimisation (
NoiseChunkGenerator#populateNoise
) has been rewritten to improve compatibility, by using an@Inject
and a@Redirect
instead of an@Overwrite
- The main optimisation (
- C2ME recommendation
- Running C2ME alongside Noisium is now recommended to replace the biome population multithreading, since C2ME does it in a much better/more performant way
- Removed the biome population multithreading
- See the C2ME recommendation above
- Potential race condition due to a non-thread safe
BlockPos.Mutable
instance
- Occasional missing chunk sections
- 4 worldgen performance optimisations
ChainedBlockSource#sample
(replace an enhanced for loop with afori
loop for faster blockstate sampling)Chunk#populateBiomes
(multithread biome population)NoiseChunkGenerator#populateNoise
(set blockstates directly in the palette storage)NoiseChunkGenerator#populateNoise
(replace an enhanced for loop with afori
loop for faster chunk unlocking)