mirror of
https://github.com/kaosat-dev/Blender_bevy_components_workflow.git
synced 2024-11-22 20:00:53 +00:00
Compare commits
2 Commits
c9229c6884
...
d50fb4508d
Author | SHA1 | Date | |
---|---|---|---|
|
d50fb4508d | ||
|
b04db12c37 |
@ -19,6 +19,7 @@ bevy = { version = "0.13", default-features = false, features = [
|
|||||||
"bevy_scene",
|
"bevy_scene",
|
||||||
] }
|
] }
|
||||||
bevy_gltf_components = { version = "0.5", path = "../bevy_gltf_components" }
|
bevy_gltf_components = { version = "0.5", path = "../bevy_gltf_components" }
|
||||||
|
bevy_gltf_blueprints = { version = "0.10", path = "../bevy_gltf_blueprints", optional = true }
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
bevy = { version = "0.13", default-features = false, features = [
|
bevy = { version = "0.13", default-features = false, features = [
|
||||||
|
@ -4,7 +4,7 @@ use bevy::{
|
|||||||
ecs::{
|
ecs::{
|
||||||
component::Component,
|
component::Component,
|
||||||
entity::Entity,
|
entity::Entity,
|
||||||
query::With,
|
query::{Or, With},
|
||||||
reflect::ReflectComponent,
|
reflect::ReflectComponent,
|
||||||
schedule::{IntoSystemConfigs, IntoSystemSetConfigs, SystemSet},
|
schedule::{IntoSystemConfigs, IntoSystemSetConfigs, SystemSet},
|
||||||
system::{Commands, Query, Res, ResMut, Resource, SystemParam},
|
system::{Commands, Query, Res, ResMut, Resource, SystemParam},
|
||||||
@ -19,6 +19,9 @@ use bevy::{
|
|||||||
use bevy_gltf_components::GltfComponentsSet;
|
use bevy_gltf_components::GltfComponentsSet;
|
||||||
use std::marker::PhantomData;
|
use std::marker::PhantomData;
|
||||||
|
|
||||||
|
#[cfg(feature = "bevy_gltf_blueprints")]
|
||||||
|
use bevy_gltf_blueprints::{BlueprintName, GltfBlueprintsSet};
|
||||||
|
|
||||||
/// Plugin for keeping the GltfRefMap in sync.
|
/// Plugin for keeping the GltfRefMap in sync.
|
||||||
pub struct GltfRefMapPlugin;
|
pub struct GltfRefMapPlugin;
|
||||||
|
|
||||||
@ -26,12 +29,16 @@ impl Plugin for GltfRefMapPlugin {
|
|||||||
fn build(&self, app: &mut App) {
|
fn build(&self, app: &mut App) {
|
||||||
app.register_type::<GltfRefTarget>()
|
app.register_type::<GltfRefTarget>()
|
||||||
.init_resource::<GltfRefMap>()
|
.init_resource::<GltfRefMap>()
|
||||||
.configure_sets(
|
.configure_sets(Update, {
|
||||||
Update,
|
let set = (GltfRefsSet::CreateRefMap, GltfRefsSet::ResolveRefs)
|
||||||
(GltfRefsSet::CreateRefMap, GltfRefsSet::ResolveRefs)
|
|
||||||
.chain()
|
.chain()
|
||||||
.after(GltfComponentsSet::Injection),
|
.after(GltfComponentsSet::Injection);
|
||||||
)
|
|
||||||
|
#[cfg(feature = "bevy_gltf_blueprints")]
|
||||||
|
let set = set.after(GltfBlueprintsSet::Spawn);
|
||||||
|
|
||||||
|
set
|
||||||
|
})
|
||||||
.add_systems(
|
.add_systems(
|
||||||
Update,
|
Update,
|
||||||
GltfRefMap::create_ref_map.in_set(GltfRefsSet::CreateRefMap),
|
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.
|
/// SystemParam to find the Gltf that an entity belongs to.
|
||||||
#[derive(SystemParam)]
|
#[derive(SystemParam)]
|
||||||
pub struct GltfForEntity<'w, 's> {
|
pub struct GltfForEntity<'w, 's> {
|
||||||
|
#[cfg(not(feature = "bevy_gltf_blueprints"))]
|
||||||
gltfs: Query<'w, 's, (), With<Handle<Scene>>>,
|
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>,
|
hierarchy: Query<'w, 's, &'static Parent>,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user