github CaffeineMC/lithium-fabric mc1.16.1-0.5.0
Lithium 0.5.0 for Minecraft 1.16.1

3 years ago

This is the first stable build of Lithium for Minecraft 1.16.1. It contains a number of bug fixes over 1.16.1-rc1 and additional optimizations to world generation.

Fixes

  • fix: Use the entity filtering predicate for nearby entity checking, fixes #29, #31
  • fix: Ensure that points of interest are correctly initialized, fixes #39
  • fix: Use the correct light occlusion check for light propagation, fixes issues with piston and other special blocks letting light through, fixes #53
  • fix: Added the same hack as vanilla to prevent leaf blocks from supporting redstone components
  • fix: Allow entities to be lazily retrieved for collision resolution again, improves entity ticking performance
  • fix: Use correct shape checks for Redstone components
  • fix: Use eye height for the origin of an explosion, fixes #66

New features and optimizations

  • new: Added optimizations for entity block path-finding and danger avoidance
  • new: Piston blocks no longer re-create the same static shape volumes when updating, provides significant speed ups
  • new: Added many optimizations for chunk retrieval, helps improve general performance when accessing world state
  • new: Added optimizations for VoxelShape merging and comparison, helps speed up many operations involving shape code
  • new: Added a specialized Collection#removeIf implementation in SortedArraySet, helps reduce CPU overhead when ticking chunks
  • new: Added additional optimizations for discovering points of interests during chunk deserialization
  • new: Added a secondary chunk index to the tick scheduler which can be used to quickly remove scheduled ticks during chunk serialization
  • new: Added an optimized Voronoi sampling algorithm for biome generation
  • new: Added optimizations to greatly reduce memory allocation rate when ticking players in the chunk map
  • new: Chunk serialization now avoids re-packing empty and already compacted section arrays, greatly speeding up chunk serialization
  • new: Optimized the function responsible for determining if a chunk is too far away from a player to spawn mobs
  • new: Use hash tables in place of linear scanning for checking if a mob can spawn in a given biome
  • new: Re-order block collisions to occur before entity collisions as they are cheaper and might allow us to early-exit when calculating entity collisions

... and from the community.

Thanks to @gegy1000, @Kroppeb, and @SuperCoder7979 for these PRs.

  • new: Added optimizations to the full-block shape cache
  • new: Added a faster cache for biome sampling, greatly reduces the amount of time needed to generate or locate biomes
  • new: Added a faster implementation for biome layer scaling
  • new: Optimizations for Nether biome generation

Changes

  • change: Replace lock implementation in DataTracker more throughly
  • change: Move away from Fabric-ASM and to Fabric's first-party access wideners
  • change: Move away from using TOML for configuration and instead use Java properties for simpler parsing and configuration
  • change: Removed some Villager AI de-streamification patches that have been implemented upstream
  • change: Moved some lighting specific optimizations into Phosphor
  • change: Moved the loading screen optimizations into Sodium
  • change: Flattened the hash table block palette to improve cache locality and performance when setting blocks in chunks

... and many refactorings to help improve the documentation and code quality of Lithium.

Don't miss a new lithium-fabric release

NewReleases is sending notifications on new releases.