From bb681decf59172474e6ebfcf5e624bc7bab50202 Mon Sep 17 00:00:00 2001 From: Franklin Blanco Date: Thu, 16 Nov 2023 09:27:15 -0800 Subject: [PATCH] Added gltf asset load, plugin call for bevy_blender and GlftAssetType --- Cargo.lock | 12 ++++++++++++ Cargo.toml | 3 ++- src/comps/core/markers/mod.rs | 1 + src/comps/core/markers/proxy/mod.rs | 0 src/main.rs | 2 ++ src/setup/assets.rs | 7 ++++++- 6 files changed, 23 insertions(+), 2 deletions(-) create mode 100644 src/comps/core/markers/proxy/mod.rs diff --git a/Cargo.lock b/Cargo.lock index a617a45..afa0e86 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -759,6 +759,17 @@ dependencies = [ "thiserror", ] +[[package]] +name = "bevy_gltf_components" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd745a2988c631286404e12d184d4a30a634fbbba1deceaaa1ca7fcbc607cc7a" +dependencies = [ + "bevy", + "ron", + "serde", +] + [[package]] name = "bevy_hanabi" version = "0.8.0" @@ -1914,6 +1925,7 @@ dependencies = [ "bevy-inspector-egui", "bevy-trait-query", "bevy_editor_pls", + "bevy_gltf_components", "bevy_hanabi", "bevy_rapier3d", ] diff --git a/Cargo.toml b/Cargo.toml index 3e3bc9e..81de01e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -20,4 +20,5 @@ bevy-inspector-egui = "0.21.0" bevy_editor_pls = "0.6" bevy_rapier3d = { version = "0.23", features = ["debug-render-3d"] } bevy_hanabi = { version = "0.8", default-features = false, features = [ "3d" ] } -bevy-trait-query = "0.4.0" \ No newline at end of file +bevy-trait-query = "0.4.0" +bevy_gltf_components = "0.2.0" diff --git a/src/comps/core/markers/mod.rs b/src/comps/core/markers/mod.rs index 36c048c..18dbd4b 100644 --- a/src/comps/core/markers/mod.rs +++ b/src/comps/core/markers/mod.rs @@ -7,3 +7,4 @@ pub mod inventory_screen; pub mod muzzle_flash; pub mod player; pub mod settings_screen; +pub mod proxy; \ No newline at end of file diff --git a/src/comps/core/markers/proxy/mod.rs b/src/comps/core/markers/proxy/mod.rs new file mode 100644 index 0000000..e69de29 diff --git a/src/main.rs b/src/main.rs index 97ed1e0..6f56490 100644 --- a/src/main.rs +++ b/src/main.rs @@ -2,6 +2,7 @@ #![feature(trivial_bounds)] #![feature(return_position_impl_trait_in_trait)] use bevy::prelude::*; +use bevy_gltf_components::ComponentsFromGltfPlugin; use bevy_rapier3d::prelude::*; use scenes::scene1; use ui::{editor::plugin::MainEditorUiPlugin, game::plugin::MainGameUIPlugin}; @@ -27,6 +28,7 @@ fn main() { fn setup_plugins(application: &mut App) { application .add_plugins(DefaultPlugins) + .add_plugins(ComponentsFromGltfPlugin) //.add_plugins(DefaultInspectorConfigPlugin) .add_plugins(RapierPhysicsPlugin::::default()) //.add_plugins(bevy_egui::EguiPlugin) diff --git a/src/setup/assets.rs b/src/setup/assets.rs index 095116f..930509e 100644 --- a/src/setup/assets.rs +++ b/src/setup/assets.rs @@ -10,6 +10,7 @@ use super::load_state::GameLoadState; #[derive(PartialEq, Eq, PartialOrd, Ord, Reflect)] pub enum GltfAssetType { Firearm(Firearm), + Character, #[allow(unused)] Enemy, } @@ -44,8 +45,12 @@ pub fn load_all_assets( asset_type: GltfAssetType::Firearm(Firearm::Glock17), asset: asset_server.load(Firearm::Glock17.firearm_data().asset_path), }; + let main_character_asset = GltfAsset { + asset_type: GltfAssetType::Character, + asset: asset_server.load("character/main_character.glb"), + }; commands.insert_resource(GltfAssets { - assets: Vec::from([m4a1_gltf_asset, glock17_gltf_asset]), + assets: Vec::from([m4a1_gltf_asset, glock17_gltf_asset, main_character_asset]), }); game_load_state.assets_loaded = true; // This works becaue this system is called on startup, so commands will finish running when game starts the update phase.