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

pre-release4 years ago

The Lithium 0.5 series is here now, and it's packing a huge number of new improvements and optimizations.

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

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 Voroni sampling algorithm for biome generation
  • new: Added optimizations to the full-block shape cache (thanks to gegy1000)
  • new: Added a faster cache for biome sampling, greatly reduces the amount of time needed to generate or locate biomes (thanks to gegy1000, SuperCoder7979, and Kroppeb)
  • 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

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 release

NewReleases is sending notifications on new releases.