Skip to content

Commit

Permalink
fix(root): elapsed time
Browse files Browse the repository at this point in the history
  • Loading branch information
technobaboo committed Jul 2, 2024
1 parent b3fa529 commit e379dae
Showing 1 changed file with 18 additions and 9 deletions.
27 changes: 18 additions & 9 deletions src/nodes/root.rs
Original file line number Diff line number Diff line change
Expand Up @@ -9,40 +9,49 @@ use color_eyre::eyre::{bail, Result};
use glam::Mat4;
use std::path::PathBuf;
use std::sync::Arc;
use std::time::Instant;
use tracing::info;

static ROOT_REGISTRY: Registry<Root> = Registry::new();

stardust_xr_server_codegen::codegen_root_protocol!();

pub struct Root(Arc<Node>);
pub struct Root {
node: Arc<Node>,
connect_instant: Instant,
}
impl Root {
pub fn create(client: &Arc<Client>, transform: Mat4) -> Result<Arc<Self>> {
let node = Node::from_id(client, 0, false);
<Self as RootAspect>::add_node_members(&node);
let node = node.add_to_scenegraph()?;
let _ = Spatial::add_to(&node, None, transform, false);

Ok(ROOT_REGISTRY.add(Root(node)))
Ok(ROOT_REGISTRY.add(Root {
node,
connect_instant: Instant::now(),
}))
}

pub fn send_frame_events(delta: f64) {
let info = FrameInfo {
delta: delta as f32,
elapsed: 0.0,
};
for root in ROOT_REGISTRY.get_valid_contents() {
let _ = root_client::frame(&root.0, &info);
let _ = root_client::frame(
&root.node,
&FrameInfo {
delta: delta as f32,
elapsed: root.connect_instant.elapsed().as_secs_f32(),
},
);
}
}

pub fn set_transform(&self, transform: Mat4) {
let spatial = self.0.get_aspect::<Spatial>().unwrap();
let spatial = self.node.get_aspect::<Spatial>().unwrap();
spatial.set_spatial_parent(None).unwrap();
spatial.set_local_transform(transform);
}
pub async fn save_state(&self) -> Result<ClientState> {
Ok(root_client::save_state(&self.0).await?.0)
Ok(root_client::save_state(&self.node).await?.0)
}
}
impl RootAspect for Root {
Expand Down

0 comments on commit e379dae

Please sign in to comment.