mirror of
https://github.com/italicsjenga/valence.git
synced 2024-12-23 22:41:30 +11:00
2ed5a8840d
## 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.
27 lines
672 B
Markdown
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
|
|
```
|