This release adds many new optimizations and fixes a few bugs. Besides the new general entity and allocation optimizations the special case of many entities being stored in a single ladder is optimized.
Additions
- new: ai.task.memory_change_counting: cache task required memory state test result
- new: alloc.blockstate: copy optimized BlockState withTable implementation from hydrogen
- new: alloc.nbt: optimized CompoundTag HashMap and more alloc patches (#314) by Maity
- new: chunk.entity_class_groups: entity collision optimizations also work on client side
- new: collections.attributes: use fastutil hash set/map
- new: collections.brain: use fastutil and flattened brain collections
- new: collections.entity_by_type: use fastutil hashmap to store entity by type collections
- new: collections.entity_ticking: clone entity list instead of iterating
- new: entity.collisions.fluid: use chunk.block_counting to skip fluid drag calculations when there is no fluid nearby
- new: entity.collisions.unpushable_cramming: optimize entity collisions inside ladders (#345) by 2No2Name
- new: entity.fast_elytra_check: skip flight stop check when not flying
- new: entity.fast_hand_swing: only calculate hand swing progress when hand is swinging
- new: entity.fast_powder_snow_check: reorder blockstate checks after faster freezing check
- new: entity.skip_equipment_change_check: skip comparing visible equipment to previously sent equipment when the equipment wasn't modified
- new: profiler: remove indirection when accessing profiler
Changes
- change: chunk.no_locking: set the LockHelper field in PalettedContainer to null (#348) by malte0811
- change: entity.data_tracker.no_locks: use shared NullReadWriteLock
- change: handle class analysis crash using fallback
Fixes
- fix: block.hopper: hopper using old stacklist of inventories after replacing stacklist
- fix: entity.collisions.movement: particles not passing through boats and shulkers
- fix: entity.collisions.movement: remove different from vanilla isBoxEmpty checks
- fix: entity.collisions: use correct 1e-7 margins for block collisions
- fix: entity.fast_retrieval: use vanilla retrieval for huge volumes
- fix: remove accidental dependency of block counting to pathfinding optimization
You should not download the api package below unless you are a developer trying to compile against Lithium's API