Add a feature flag for using bevy_gltf_blueprints.

This commit is contained in:
andriyDev 2024-05-25 01:50:07 -07:00
parent d7af89930b
commit b04db12c37
2 changed files with 17 additions and 6 deletions

View File

@ -19,6 +19,7 @@ bevy = { version = "0.13", default-features = false, features = [
"bevy_scene",
] }
bevy_gltf_components = { version = "0.5", path = "../bevy_gltf_components" }
bevy_gltf_blueprints = { version = "0.10", path = "../bevy_gltf_blueprints", optional = true }
[dev-dependencies]
bevy = { version = "0.13", default-features = false, features = [

View File

@ -4,7 +4,7 @@ use bevy::{
ecs::{
component::Component,
entity::Entity,
query::With,
query::{Or, With},
reflect::ReflectComponent,
schedule::{IntoSystemConfigs, IntoSystemSetConfigs, SystemSet},
system::{Commands, Query, Res, ResMut, Resource, SystemParam},
@ -19,6 +19,9 @@ use bevy::{
use bevy_gltf_components::GltfComponentsSet;
use std::marker::PhantomData;
#[cfg(feature = "bevy_gltf_blueprints")]
use bevy_gltf_blueprints::{BlueprintName, GltfBlueprintsSet};
/// Plugin for keeping the GltfRefMap in sync.
pub struct GltfRefMapPlugin;
@ -26,12 +29,16 @@ impl Plugin for GltfRefMapPlugin {
fn build(&self, app: &mut App) {
app.register_type::<GltfRefTarget>()
.init_resource::<GltfRefMap>()
.configure_sets(
Update,
(GltfRefsSet::CreateRefMap, GltfRefsSet::ResolveRefs)
.configure_sets(Update, {
let set = (GltfRefsSet::CreateRefMap, GltfRefsSet::ResolveRefs)
.chain()
.after(GltfComponentsSet::Injection),
)
.after(GltfComponentsSet::Injection);
#[cfg(feature = "bevy_gltf_blueprints")]
let set = set.after(GltfBlueprintsSet::Spawn);
set
})
.add_systems(
Update,
GltfRefMap::create_ref_map.in_set(GltfRefsSet::CreateRefMap),
@ -157,7 +164,10 @@ impl<T: Component + FromGltfRef> Default for GltfRefPlugin<T> {
/// SystemParam to find the Gltf that an entity belongs to.
#[derive(SystemParam)]
pub struct GltfForEntity<'w, 's> {
#[cfg(not(feature = "bevy_gltf_blueprints"))]
gltfs: Query<'w, 's, (), With<Handle<Scene>>>,
#[cfg(feature = "bevy_gltf_blueprints")]
gltfs: Query<'w, 's, (), Or<(With<Handle<Scene>>, With<BlueprintName>)>>,
hierarchy: Query<'w, 's, &'static Parent>,
}