41 lines
1.4 KiB
Rust
41 lines
1.4 KiB
Rust
use crate::sim::prelude as sim;
|
|
use crate::{debug, game_setup, util};
|
|
use bevy::prelude::*;
|
|
|
|
mod prefab;
|
|
mod systems;
|
|
|
|
pub fn init(app: &mut App) {
|
|
let app = app.add_plugins((
|
|
game_setup::GameSetupPlugin,
|
|
util::UtilPlugin,
|
|
debug::DebugPlugin,
|
|
));
|
|
|
|
// app.add_systems(Startup, systems::setup_demo_2d)
|
|
// .add_systems(Update, systems::demo_2d);
|
|
|
|
let definitions = sim::Definitions::from_default_directory().unwrap();
|
|
let game_world = sim::GameWorld::generate_mock(&definitions);
|
|
// let game_world = match std::fs::read(sim::SAVE_FILE) {
|
|
// Ok(data) => {
|
|
// info!("Reading world data from \"{}\"", sim::SAVE_FILE);
|
|
// bincode::deserialize(&data).expect("Loading world data from file")
|
|
// }
|
|
// Err(_) => {
|
|
// info!("Generating mock world...");
|
|
// let world = sim::GameWorld::generate_mock(&definitions);
|
|
// info!("Writing new world data to \"{}\"", sim::SAVE_FILE);
|
|
// std::fs::write(sim::SAVE_FILE, bincode::serialize(&world).unwrap()).unwrap();
|
|
// world
|
|
// }
|
|
// };
|
|
|
|
app.register_type::<sim::Definitions>()
|
|
.register_type::<sim::GameWorld>()
|
|
.insert_resource(definitions)
|
|
.insert_resource(game_world)
|
|
.add_systems(Startup, systems::setup_demo_3d)
|
|
.add_systems(Update, (systems::demo_3d, systems::advance_time));
|
|
}
|