use bevy::a11y::AccessibilityPlugin;
use bevy::app::TerminalCtrlCHandlerPlugin;
use bevy::camera::CameraPlugin;
use bevy::diagnostic::DiagnosticsPlugin;
use bevy::input::InputPlugin;
use bevy::log::LogPlugin;
use bevy::mesh::MeshPlugin;
use bevy::prelude::*;
use bevy::state::app::StatesPlugin;
use bevy::text::TextPlugin;
use bevy::window::WindowPlugin;
use bevy::winit::WinitPlugin;

use bevy_vulkan_render::{RenderApp, RenderPlugin as VulkanRenderPlugin};

fn main() {
    eprintln!("Hello, world!");
    let mut app = App::new();

    app.add_plugins((
        MinimalPlugins,
        LogPlugin::default(),
        TransformPlugin,
        DiagnosticsPlugin,
        AssetPlugin::default(),
        ImagePlugin::default_nearest(),
        WindowPlugin::default(),
        AccessibilityPlugin,
        TerminalCtrlCHandlerPlugin,
        WinitPlugin::default(),
        InputPlugin,
        (
            MeshPlugin,
            CameraPlugin,
            TextPlugin,
            StatesPlugin,
            VulkanRenderPlugin,
        ),
    ));

    app.run();
}
