cubik 0.1.0

OpenGL/glium-based multiplayer game engine
Documentation
mod support;

use cubik::server::ServerContainer;
use support::msg::AppMessage;
use std::time::{Instant, Duration};
use std::thread::sleep;

const PORT: u16 = 27020;

fn main() {
	let mut server_container: ServerContainer<AppMessage> = ServerContainer::new(PORT, 10).unwrap();

	println!("server listening on port {}", PORT);

	let mut last_status_update = Instant::now();

	loop {
		server_container.update();

		for pid in server_container.pids() {
			if let Ok(msgs) = server_container.get_msgs(pid) {
				for msg in msgs {
					server_container.broadcast(msg);
				}
			}
		}

		if last_status_update.elapsed().as_secs_f32() > 5. {
			last_status_update = Instant::now();
			println!("peer status update:");
			for (pid, conn) in &server_container.connections {
				println!("pid: {} name: {}", pid, conn.name.as_ref().unwrap_or(&"".to_string()));
			}
			println!("");
			server_container.broadcast(AppMessage::Chat {
				text: format!("I see {} peers", server_container.connections.len()),
				sender: None
			});
		}

		sleep(Duration::from_millis(16));
	}
}