Open aecsocket opened 1 month ago
Documenting what we discussed on Discord:
Currently nodes that store a Handle<T>
do no work with the editor, since due to missing API in Bevy (fixed here) we can only load Handle<LoadedUntypedAsset>
. This breaks the asset picker UI, and results the selected handle not being recognized by the editor.
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). Remaining work is in the editor crate, pending migrations to 0.15 in two of our dependencies:
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.