diff --git a/src/objects/mod.rs b/src/objects/mod.rs index d7495e9..b848b8e 100644 --- a/src/objects/mod.rs +++ b/src/objects/mod.rs @@ -17,7 +17,7 @@ use play_space::PlaySpaceBounds; use stardust_xr::schemas::dbus::object_registry::ObjectRegistry; use std::{ marker::PhantomData, - sync::{atomic::Ordering, Arc}, + sync::{Arc, atomic::Ordering}, }; use stereokit_rust::{ material::Material, @@ -65,10 +65,7 @@ impl ServerObjects { ) -> ServerObjects { let hmd = SpatialRef::create(&connection, "/org/stardustxr/HMD"); - let play_space = (World::has_bounds() - && World::get_bounds_size().x != 0.0 - && World::get_bounds_size().y != 0.0) - .then(|| SpatialRef::create(&connection, "/org/stardustxr/PlaySpace")); + let play_space = Some(SpatialRef::create(&connection, "/org/stardustxr/PlaySpace")); if play_space.is_some() { let dbus_connection = connection.clone(); tokio::task::spawn(async move { diff --git a/src/objects/play_space.rs b/src/objects/play_space.rs index 5061311..c392c9b 100644 --- a/src/objects/play_space.rs +++ b/src/objects/play_space.rs @@ -15,12 +15,19 @@ impl PlaySpaceBounds { impl PlaySpaceBounds { #[zbus(property)] fn bounds(&self) -> Vec<(f64, f64)> { - let bounds = World::get_bounds_size(); - vec![ - ((bounds.x).into(), (bounds.y).into()), - ((bounds.x).into(), (-bounds.y).into()), - ((-bounds.x).into(), (-bounds.y).into()), - ((-bounds.x).into(), (bounds.y).into()), - ] + if (World::has_bounds() + && World::get_bounds_size().x != 0.0 + && World::get_bounds_size().y != 0.0) + { + let bounds = World::get_bounds_size(); + vec![ + ((bounds.x).into(), (bounds.y).into()), + ((bounds.x).into(), (-bounds.y).into()), + ((-bounds.x).into(), (-bounds.y).into()), + ((-bounds.x).into(), (bounds.y).into()), + ] + } else { + vec![] + } } }