MrGVSV / bevy_proto

Create config files for entities in Bevy
Other
239 stars 25 forks source link

Reflection Rewrite #29

Closed MrGVSV closed 1 year ago

MrGVSV commented 1 year ago

What is this?

This is a rewrite of #18, which itself was a rewrite of the entire crate.

Why?

There are a number of reasons this was done:

  1. To remove the typetag dependency (which came with some drawbacks along with its advantages)
  2. To align with Bevy's (and the community's) direction of using reflection
  3. To just improve the crate overall (it was my first Rust project and had lots of tech debt)

What changed?

This being a complete rewrite, pretty much everything changed.

Prototype is pretty similar, but ProtoComponent received a complete overhaul (it's been replaced with the better-named Schematic trait as suggested by @B-Reif a long time ago).

I won't go into too many details here like in the last PR since most of the content is covered in the new examples. However, I will go over some of the highlights:

"I liked using typetag!"

Not to worry! For those who prefer to use the old typetag system, then feel free to continue using it! I've relocated that code to its own crate called bevy_proto_typetag.

For users who want to continue supporting the typetag version, I will still accept PRs and probably bump Bevy versions here and there. However, my focus will be on this crate.

MrGVSV commented 1 year ago

If anyone sees this, feel free to leave a review! I'm planning on releasing either today or tomorrow so I probably won't change anything for this version, but I'll keep comments in mind for the next one!