|
- use log::{error, info};
- use space_crush_app::{App, Error};
- use space_crush_common::{
- misc::{init_logger, Vfs},
- Dispatcher,
- };
- use specs::{World, WorldExt};
-
- fn main() -> Result<(), Error> {
- let vfs = Vfs::new(&["space-crush-app"])?;
-
- init_logger(&vfs, "log4rs.yml");
-
- vfs.log_info();
-
- info!("Application started");
-
- if let Err(err) = run(vfs) {
- error!("Error while executing application: {}", err);
-
- return Err(err);
- }
-
- info!("Application exited");
-
- Ok(())
- }
-
- fn run(vfs: Vfs) -> Result<(), Error> {
- let mut world = World::new();
- world.insert(vfs);
-
- let mut common = Dispatcher::new(&mut world);
- let mut app = App::new(&mut world)?;
-
- create_test_world(&mut world);
-
- while app.is_running() {
- common.process(&world);
- app.process(&world)?;
- }
-
- Ok(())
- }
-
- fn create_test_world(world: &mut World) {
- use glc::vector::Vector2f;
- use space_crush_common::components::{Planet, Position};
- use specs::Builder;
-
- world
- .create_entity()
- .with(Position {
- pos: Vector2f::default(),
- size: 500.0,
- })
- .with(Planet)
- .build();
- }
|