editor/
main.rs

1#![doc = include_str!("../README.md")]
2
3mod panic;
4use assets::AssetPlugin;
5
6use bevy::prelude::*;
7use config::Configuration;
8use io::IOPlugin;
9use logging::log_plugin;
10use ui::UIPlugin;
11
12/// Main entry point for the editor.
13///
14/// # Panics
15/// The application will panic when a configuration error occurs, or when Bevy panics, specific
16/// circumstances for when Bevy panics can be found in Bevy's documentation.
17fn main() -> AppExit {
18    panic::register_panic_handler();
19    let config = match Configuration::load() {
20        Ok(cfg) => cfg,
21        Err(err) => panic!("Failed to load configuration: {err:?}"),
22    };
23
24    App::new()
25        .add_plugins((
26            DefaultPlugins.set(log_plugin(&config.logging)),
27            IOPlugin,
28            UIPlugin,
29            AssetPlugin,
30        ))
31        .insert_resource(config)
32        .run()
33}