Skip to content

Commit e94aac2

Browse files
committed
reorganize code in camera module
1 parent f0c6784 commit e94aac2

File tree

3 files changed

+42
-38
lines changed

3 files changed

+42
-38
lines changed

src/camera/controller.rs

Lines changed: 1 addition & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,9 @@
1+
use crate::camera::CameraController;
12
use crate::ui::UIMode;
23
use crate::{player, Player};
34
use bevy::input::mouse::MouseMotion;
45
use bevy::prelude::*;
56
use bevy::window::PrimaryWindow;
6-
use bevy_mod_raycast::prelude::*;
7-
8-
#[derive(TypePath)]
9-
pub struct BlockRaycastSet;
10-
11-
#[derive(Component)]
12-
pub struct CameraController {
13-
distance: f32,
14-
angle_x: f32,
15-
angle_y: f32,
16-
mouse_sensitivity: f32,
17-
}
18-
19-
impl Default for CameraController {
20-
fn default() -> Self {
21-
Self {
22-
distance: 10.0,
23-
angle_x: 0.0,
24-
angle_y: 20.0f32.to_radians(),
25-
mouse_sensitivity: 0.003,
26-
}
27-
}
28-
}
29-
30-
pub fn spawn_camera(mut commands: Commands) {
31-
commands
32-
.spawn(Camera3dBundle {
33-
transform: Transform::from_translation(Vec3::new(0.0, 5.0, 10.0))
34-
.looking_at(Vec3::new(0.0, 0.5, 0.0), Vec3::Y),
35-
..Default::default()
36-
})
37-
.insert(CameraController::default()) // Ajoute le CameraController
38-
.insert({
39-
let mut raycast_source = RaycastSource::<BlockRaycastSet>::default(); // Initialisation par défaut
40-
raycast_source.cast_method = RaycastMethod::Transform; // Utilise la transformation de la caméra pour lancer le rayon
41-
raycast_source // Retourne l'objet
42-
});
43-
}
447

458
// System to control the camera based on mouse movement
469
pub fn camera_control_system(

src/camera/mod.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
11
mod controller;
2+
mod spawn;
23

34
pub use controller::*;
5+
pub use spawn::*;

src/camera/spawn.rs

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
use bevy::prelude::*;
2+
use bevy_mod_raycast::prelude::*;
3+
4+
#[derive(TypePath)]
5+
pub struct BlockRaycastSet;
6+
7+
#[derive(Component)]
8+
pub struct CameraController {
9+
pub distance: f32,
10+
pub angle_x: f32,
11+
pub angle_y: f32,
12+
pub mouse_sensitivity: f32,
13+
}
14+
15+
impl Default for CameraController {
16+
fn default() -> Self {
17+
Self {
18+
distance: 10.0,
19+
angle_x: 0.0,
20+
angle_y: 20.0f32.to_radians(),
21+
mouse_sensitivity: 0.003,
22+
}
23+
}
24+
}
25+
26+
pub fn spawn_camera(mut commands: Commands) {
27+
commands
28+
.spawn(Camera3dBundle {
29+
transform: Transform::from_translation(Vec3::new(0.0, 5.0, 10.0))
30+
.looking_at(Vec3::new(0.0, 0.5, 0.0), Vec3::Y),
31+
..Default::default()
32+
})
33+
.insert(CameraController::default()) // Ajoute le CameraController
34+
.insert({
35+
let mut raycast_source = RaycastSource::<BlockRaycastSet>::default(); // Initialisation par défaut
36+
raycast_source.cast_method = RaycastMethod::Transform; // Utilise la transformation de la caméra pour lancer le rayon
37+
raycast_source // Retourne l'objet
38+
});
39+
}

0 commit comments

Comments
 (0)