It's a feature called required components. Basically, you can use #require(components list here) attribute to say that when a component is inserted, also insert required components. I don't know if there's a documentation for it, or specifically what component requires what, personally when I'm looking for required components I'm looking at component's source and they'll be listed there (Sprite, for example https://docs.rs/bevy_sprite/0.16.0/src/bevy_sprite/sprite.rs.html#20)
Note that required components work recursively: when component requires a component that has it's own requirements, they'll also be inserted
I'm not a bevy user but I'm writing a game in Rust so maybe I can help...
Looking at the docs for Screenshots in particular, it definitely looks like that system uses a few "marker" components to track state while making the screen capture.
Digging deeper into the source for the Screenshot component struct we can see what method it uses to attach these markers, and a little further into the function it uses the markers to find the screenshot entity and remove it.
I'm not sure about Sprite but probably something in the rendering system looks for and maybe applies a Transform when components are nested or added to world space? I also don't know if Bevy has a formal component hierarchy but something like that may be in play here with Sprite being a child or implementor of Transform, but that's just speculation on my part.
Hope that helps, maybe seeing how Screenshot does it will help you search in the source for Sprite to see where the Transforms are injected?
I got so excited to see a Bevy post (in the Bevy community even!) I really want to see the gamedev community here pick up and exceed reddit, SO, and other company-owned gaming forums.
I made only a single toot on Mastodon :) You're replying to a post on Lemmy. I usually post to both Lemmy and Mastodon. They're federated, this is why you might see both. It's my Lemmy-specific profile, I use a different profile for Mastodon.
This is a very cool idea. I’ll be checking it out for sure. And if I see something I can help with, I have some game dev chops I could shake the rust off of.
Bevy
Hot