Merge branch 'xMAC94x/fix_macos' into 'master'

disable mumble-link on macos

See merge request veloren/veloren!2804
This commit is contained in:
Marcel 2021-09-03 23:25:40 +00:00
commit 8d377d6cf2
2 changed files with 28 additions and 19 deletions

View File

@ -84,9 +84,6 @@ vek = {version = "=0.14.1", features = ["serde"]}
# Controller # Controller
gilrs = {version = "0.8.0", features = ["serde-serialize"]} gilrs = {version = "0.8.0", features = ["serde-serialize"]}
# Mumble
mumble-link = "0.1.0"
# Singleplayer # Singleplayer
server = { package = "veloren-server", path = "../server", optional = true, default-features = false, features = ["worldgen"] } server = { package = "veloren-server", path = "../server", optional = true, default-features = false, features = ["worldgen"] }
@ -137,6 +134,10 @@ coreaudio-sys = { version = "=0.2.8", default-features = false }
[target.'cfg(windows)'.build-dependencies] [target.'cfg(windows)'.build-dependencies]
winres = "0.1" winres = "0.1"
# Mumble
[target.'cfg(not(target_os="macos"))'.dependencies]
mumble-link = "0.1.0"
[dev-dependencies] [dev-dependencies]
criterion = "0.3" criterion = "0.3"
world = {package = "veloren-world", path = "../world"} world = {package = "veloren-world", path = "../world"}

View File

@ -2,6 +2,7 @@ pub mod settings_change;
use std::{cell::RefCell, collections::HashSet, rc::Rc, result::Result, sync::Arc, time::Duration}; use std::{cell::RefCell, collections::HashSet, rc::Rc, result::Result, sync::Arc, time::Duration};
#[cfg(not(target_os = "macos"))]
use mumble_link::SharedLink; use mumble_link::SharedLink;
use ordered_float::OrderedFloat; use ordered_float::OrderedFloat;
use specs::{Join, WorldExt}; use specs::{Join, WorldExt};
@ -78,6 +79,7 @@ pub struct SessionState {
target_entity: Option<specs::Entity>, target_entity: Option<specs::Entity>,
selected_entity: Option<(specs::Entity, std::time::Instant)>, selected_entity: Option<(specs::Entity, std::time::Instant)>,
interactable: Option<Interactable>, interactable: Option<Interactable>,
#[cfg(not(target_os = "macos"))]
mumble_link: SharedLink, mumble_link: SharedLink,
hitboxes: HashMap<specs::Entity, DebugShapeId>, hitboxes: HashMap<specs::Entity, DebugShapeId>,
} }
@ -97,6 +99,7 @@ impl SessionState {
scene scene
.camera_mut() .camera_mut()
.set_fov_deg(global_state.settings.graphics.fov); .set_fov_deg(global_state.settings.graphics.fov);
#[cfg(not(target_os = "macos"))]
let mut mumble_link = SharedLink::new("veloren", "veloren-voxygen"); let mut mumble_link = SharedLink::new("veloren", "veloren-voxygen");
{ {
let mut client = client.borrow_mut(); let mut client = client.borrow_mut();
@ -104,6 +107,7 @@ impl SessionState {
client.request_lossy_terrain_compression( client.request_lossy_terrain_compression(
global_state.settings.graphics.lossy_terrain_compression, global_state.settings.graphics.lossy_terrain_compression,
); );
#[cfg(not(target_os = "macos"))]
if let Some(uid) = client.uid() { if let Some(uid) = client.uid() {
let identiy = if let Some(info) = client.player_list().get(&uid) { let identiy = if let Some(info) = client.player_list().get(&uid) {
format!("{}-{}", info.player_alias, uid.to_string()) format!("{}-{}", info.player_alias, uid.to_string())
@ -136,6 +140,7 @@ impl SessionState {
target_entity: None, target_entity: None,
selected_entity: None, selected_entity: None,
interactable: None, interactable: None,
#[cfg(not(target_os = "macos"))]
mumble_link, mumble_link,
hitboxes: HashMap::new(), hitboxes: HashMap::new(),
} }
@ -160,22 +165,25 @@ impl SessionState {
self.scene self.scene
.maintain_debug_hitboxes(&client, &global_state.settings, &mut self.hitboxes); .maintain_debug_hitboxes(&client, &global_state.settings, &mut self.hitboxes);
// Update mumble positional audio #[cfg(not(target_os = "macos"))]
let pos = client.position().unwrap_or_default(); {
let ori = client // Update mumble positional audio
.state() let pos = client.position().unwrap_or_default();
.read_storage::<comp::Ori>() let ori = client
.get(client.entity()) .state()
.map_or_else(comp::Ori::default, |o| *o); .read_storage::<comp::Ori>()
let front = ori.look_dir().to_vec(); .get(client.entity())
let top = ori.up().to_vec(); .map_or_else(comp::Ori::default, |o| *o);
// converting from veloren z = height axis, to mumble y = height axis let front = ori.look_dir().to_vec();
let player_pos = mumble_link::Position { let top = ori.up().to_vec();
position: [pos.x, pos.z, pos.y], // converting from veloren z = height axis, to mumble y = height axis
front: [front.x, front.z, front.y], let player_pos = mumble_link::Position {
top: [top.x, top.z, top.y], position: [pos.x, pos.z, pos.y],
}; front: [front.x, front.z, front.y],
self.mumble_link.update(player_pos, player_pos); top: [top.x, top.z, top.y],
};
self.mumble_link.update(player_pos, player_pos);
}
for event in client.tick(self.inputs.clone(), dt, crate::ecs::sys::add_local_systems)? { for event in client.tick(self.inputs.clone(), dt, crate::ecs::sys::add_local_systems)? {
match event { match event {