You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

38 lines
712 B

  1. use log::{error, info};
  2. use specs::{World, WorldExt};
  3. use space_crush::{init_logger, misc::Vfs, App, Error, Server};
  4. fn main() -> Result<(), Error> {
  5. let vfs = Vfs::new()?;
  6. init_logger(&vfs);
  7. info!("Application started");
  8. if let Err(err) = run(vfs) {
  9. error!("Error while executing application: {}", err);
  10. return Err(err);
  11. }
  12. info!("Application exited");
  13. Ok(())
  14. }
  15. fn run(vfs: Vfs) -> Result<(), Error> {
  16. let mut world = World::new();
  17. world.insert(vfs);
  18. let mut server = Server::new(&mut world);
  19. let mut app = App::new(&mut world)?;
  20. while app.is_running() {
  21. server.process(&world);
  22. app.process(&world)?;
  23. }
  24. Ok(())
  25. }