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}