mirror of
https://github.com/italicsjenga/valence.git
synced 2024-12-23 14:31: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.
672 B
672 B
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:
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