mirror of
https://github.com/kaosat-dev/Blender_bevy_components_workflow.git
synced 2024-11-26 21:37:01 +00:00
chore(): cargo fmt & co
This commit is contained in:
parent
ddc17ed2c3
commit
877c29b63c
@ -123,7 +123,6 @@ impl Plugin for BlueprintsPlugin {
|
||||
.register_type::<BlueprintsList>()
|
||||
.register_type::<Vec<String>>()
|
||||
.register_type::<HashMap<String, Vec<String>>>()
|
||||
|
||||
.insert_resource(BluePrintsConfig {
|
||||
format: self.format,
|
||||
library_folder: self.library_folder.clone(),
|
||||
@ -148,22 +147,17 @@ impl Plugin for BlueprintsPlugin {
|
||||
prepare_blueprints,
|
||||
check_for_loaded,
|
||||
spawn_from_blueprints,
|
||||
apply_deferred
|
||||
apply_deferred,
|
||||
)
|
||||
.chain(),
|
||||
(
|
||||
compute_scene_aabbs,
|
||||
apply_deferred
|
||||
)
|
||||
(compute_scene_aabbs, apply_deferred)
|
||||
.chain()
|
||||
.run_if(aabbs_enabled),
|
||||
|
||||
apply_deferred,
|
||||
|
||||
(
|
||||
materials_inject,
|
||||
check_for_material_loaded,
|
||||
materials_inject2
|
||||
materials_inject2,
|
||||
)
|
||||
.chain()
|
||||
.run_if(materials_library_enabled),
|
||||
|
@ -3,7 +3,11 @@ use std::path::Path;
|
||||
use bevy::{
|
||||
asset::{AssetId, AssetServer, Assets, Handle},
|
||||
ecs::{
|
||||
component::Component, entity::Entity, query::{Added, With}, reflect::ReflectComponent, system::{Commands, Query, Res, ResMut}
|
||||
component::Component,
|
||||
entity::Entity,
|
||||
query::{Added, With},
|
||||
reflect::ReflectComponent,
|
||||
system::{Commands, Query, Res, ResMut},
|
||||
},
|
||||
gltf::Gltf,
|
||||
hierarchy::{Children, Parent},
|
||||
@ -59,7 +63,6 @@ pub(crate) fn materials_inject(
|
||||
commands
|
||||
.entity(entity)
|
||||
.insert(BlueprintMaterialAssetsLoaded);
|
||||
|
||||
} else {
|
||||
let material_file_handle: Handle<Gltf> = asset_server.load(materials_path.clone());
|
||||
let material_file_id = material_file_handle.id();
|
||||
@ -69,15 +72,14 @@ pub(crate) fn materials_inject(
|
||||
name: material_full_path,
|
||||
id: material_file_id,
|
||||
loaded: false,
|
||||
handle: material_file_handle.clone()
|
||||
handle: material_file_handle.clone(),
|
||||
});
|
||||
commands
|
||||
.entity(entity)
|
||||
.insert(AssetsToLoad {
|
||||
all_loaded: false,
|
||||
asset_infos: asset_infos,
|
||||
progress: 0.0
|
||||
//..Default::default()
|
||||
progress: 0.0, //..Default::default()
|
||||
})
|
||||
.insert(BlueprintMaterialAssetsNotLoaded);
|
||||
/**/
|
||||
@ -87,7 +89,10 @@ pub(crate) fn materials_inject(
|
||||
|
||||
// TODO, merge with check_for_loaded, make generic ?
|
||||
pub(crate) fn check_for_material_loaded(
|
||||
mut blueprint_assets_to_load: Query<(Entity, &mut AssetsToLoad<Gltf>),With<BlueprintMaterialAssetsNotLoaded>>,
|
||||
mut blueprint_assets_to_load: Query<
|
||||
(Entity, &mut AssetsToLoad<Gltf>),
|
||||
With<BlueprintMaterialAssetsNotLoaded>,
|
||||
>,
|
||||
asset_server: Res<AssetServer>,
|
||||
mut commands: Commands,
|
||||
) {
|
||||
@ -110,18 +115,24 @@ pub(crate) fn check_for_material_loaded(
|
||||
|
||||
if all_loaded {
|
||||
assets_to_load.all_loaded = true;
|
||||
commands.entity(entity)
|
||||
commands
|
||||
.entity(entity)
|
||||
.insert(BlueprintMaterialAssetsLoaded)
|
||||
.remove::<BlueprintMaterialAssetsNotLoaded>();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// system that injects / replaces materials from material library
|
||||
pub(crate) fn materials_inject2(
|
||||
mut blueprints_config: ResMut<BluePrintsConfig>,
|
||||
material_infos: Query<(&MaterialInfo, &Children, ), (Added<BlueprintMaterialAssetsLoaded>, With<BlueprintMaterialAssetsLoaded>)>,
|
||||
material_infos: Query<
|
||||
(&MaterialInfo, &Children),
|
||||
(
|
||||
Added<BlueprintMaterialAssetsLoaded>,
|
||||
With<BlueprintMaterialAssetsLoaded>,
|
||||
),
|
||||
>,
|
||||
with_materials_and_meshes: Query<
|
||||
(),
|
||||
(
|
||||
|
@ -55,16 +55,15 @@ pub(crate) struct AssetLoadTracker<T:bevy::prelude::Asset>{
|
||||
pub name: String,
|
||||
pub id: AssetId<T>,
|
||||
pub loaded: bool,
|
||||
pub handle: Handle<T>
|
||||
pub handle: Handle<T>,
|
||||
}
|
||||
#[derive(Component, Default, Debug)]
|
||||
pub(crate) struct AssetsToLoad<T: bevy::prelude::Asset> {
|
||||
pub all_loaded: bool,
|
||||
pub asset_infos: Vec<AssetLoadTracker<T>>,
|
||||
pub progress: f32
|
||||
pub progress: f32,
|
||||
}
|
||||
|
||||
|
||||
/// flag component
|
||||
#[derive(Component)]
|
||||
pub(crate) struct BlueprintAssetsLoaded;
|
||||
@ -91,15 +90,8 @@ pub(crate) fn prepare_blueprints(
|
||||
asset_server: Res<AssetServer>,
|
||||
blueprints_config: Res<BluePrintsConfig>,
|
||||
) {
|
||||
for (
|
||||
entity,
|
||||
blupeprint_name,
|
||||
original_parent,
|
||||
library_override,
|
||||
name,
|
||||
|
||||
blueprints_list,
|
||||
) in spawn_placeholders.iter()
|
||||
for (entity, blupeprint_name, original_parent, library_override, name, blueprints_list) in
|
||||
spawn_placeholders.iter()
|
||||
{
|
||||
debug!(
|
||||
"requesting to spawn {:?} for entity {:?}, id: {:?}, parent:{:?}",
|
||||
@ -111,18 +103,9 @@ pub(crate) fn prepare_blueprints(
|
||||
let blueprints_list = blueprints_list.unwrap();
|
||||
// println!("blueprints list {:?}", blueprints_list.0.keys());
|
||||
let mut asset_infos: Vec<AssetLoadTracker<Gltf>> = vec![];
|
||||
|
||||
let library_path =
|
||||
library_override.map_or_else(|| &blueprints_config.library_folder, |l| &l.0);
|
||||
for (blueprint_name, _) in blueprints_list.0.iter() {
|
||||
/*if blueprint_name == what {
|
||||
println!("WHOLY MOLLY !")
|
||||
}*/
|
||||
// println!("library path {:?}", library_path);
|
||||
let mut library_path = &blueprints_config.library_folder; // TODO: we cannot use the overriden library path
|
||||
// FIXME: hack
|
||||
if blueprint_name == "World" {
|
||||
library_path= &library_override.unwrap().0;
|
||||
}
|
||||
|
||||
let model_file_name = format!("{}.{}", &blueprint_name, &blueprints_config.format);
|
||||
let model_path = Path::new(&library_path).join(Path::new(model_file_name.as_str()));
|
||||
|
||||
@ -134,7 +117,7 @@ pub(crate) fn prepare_blueprints(
|
||||
name: model_path.to_string_lossy().into(),
|
||||
id: model_id,
|
||||
loaded: false,
|
||||
handle: model_handle.clone()
|
||||
handle: model_handle.clone(),
|
||||
})
|
||||
}
|
||||
}
|
||||
@ -145,26 +128,24 @@ pub(crate) fn prepare_blueprints(
|
||||
.insert(AssetsToLoad {
|
||||
all_loaded: false,
|
||||
asset_infos: asset_infos,
|
||||
progress: 0.0
|
||||
//..Default::default()
|
||||
progress: 0.0, //..Default::default()
|
||||
})
|
||||
.insert(BlueprintAssetsNotLoaded);
|
||||
} else {
|
||||
commands
|
||||
.entity(entity)
|
||||
.insert(BlueprintAssetsLoaded);
|
||||
commands.entity(entity).insert(BlueprintAssetsLoaded);
|
||||
}
|
||||
}
|
||||
else { // in case there are no blueprintsList
|
||||
commands
|
||||
.entity(entity)
|
||||
.insert(BlueprintAssetsLoaded);
|
||||
} else {
|
||||
// in case there are no blueprintsList
|
||||
commands.entity(entity).insert(BlueprintAssetsLoaded);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pub(crate) fn check_for_loaded(
|
||||
mut blueprint_assets_to_load: Query<(Entity, &mut AssetsToLoad<Gltf>), With<BlueprintAssetsNotLoaded>>,
|
||||
mut blueprint_assets_to_load: Query<
|
||||
(Entity, &mut AssetsToLoad<Gltf>),
|
||||
With<BlueprintAssetsNotLoaded>,
|
||||
>,
|
||||
asset_server: Res<AssetServer>,
|
||||
mut commands: Commands,
|
||||
) {
|
||||
@ -188,7 +169,8 @@ pub(crate) fn check_for_loaded(
|
||||
|
||||
if all_loaded {
|
||||
assets_to_load.all_loaded = true;
|
||||
commands.entity(entity)
|
||||
commands
|
||||
.entity(entity)
|
||||
.insert(BlueprintAssetsLoaded)
|
||||
.remove::<BlueprintAssetsNotLoaded>();
|
||||
}
|
||||
@ -206,7 +188,11 @@ pub(crate) fn spawn_from_blueprints(
|
||||
Option<&AddToGameWorld>,
|
||||
Option<&Name>,
|
||||
),
|
||||
(With<BlueprintAssetsLoaded>, Added<BlueprintAssetsLoaded>, Without<BlueprintAssetsNotLoaded>),
|
||||
(
|
||||
With<BlueprintAssetsLoaded>,
|
||||
Added<BlueprintAssetsLoaded>,
|
||||
Without<BlueprintAssetsNotLoaded>,
|
||||
),
|
||||
>,
|
||||
|
||||
mut commands: Commands,
|
||||
@ -218,7 +204,6 @@ pub(crate) fn spawn_from_blueprints(
|
||||
|
||||
children: Query<&Children>,
|
||||
) {
|
||||
|
||||
for (
|
||||
entity,
|
||||
blupeprint_name,
|
||||
@ -227,7 +212,6 @@ pub(crate) fn spawn_from_blueprints(
|
||||
library_override,
|
||||
add_to_world,
|
||||
name,
|
||||
|
||||
) in spawn_placeholders.iter()
|
||||
{
|
||||
info!(
|
||||
|
@ -7,7 +7,10 @@ use bevy::scene::SceneInstance;
|
||||
|
||||
use super::{AnimationPlayerLink, Animations};
|
||||
use super::{SpawnHere, Spawned};
|
||||
use crate::{AssetsToLoad, BlueprintAssetsLoaded, CopyComponents, InBlueprint, NoInBlueprint, OriginalChildren};
|
||||
use crate::{
|
||||
AssetsToLoad, BlueprintAssetsLoaded, CopyComponents, InBlueprint, NoInBlueprint,
|
||||
OriginalChildren,
|
||||
};
|
||||
|
||||
/// this system is in charge of doing any necessary post processing after a blueprint scene has been spawned
|
||||
/// - it removes one level of useless nesting
|
||||
|
@ -1,5 +1,7 @@
|
||||
use bevy::{prelude::*, utils::hashbrown::HashMap};
|
||||
use bevy_gltf_blueprints::{BluePrintBundle, BlueprintName, BlueprintsList, GameWorldTag, Library, SpawnHere};
|
||||
use bevy_gltf_blueprints::{
|
||||
BluePrintBundle, BlueprintName, BlueprintsList, GameWorldTag, Library, SpawnHere,
|
||||
};
|
||||
use bevy_gltf_worlflow_examples_common_rapier::{assets::GameAssets, GameState, InAppRunning};
|
||||
|
||||
use bevy_rapier3d::prelude::Velocity;
|
||||
|
Loading…
Reference in New Issue
Block a user