valence/crates/README.md
Ryan Johnson 2ed5a8840d
Anvil Rework (#367)
## Description

Solidify the design of `valence_anvil` so that most of the boilerplate
in the anvil example is eliminated. `AnvilLevel` is now a component of
`Instance` and automatically loads and unloads chunks as clients move
around. Events are used to communicate when chunks are loaded and
unloaded.

Also changes the system message API and introduces the `SendMessage`
trait.

Checks off a box in #288

### Known Issues
- Still no support for saving or entities.
- The handling of chunk `min_y` is wrong. I plan to fix this in an
upcoming redesign of instances and chunks.
- Uses one OS thread per anvil level. This could be improved with a
dedicated shared thread pool to parallelize the loading process.
However, it seems decently fast as it is.
- Old benchmark is commented out.
- Could use some tests.
2023-06-15 14:11:37 -07:00

27 lines
672 B
Markdown

# Crates
The standard crates used in Valence projects.
All crates here are exported by the main `valence` crate. `valence` is the intended interface for both end users and plugin authors.
Crates are versioned in lockstep with the exception of `valence_nbt`.
Ignoring transitive dependencies and `valence_core`, the dependency graph can be described like this:
```mermaid
graph TD
network --> client
client --> instance
biome --> registry
dimension --> registry
instance --> biome
instance --> dimension
instance --> entity
player_list --> client
inventory --> client
anvil --> client
entity --> block
advancement --> client
world_border --> client
```