diff --git a/src/main.rs b/src/main.rs index 18b3ea7..025cf91 100644 --- a/src/main.rs +++ b/src/main.rs @@ -92,7 +92,13 @@ impl Game { }); } - pub fn tick(&mut self) { + pub fn tick(&mut self, delta: f64) { + if !self.server.is_connected() { + self.renderer.camera.yaw += 0.005 * delta; + if self.renderer.camera.yaw > ::std::f64::consts::PI * 2.0 { + self.renderer.camera.yaw = 0.0; + } + } let mut clear_reply = false; if let Some(ref recv) = self.connect_reply { if let Ok(server) = recv.try_recv() { @@ -188,6 +194,9 @@ fn main() { chunk_builder: chunk_builder::ChunkBuilder::new(textures), connect_reply: None, }; + game.renderer.camera.pos.x = 0.5; + game.renderer.camera.pos.z = 0.5; + game.renderer.camera.pos.y = 15.0; while !game.should_close { { @@ -200,17 +209,8 @@ fn main() { let delta = (diff.num_nanoseconds().unwrap() as f64) / frame_time; let (width, height) = window.get_inner_size_pixels().unwrap(); - // TODO: TEMP - game.renderer.camera.pos.x = 0.5; - game.renderer.camera.pos.z = 0.5; - game.renderer.camera.pos.y = 15.0; - game.renderer.camera.yaw += 0.005 * delta; - if game.renderer.camera.yaw > ::std::f64::consts::PI * 2.0 { - game.renderer.camera.yaw = 0.0; - } - - game.tick(); - game.server.tick(); + game.tick(delta); + game.server.tick(delta); game.chunk_builder.tick(&mut game.server.world, &mut game.renderer); diff --git a/src/server.rs b/src/server.rs index b16a07a..673892f 100644 --- a/src/server.rs +++ b/src/server.rs @@ -17,6 +17,7 @@ use world; use world::block::{self, BlockSet}; use rand::{self, Rng}; use std::sync::{Arc, RwLock, Mutex}; +use std::thread; use resources; use openssl; use console; @@ -131,7 +132,11 @@ impl Server { } } - pub fn tick(&mut self) { + pub fn is_connected(&self) -> bool { + self.conn.is_some() + } + + pub fn tick(&mut self, delta: f64) { let version = self.resources.read().unwrap().version(); if version != self.version { self.version = version;