A multiplayer VR framework w/voice chat
at main 1.5 kB view raw
1use bevy::prelude::*; 2use felix_audio::FelixAudioListener; 3 4use crate::components::debug_camera::DebugCamera; 5 6pub fn setup( 7 mut commands: Commands, 8 mut meshes: ResMut<Assets<Mesh>>, 9 mut materials: ResMut<Assets<StandardMaterial>> 10){ 11 // TODO: World loading from server 12 13 // TODO: World loading format? Could build an asset bundle parser? 14 15 // TODO: UI and Menus 16 17 // commands.spawn(( 18 // Mesh3d(meshes.add(Cuboid::new(1.0, 1.0, 1.0))), 19 // MeshMaterial3d(materials.add(Color::WHITE)), 20 // Transform::from_xyz(5.0, 0.0, 0.0), 21 // )); 22 23 // commands.spawn(( 24 // Mesh3d(meshes.add(Cuboid::new(0.5, 0.5, 0.5))), 25 // MeshMaterial3d(materials.add(Color::WHITE)), 26 // Transform::from_xyz(-5.0, 0.0, 0.0) 27 // )); 28 29 // commands.spawn(( 30 // Mesh3d(meshes.add(Cuboid::new(0.5, 0.5, 0.5))), 31 // MeshMaterial3d(materials.add(Color::WHITE)), 32 // Transform::from_xyz(0.0, 0.0, 5.0) 33 // )); 34 35 // commands.spawn(( 36 // Mesh3d(meshes.add(Cuboid::new(0.5, 0.5, 0.5))), 37 // MeshMaterial3d(materials.add(Color::WHITE)), 38 // Transform::from_xyz(0.0, 0.0, -5.0) 39 // )); 40 41 commands.spawn(( 42 DebugCamera::default(), // TODO: Build a proper player controller 43 Camera3d::default(), 44 Transform::from_xyz(0.0, 0.0, 0.0).looking_at(Vec3::ZERO, Vec3::Y), 45 FelixAudioListener 46 )); 47 48 let gos = felix_assets::load("test.flx").unwrap(); 49 for go in gos{ 50 commands.spawn(( 51 Mesh3d(meshes.add(go.mesh)), 52 MeshMaterial3d(materials.add(Color::WHITE)), 53 go.transform 54 )); 55 } 56}