2bb90d3 Preserve legacy stained glass pane falling dust appearance in 1.12->1.13 (#4955)
Map stained glass pane falling dust particles to the corresponding stained glass block state when translating from 1.12.2 to 1.13.
Legacy clients render stained glass and stained glass pane falling dust identically. Modern clients render stained glass pane falling dust with an incorrect dark tint. Preserve the legacy appearance while leaving other block-backed particles unchanged.
This update mainly brings solid performance improvements for the most time intensive tasks ViaVersion has to handle!
- Fixed a regression with tag handling for adventure mode predicates in 1.20.3->1.20.5
- Performance improvements
- Improve performance of chunk reading, handling, and writing performance
- Hashing of item stacks is now only done once per pipeline instead of once per protocol transition
- Improve caching of data held by specific chunks (by Pablete1234)
- Minor improvements to NBT tag reading and writing
If you want to get larger version updates early, consider supporting me via https://viaversion.com/donate. See the previous update notes for more info.
1e2c5db Run full item hashing only once per pipeline By only hashing the original item in the first clientbound item rewriter, repeated expensive item hashing (mostly thanks to big text components) in every protocol can be avoided. It is eventually cached in the last clientbound/first serverbound protocol, to be restored immediately and then passed along to the end unchanged.
a11d7eb Improve nbt I/O stream performance A disgusting lot of micro optimization, but stuff that ends up being worth the troubles given how much data nbt tags make up with registry data, block entities and text components.
This generally reduces allocations and work done in reading due to how often the tag keys and values will be ASCII-only characters.
Writing fully drops the additional array allocation as well as extra iterations for length counting

