-
Notifications
You must be signed in to change notification settings - Fork 5
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
Reflect-based node deserialization #70
base: master
Are you sure you want to change the base?
Conversation
Documenting what we discussed on Discord: Currently nodes that store a We decided to hold off on merging this until after migrating to the Bevy 0.15 release candidate, as it will contain the necessary fix and should come out this week (as of time of writing). |
The library crate seems to be working now, and pretty much ready to merge (save for some clippy fixes). |
Replaces the
AnimationNodeType
enum and friends with abevy_reflect
based approach, including dynamic deserialization of nodes based on their type path.This is an absolute monster PR, and includes:
AnimationNodeType
,AnimationNodeTypeSerial
AnimationNodeType
replaced withBox<dyn NodeLike>
, along withReflectNodeLike
implimpl Reflect
forAnimationNode
(because it stores aBox<dyn NodeLike>
)AnimationGraphLoader
bevy::reflect::serde
that we need for automatically loadingHandle<T>
s from nodes via reflectionAssets::get_typed
instead ofAssets::get
because the above process (loadingHandle<T>
s) is actually somewhat broken (see the comment incrate::utils::asset
)Everything seems to work, the only thing broken (as of writing this PR) is the editor.