
# Objective - Add an `ExtractResourcePlugin` for convenience and consistency ## Solution - Add an `ExtractResourcePlugin` similar to `ExtractComponentPlugin` but for ECS `Resource`s. The system that is executed simply clones the main world resource into a render world resource, if and only if the main world resource was either added or changed since the last execution of the system. - Add an `ExtractResource` trait with a `fn extract_resource(res: &Self) -> Self` function. This is used by the `ExtractResourcePlugin` to extract the resource - Add a derive macro for `ExtractResource` on a `Resource` with the `Clone` trait, that simply returns `res.clone()` - Use `ExtractResourcePlugin` wherever both possible and appropriate
52 lines
858 B
Bash
52 lines
858 B
Bash
# if crate A depends on crate B, B must come before A in this list
|
|
crates=(
|
|
bevy_utils
|
|
bevy_ptr
|
|
bevy_macro_utils
|
|
bevy_derive
|
|
bevy_math
|
|
bevy_tasks
|
|
bevy_reflect/bevy_reflect_derive
|
|
bevy_reflect
|
|
bevy_ecs/macros
|
|
bevy_ecs
|
|
bevy_app
|
|
bevy_time
|
|
bevy_log
|
|
bevy_dynamic_plugin
|
|
bevy_asset
|
|
bevy_audio
|
|
bevy_core
|
|
bevy_diagnostic
|
|
bevy_hierarchy
|
|
bevy_transform
|
|
bevy_window
|
|
bevy_encase_derive
|
|
bevy_render/macros
|
|
bevy_render
|
|
bevy_core_pipeline
|
|
bevy_input
|
|
bevy_gilrs
|
|
bevy_animation
|
|
bevy_pbr
|
|
bevy_gltf
|
|
bevy_scene
|
|
bevy_sprite
|
|
bevy_text
|
|
bevy_ui
|
|
bevy_winit
|
|
bevy_internal
|
|
bevy_dylib
|
|
)
|
|
|
|
cd crates
|
|
for crate in "${crates[@]}"
|
|
do
|
|
echo "Publishing ${crate}"
|
|
(cd "$crate"; cargo publish --no-verify)
|
|
sleep 20
|
|
done
|
|
|
|
cd ..
|
|
cargo publish
|