valence/crates
Ryan Johnson c5557e744d
Move packets out of valence_core. (#335)
## Description

- Move all packets out of `valence_core` and into the places where
they're actually used. This has a few benefits:
- Avoids compiling code for packets that go unused when feature flags
are disabled.
- Code is distributed more uniformly across crates, improving
compilation times.
- Improves local reasoning when everything relevant to a module is
defined in the same place.
  - Easier to share code between the packet consumer and the packet.
- Tweak `Packet` macro syntax.
- Update `syn` to 2.0.
- Reorganize some code in `valence_client` (needs further work).
- Impl `WritePacket` for `Instance`.
- Remove packet enums such as `S2cPlayPacket` and `C2sPlayPacket`.
- Replace `assert_packet_count` and `assert_packet_order` macros with
non-macro methods.
To prevent this PR from getting out of hand, I've disabled the packet
inspector and stresser until they have been rewritten to account for
these changes.
2023-05-29 01:36:11 -07:00
..
valence Move packets out of valence_core. (#335) 2023-05-29 01:36:11 -07:00
valence_advancement Move packets out of valence_core. (#335) 2023-05-29 01:36:11 -07:00
valence_anvil Reorganize Project (#321) 2023-04-21 14:43:59 -07:00
valence_biome Reorganize Project (#321) 2023-04-21 14:43:59 -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 Move packets out of valence_core. (#335) 2023-05-29 01:36:11 -07:00
valence_core Move packets out of valence_core. (#335) 2023-05-29 01:36:11 -07:00
valence_core_macros Move packets out of valence_core. (#335) 2023-05-29 01:36:11 -07:00
valence_dimension Reorganize Project (#321) 2023-04-21 14:43:59 -07:00
valence_entity Move packets out of valence_core. (#335) 2023-05-29 01:36:11 -07:00
valence_instance Move packets out of valence_core. (#335) 2023-05-29 01:36:11 -07:00
valence_inventory Move packets out of valence_core. (#335) 2023-05-29 01:36:11 -07:00
valence_nbt Reorganize Project (#321) 2023-04-21 14:43:59 -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 Reorganize Project (#321) 2023-04-21 14:43:59 -07:00
valence_spatial_index Reorganize Project (#321) 2023-04-21 14:43:59 -07:00
README.md Advancement api (#329) 2023-05-02 01:35:35 -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 --> instance
	entity --> block
	advancement --> client