-
-
Notifications
You must be signed in to change notification settings - Fork 145
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Change valence-anvil to be more general #504
Labels
enhancement
New feature or request
Comments
Just FYI I'm happy to do any implementation work related to this, I just want to make sure I am helping to take Valence in the right direction according to how you guys want it. |
I'm in favor of this. It would be nice if we could decouple the bevy stuff from the anvil stuff as much as possible. |
Sounds good 👍🏻 Putting the Valence/Bevy stuff behind feature flags seems like the right approach to me. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Describe the problem related to your feature request.
Currently, there are two problems with
valence-anvil
:valence-server
, including a Bevy plugin and requiring a biome registry respectively, which makes it harder to justify the use of this crate as a library outside of Valence, like you can withvalence_nbt
.What solution would you like?
There needs to be a lower-level public API to simply get a
Compound
given some chunk coordinates, and to be able to store a newCompound
to some new or existing chunk coordinates. The blockstate, entity and POI stuff can then be built on top of that, possibly in a separate crate or in the same crate with feature flags. The Bevy plugin could also be either a separate crate or in the same crate with a feature flag.What alternative(s) have you considered?
The
valence-anvil
crate could be left as it is, and I could make an alternative crate which is not specific to Valence. However, I think that not only could 3rd parties benefit to this restructuring, but Valence itself could too. It would help work towards some of the goals in the 0.2 roadmap, such as serialization support for anvil worlds, and would also be helpful for loading and saving entities if that is something you want.Additional context
I am working on a program to upgrade worlds (like the optimize worlds button in Minecraft), and need an anvil parser to upgrade chunks.
The text was updated successfully, but these errors were encountered: