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();
}