mirror of
https://github.com/italicsjenga/valence.git
synced 2024-12-25 07:11:31 +11:00
6338fc6300
## Description - Reorganize `valence_nbt` and feature flag the different parts. SNBT and binary serialization are each behind their own flags. - Add optional serde support to `valence_nbt` behind the `serde` flag. This is useful for end users working with `valence_nbt` and allows us to simplify some code in `valence_biome` and `valence_dimension`. Note that this includes a `Serializer` and `Deserializer` for `Compound` and _not_ the binary and SNBT formats. In other words, it's not possible to go directly from an arbitrary data format to binary NBT and vice versa, but it _is_ possible to go to and from `Compound` and finish the (de)serialization this way. I consider this an acceptable compromise because writing fast and correct serialization routines for `Compound` becomes more difficult when serde is in the way. Besides, the intermediate `Compound` often needs to be created anyway. - Fixed unsound uses of `std::mem::transmute` in `valence_nbt` and elsewhere. Using `transmute` to cast between slice types is unsound because slices are `#[repr(Rust)]` and the layouts are not guaranteed. `slice::from_raw_parts` is used as the replacement. |
||
---|---|---|
.. | ||
src | ||
Cargo.toml | ||
README.md |
valence_registry
Manages Minecraft's networked registries in a generic way. This includes the registry codec sent to clients during the initial join.
Consumers of registry
such as biome
and dimension
are expected to update themselves in the registries defined here. Minecraft's default registry codec is loaded by default.
End users are not expected to use this module directly.