pub mod ui; pub mod input; pub mod plugins; pub mod components; use bevy::input_focus::InputFocus; use crate::client::colors; use crate::prelude::*; use crate::ship_editor::components::{GhostCamera, MainCamera, GHOST_RENDER_LAYER, MAIN_RENDER_LAYER}; use crate::ship_editor::input::input_plugin; use crate::ship_editor::ui::ui_plugin; pub struct ShipEditorPlugin; impl Plugin for ShipEditorPlugin { fn build(&self, app: &mut App) { app .init_resource::() .add_systems(Startup, setup) .add_plugins(input_plugin) .add_plugins(ui_plugin); } } fn setup( mut commands: Commands, mut meshes: ResMut>, mut materials: ResMut>, ) { commands.insert_resource(ClearColor(colors::BASE)); commands.spawn(( Camera2d, Camera { order: 0, ..Default::default() }, Transform::from_xyz(0.0, 0.0, 0.0), MainCamera, IsDefaultUiCamera, MAIN_RENDER_LAYER, )); commands.spawn(( Camera2d::default(), Camera { order: 1, ..Default::default() }, GhostCamera, GHOST_RENDER_LAYER, )); let rectangle = meshes.add(Rectangle::new(50.0, 50.0)); commands.spawn(( Mesh2d(rectangle), MeshMaterial2d(materials.add(Color::linear_rgb(0.0, 0.0, 0.0))), Transform::from_xyz(0.0, 0.0, 0.0) )); }