|
|
|
|
@ -311,7 +311,21 @@ impl Component for SaveModel {
|
|
|
|
|
const STORAGE_TYPE: StorageType = StorageType::Table;
|
|
|
|
|
|
|
|
|
|
fn register_component_hooks(hooks: &mut ComponentHooks) {
|
|
|
|
|
todo!("Assign Scene Handle for SaveModel")
|
|
|
|
|
// Assign Scene Handle for SaveModel
|
|
|
|
|
hooks.on_add(|mut world, entity, _component_id| {
|
|
|
|
|
todo!("Need to load gltf_file as a dependent resource of this entity");
|
|
|
|
|
let server = world.resource::<AssetServer>();
|
|
|
|
|
let save_model = world.get::<SaveModel>(entity).unwrap();
|
|
|
|
|
let gltf_handle = server.get_handle(save_model.gltf_file.clone()).unwrap();
|
|
|
|
|
let gltfs = world.resource::<Assets<Gltf>>();
|
|
|
|
|
let gltf = gltfs.get(&gltf_handle).unwrap();
|
|
|
|
|
let scene_handle = gltf
|
|
|
|
|
.named_scenes
|
|
|
|
|
.get(&save_model.scene_name.clone().into_boxed_str())
|
|
|
|
|
.unwrap()
|
|
|
|
|
.clone();
|
|
|
|
|
world.commands().entity(entity).insert(scene_handle);
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|