Merge branch 'Awkor/rotate-camera-character-selection' into 'master'

Implement #334 - Enable camera rotation in character selection screen

Closes #334

See merge request veloren/veloren!1377
This commit is contained in:
Joshua Barretto 2020-11-20 16:32:39 +00:00
commit 8981dce4c9

View File

@ -27,6 +27,7 @@ use common::{
};
use tracing::error;
use vek::*;
use winit::event::MouseButton;
struct VoidVol;
impl BaseVol for VoidVol {
@ -82,7 +83,8 @@ pub struct Scene {
figure_model_cache: FigureModelCache,
figure_state: FigureState<CharacterSkeleton>,
turning: bool,
turning_camera: bool,
turning_character: bool,
char_ori: f32,
}
@ -191,7 +193,8 @@ impl Scene {
camera,
turning: false,
turning_camera: false,
turning_character: false,
char_ori: -start_angle,
}
}
@ -211,12 +214,23 @@ impl Scene {
self.camera.set_aspect_ratio(dims.x as f32 / dims.y as f32);
true
},
Event::MouseButton(_, state) => {
self.turning = state == PressState::Pressed;
Event::MouseButton(button, state) => {
if state == PressState::Pressed {
self.turning_camera = button == MouseButton::Right;
self.turning_character = button == MouseButton::Left;
} else {
self.turning_camera = false;
self.turning_character = false;
}
true
},
Event::CursorMove(delta) if self.turning => {
self.char_ori += delta.x * 0.01;
Event::CursorMove(delta) => {
if self.turning_camera {
self.camera.rotate_by(Vec3::new(delta.x * 0.01, 0.0, 0.0))
}
if self.turning_character {
self.char_ori += delta.x * 0.01;
}
true
},
// All other events are unhandled