valence/crates
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
..
valence Anvil Rework (#367) 2023-06-15 14:11:37 -07:00
valence_advancement Update to Minecraft 1.20.1 (#358) 2023-06-13 14:38:55 -07:00
valence_anvil Anvil Rework (#367) 2023-06-15 14:11:37 -07:00
valence_biome Registry Redesign (#361) 2023-06-11 09:08:38 -07:00
valence_block Move packets out of valence_core. (#335) 2023-05-29 01:36:11 -07:00
valence_build_utils Reorganize Project (#321) 2023-04-21 14:43:59 -07:00
valence_client Anvil Rework (#367) 2023-06-15 14:11:37 -07:00
valence_core Update to Minecraft 1.20.1 (#358) 2023-06-13 14:38:55 -07:00
valence_core_macros Move packets out of valence_core. (#335) 2023-05-29 01:36:11 -07:00
valence_dimension Registry Redesign (#361) 2023-06-11 09:08:38 -07:00
valence_entity Update to Minecraft 1.20.1 (#358) 2023-06-13 14:38:55 -07:00
valence_instance Anvil Rework (#367) 2023-06-15 14:11:37 -07:00
valence_inventory Update to Minecraft 1.20.1 (#358) 2023-06-13 14:38:55 -07:00
valence_nbt Registry Redesign (#361) 2023-06-11 09:08:38 -07:00
valence_network Move packets out of valence_core. (#335) 2023-05-29 01:36:11 -07:00
valence_player_list Move packets out of valence_core. (#335) 2023-05-29 01:36:11 -07:00
valence_registry Update to Minecraft 1.20.1 (#358) 2023-06-13 14:38:55 -07:00
valence_spatial_index Reorganize Project (#321) 2023-04-21 14:43:59 -07:00
valence_world_border Anvil Rework (#367) 2023-06-15 14:11:37 -07:00
README.md Anvil Rework (#367) 2023-06-15 14:11:37 -07:00

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