use avian3d::prelude::*;
use bevy::{log::tracing_subscriber::util::SubscriberInitExt, prelude::*};
use leafwing_input_manager::plugin::InputManagerPlugin;
use mouse_joy::MouseJoy;
mod camera_controller;
mod hud;
mod input;
mod level;
mod lighting;
mod mouse_joy;
mod player;
mod skybox;
mod track;
fn main() {
    App::new()
        .add_plugins(DefaultPlugins)
        .add_plugins(PhysicsPlugins::default())
        .add_plugins(InputManagerPlugin::<input::Action>::default())
        .insert_resource(MouseJoy(Vec2::default()))
        .add_systems(Startup, lighting::set_up_lighting)
        .add_systems(Startup, level::build_level)
        .add_systems(Startup, player::set_up_player)
        .add_systems(Startup, hud::set_up_velocity_txt)
        .add_systems(Update, player::quit_game)
        .add_systems(Update, hud::update_velocity_arrow)
        .add_systems(Update, skybox::fix_cubemap)
        .add_systems(Update, mouse_joy::update_mouse_joy)
        .add_systems(Update, hud::update_velocity_txt)
        .add_systems(FixedUpdate, player::move_player)
        .insert_resource(Gravity::ZERO)
        .run();
}