use crate::client::crafting::ui::crafting_ui_plugin;
use crate::client::key_input::key_input_plugin;
use crate::client::parts::parts_plugin;
use crate::client::planet::indicators::indicators_plugin;
use crate::client::starfield::starfield_plugin;
use crate::client::starguide::orbit::starguide_orbit_plugin;
use crate::client::ui::ui_plugin;
use crate::client::zoom::zoom_plugin;
use crate::client::starguide::init::starguide_init_plugin;
use crate::client::starguide::input::starguide_input_plugin;
use components::StarguideGizmos;
use bevy::dev_tools::picking_debug::DebugPickingMode;
use crate::prelude::*;
use planet::incoming_planets::incoming_planets_plugin;
use crate::client::ship::attachment::client_attachment_plugin;
use crate::shared::ecs::GameplayState;
pub mod colors;
pub mod key_input;
pub mod parts;
pub mod planet;
pub mod starfield;
pub mod ui;
pub mod zoom;
pub mod ship;
pub mod rendering;
pub mod input;
pub mod starguide;
pub mod crafting;
pub mod components;
pub mod plugins;
pub struct ClientPlugin;
impl Plugin for ClientPlugin {
fn build(&self, app: &mut App) {
app
.init_gizmo_group::<StarguideGizmos>()
.add_plugins(rendering::render_plugin)
.add_plugins(input::input_plugin)
.add_plugins(ship::thrusters::client_thrusters_plugin)
.add_plugins((incoming_planets_plugin, indicators_plugin))
.add_plugins(parts_plugin)
.add_plugins(key_input_plugin)
.add_plugins(starfield_plugin)
.add_plugins(ui_plugin)
.add_plugins(zoom_plugin)
.add_plugins(client_attachment_plugin)
.add_plugins(starguide_init_plugin)
.add_plugins(starguide_input_plugin)
.add_plugins(starguide_orbit_plugin)
.add_plugins(crafting_ui_plugin)
.insert_state(GameplayState::Main)
.insert_resource(DebugPickingMode::Disabled);
}
}