A crates/unified/src/client/components/mod.rs => crates/unified/src/client/components/mod.rs +49 -0
@@ 0,0 1,49 @@
+use crate::prelude::{Component, Deserialize, GizmoConfigGroup, Handle, Image, Reflect, Resource, Serialize};
+
+#[derive(Component)]
+pub struct MainCamera;
+
+#[derive(Component)]
+pub struct StarguideCamera;
+
+#[derive(Component)]
+pub struct OrbitCamera;
+
+#[derive(Default, Reflect, GizmoConfigGroup)]
+pub struct StarguideGizmos;
+
+#[derive(Component)]
+pub struct StarfieldFront;
+
+#[derive(Component)]
+pub struct StarfieldMid;
+
+#[derive(Component)]
+pub struct StarfieldBack;
+
+#[derive(Component)]
+pub struct FuelText;
+
+#[derive(Component)]
+pub struct PowerText;
+
+#[derive(Component)]
+pub struct PlanetSensor(pub String);
+
+#[derive(Component)]
+pub struct Me;
+
+#[derive(Component)]
+pub struct StarguideMe;
+
+#[derive(Resource)]
+pub struct StarguideOrbitImage(pub Handle<Image>);
+
+#[derive(Component)]
+pub struct StarguideOrbit;
+
+#[derive(Component, Serialize, Deserialize, Debug)]
+pub struct CraftingUi;
+
+#[derive(Component, Serialize, Deserialize, Debug)]
+pub struct TemperatureSprite;<
\ No newline at end of file
M crates/unified/src/client/crafting/ui.rs => crates/unified/src/client/crafting/ui.rs +5 -1
@@ 2,7 2,11 @@ use std::collections::HashMap;
use bevy::{input_focus::AutoFocus, ui::RelativeCursorPosition};
-use crate::{attachment::PartInShip, client::colors, config::recipe::RecipesConfig, ecs::{CanCraft, CraftPartRequest, CraftingUi, Drill, MainCamera, Me, Part, SingleStorage, ToggleDrillEvent, VariableStorage}, prelude::*};
+use crate::{client::colors, prelude::*};
+use crate::client::components::{CraftingUi, MainCamera, Me};
+use crate::shared::attachment::PartInShip;
+use crate::shared::config::recipe::RecipesConfig;
+use crate::shared::ecs::{CanCraft, CraftPartRequest, Drill, Part, SingleStorage, ToggleDrillEvent, VariableStorage};
pub fn crafting_ui_plugin(app: &mut App) {
app.init_resource::<RecipeCollection>();
M crates/unified/src/client/input/mod.rs => crates/unified/src/client/input/mod.rs +1 -1
@@ 5,7 5,7 @@ use bevy::window::PrimaryWindow;
use leafwing_input_manager::Actionlike;
use leafwing_input_manager::input_map::InputMap;
use leafwing_input_manager::prelude::ActionState;
-use crate::ecs::MainCamera;
+use crate::client::components::MainCamera;
use crate::prelude::*;
#[derive(Actionlike, PartialEq, Eq, Hash, Clone, Copy, Debug, Reflect)]
M crates/unified/src/client/mod.rs => crates/unified/src/client/mod.rs +4 -2
@@ 8,12 8,12 @@ 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 crate::ecs::StarguideGizmos;
+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::ecs::GameplayState;
+use crate::shared::ecs::GameplayState;
pub mod colors;
pub mod key_input;
@@ 27,6 27,8 @@ pub mod rendering;
pub mod input;
pub mod starguide;
pub mod crafting;
+pub mod components;
+pub mod plugins;
pub struct ClientPlugin;
M crates/unified/src/client/parts.rs => crates/unified/src/client/parts.rs +4 -3
@@ 1,12 1,13 @@
use std::f32::consts::PI;
-use crate::attachment::{Joint, JointOf, Joints, PartInShip, Peer, SnapOf, SnapOfJoint};
+use crate::shared::attachment::{Joint, JointOf, Joints, PartInShip, Peer, SnapOf, SnapOfJoint};
use crate::client::crafting::ui::open_crafting_ui;
-use crate::ecs::{Me, Temperature};
+use crate::shared::ecs::Temperature;
use crate::client::colors::GREEN;
-use crate::ecs::{DragRequestEvent, Part, MAIN_LAYER};
+use crate::shared::ecs::{DragRequestEvent, Part, MAIN_LAYER};
use crate::client::input::CursorWorldCoordinates;
use bevy::color::palettes::css::{ORANGE, PURPLE, RED, YELLOW};
+use crate::client::components::Me;
use crate::client::ship::attachment::AttachmentDebugRes;
use crate::prelude::*;
M crates/unified/src/client/planet/incoming_planets.rs => crates/unified/src/client/planet/incoming_planets.rs +2 -2
@@ 1,6 1,6 @@
-use crate::config::planet::{Planet, SpecialSpriteProperties};
+use crate::shared::config::planet::{Planet, SpecialSpriteProperties};
use crate::prelude::*;
-use crate::ecs::{MAIN_STAR_LAYERS};
+use crate::shared::ecs::{MAIN_STAR_LAYERS};
pub fn incoming_planets_plugin(app: &mut App) {
app.add_systems(Update, (handle_incoming_planets, handle_updated_planets));
M crates/unified/src/client/planet/indicators.rs => crates/unified/src/client/planet/indicators.rs +3 -3
@@ 1,6 1,6 @@
-use crate::ecs::Me;
-use crate::config::planet::Planet;
-use crate::ecs::MainCamera;
+use crate::client::components::Me;
+use crate::shared::config::planet::Planet;
+use crate::client::components::MainCamera;
use crate::prelude::*;
use bevy::window::PrimaryWindow;
R crates/unified/src/client_plugins.rs => crates/unified/src/client/plugins.rs +0 -0
M crates/unified/src/client/rendering/mod.rs => crates/unified/src/client/rendering/mod.rs +2 -1
@@ 2,7 2,8 @@ use bevy::anti_alias::fxaa::Fxaa;
use bevy::app::{App, Startup};
use bevy::core_pipeline::tonemapping::DebandDither;
use bevy::post_process::bloom::Bloom;
-use crate::ecs::{GameplayState, MAIN_LAYER, MainCamera, Me, STARGUIDE_LAYER, StarguideGizmos};
+use crate::client::components::{MainCamera, Me, StarguideGizmos};
+use crate::shared::ecs::{GameplayState, MAIN_LAYER, STARGUIDE_LAYER};
use crate::prelude::*;
pub fn render_plugin(app: &mut App) {
M crates/unified/src/client/ship/attachment.rs => crates/unified/src/client/ship/attachment.rs +2 -2
@@ 1,8 1,8 @@
use std::ops::Deref;
use bevy::color::palettes::basic::{FUCHSIA, GREEN, WHITE};
use bevy::color::palettes::css::ORANGE;
-use crate::attachment::{JointOf, Peer, SnapOf};
-use crate::ecs::Part;
+use crate::shared::attachment::{JointOf, Peer, SnapOf};
+use crate::shared::ecs::Part;
use crate::prelude::*;
pub fn client_attachment_plugin(app: &mut App) {
M crates/unified/src/client/ship/thrusters.rs => crates/unified/src/client/ship/thrusters.rs +4 -4
@@ 6,13 6,13 @@ use bevy::color::palettes::css::LIMEGREEN;
use bevy::math::Vec3Swizzles;
use good_lp::{default_solver, variable, Expression, ProblemVariables, Solution, SolutionStatus, SolverModel};
use leafwing_input_manager::prelude::ActionState;
-use crate::attachment::Parts;
+use crate::shared::attachment::Parts;
use crate::client::input::ClientAction;
-use crate::ecs::thruster::{PartThrusters, Thruster};
+use crate::shared::ecs::thruster::{PartThrusters, Thruster};
use crate::prelude::*;
use crate::client::input::util::ActionStateExt;
-use crate::ecs::Me;
-use crate::thrust::ThrustSolution;
+use crate::client::components::Me;
+use crate::shared::thrust::ThrustSolution;
pub fn client_thrusters_plugin(app: &mut App) {
app
M crates/unified/src/client/starfield.rs => crates/unified/src/client/starfield.rs +3 -5
@@ 15,11 15,9 @@ use bevy::{
transform::components::Transform,
window::{Window, WindowResized},
};
-
-use crate::{
- ecs::Me,
- ecs::{MainCamera, MAIN_LAYER, StarfieldBack, StarfieldFront, StarfieldMid},
-};
+use crate::client::components::{MainCamera, StarfieldBack, StarfieldFront, StarfieldMid};
+use crate::shared::ecs::MAIN_LAYER;
+use crate::client::components::Me;
pub const BACK_STARFIELD_SIZE: f32 = 256.0;
pub const MID_STARFIELD_SIZE: f32 = 384.0;
M crates/unified/src/client/starguide/init.rs => crates/unified/src/client/starguide/init.rs +2 -1
@@ 1,8 1,9 @@
use bevy::anti_alias::fxaa::Fxaa;
use bevy::core_pipeline::tonemapping::DebandDither;
use bevy::post_process::bloom::Bloom;
+use crate::client::components::{Me, StarguideCamera, StarguideMe, StarguideOrbit};
use crate::prelude::*;
-use crate::ecs::{Me, Part, STARGUIDE_LAYER, StarguideCamera, StarguideMe, StarguideOrbit};
+use crate::shared::ecs::{Part, STARGUIDE_LAYER};
pub fn starguide_init_plugin(app: &mut App) {
app
M crates/unified/src/client/starguide/input.rs => crates/unified/src/client/starguide/input.rs +1 -1
@@ 1,6 1,6 @@
use crate::prelude::*;
use crate::client::input::CursorWorldCoordinates;
-use crate::ecs::StarguideCamera;
+use crate::client::components::StarguideCamera;
pub fn starguide_input_plugin(app: &mut App) {
app
M crates/unified/src/client/starguide/orbit.rs => crates/unified/src/client/starguide/orbit.rs +4 -3
@@ 1,7 1,8 @@
use std::f64::consts::PI;
-
-
-use crate::{config::planet::Planet, ecs::{Me, StarguideCamera, StarguideGizmos}, prelude::*, world_config::WorldConfigResource};
+use crate::client::components::{Me, StarguideCamera, StarguideGizmos};
+use crate::prelude::*;
+use crate::shared::config::planet::Planet;
+use crate::shared::world_config::WorldConfigResource;
pub fn starguide_orbit_plugin(app: &mut App) {
app
M crates/unified/src/client/ui.rs => crates/unified/src/client/ui.rs +3 -4
@@ 1,10 1,9 @@
use crate::prelude::*;
-use crate::{
- client::colors,
- ecs::{FuelText, Player, PlayerStorage, PowerText, MainCamera, MAIN_LAYER},
-};
+use crate::client::colors;
+use crate::client::components::{FuelText, MainCamera, PowerText};
use crate::client::rendering::setup_graphics;
+use crate::shared::ecs::{Player, PlayerStorage, MAIN_LAYER};
pub fn ui_plugin(app: &mut App) {
app.add_systems(Startup, setup_ui.after(setup_graphics))
M crates/unified/src/client/zoom.rs => crates/unified/src/client/zoom.rs +3 -6
@@ 2,12 2,9 @@ use bevy::{
input::mouse::{MouseScrollUnit, MouseWheel},
prelude::*,
};
-
-use crate::{
- client::starfield::{BACK_STARFIELD_SIZE, FRONT_STARFIELD_SIZE, MID_STARFIELD_SIZE, StarfieldSize}, ecs::{MainCamera, Me, OrbitCamera, StarfieldBack, StarfieldFront, StarfieldMid}
-};
-use crate::ecs::{StarguideCamera, GameplayState};
-
+use crate::client::components::{MainCamera, Me, OrbitCamera, StarfieldBack, StarfieldFront, StarfieldMid, StarguideCamera};
+use crate::client::starfield::{StarfieldSize, BACK_STARFIELD_SIZE, FRONT_STARFIELD_SIZE, MID_STARFIELD_SIZE};
+use crate::shared::ecs::GameplayState;
pub fn zoom_plugin(app: &mut App) {
app.add_systems(Update, on_scroll);
}
M crates/unified/src/main.rs => crates/unified/src/main.rs +5 -12
@@ 16,32 16,25 @@
#![allow(clippy::too_many_arguments, reason = "Le Bevy:tm:")]
#![allow(clippy::too_many_lines, reason = "With the three of us, this is impossible")]
-pub mod attachment;
pub mod client;
-pub mod client_plugins;
-pub mod config;
-pub mod ecs;
pub mod server;
-pub mod server_plugins;
-pub mod shared_plugins;
-pub mod world_config;
-pub mod physics;
pub mod prelude;
#[cfg(target_arch = "wasm32")]
pub mod wasm_entrypoint;
mod cli;
-mod thrust;
+pub mod shared;
use std::str::FromStr;
+use shared::plugins;
#[cfg(target_arch = "wasm32")]
pub use wasm_entrypoint::*;
use crate::cli::StkArgs;
-use crate::client_plugins::ClientPluginGroup;
+use client::plugins::ClientPluginGroup;
use crate::prelude::*;
-use crate::server_plugins::ServerPluginGroup;
+use server::plugins::ServerPluginGroup;
fn run(cli: StkArgs) -> AppExit {
let mut app = App::new();
@@ 53,7 46,7 @@ fn run(cli: StkArgs) -> AppExit {
.disable::<bevy::log::LogPlugin>()
.disable::<bevy::ui::UiPlugin>()
);
- app.add_plugins(shared_plugins::SharedPluginGroup);
+ app.add_plugins(plugins::SharedPluginGroup);
app.add_plugins(ServerPluginGroup);
app.add_plugins(ClientPluginGroup);
}
M crates/unified/src/server/craft.rs => crates/unified/src/server/craft.rs +3 -1
@@ 1,6 1,8 @@
use std::collections::HashMap;
-use crate::{attachment::{PartInShip, Parts}, ecs::{CraftPartRequest, Part, Player, SingleStorage, VariableStorage}, prelude::*, server::part::{SpawnPartBundle, SpawnPartRequest}};
+use crate::{prelude::*, server::part::{SpawnPartBundle, SpawnPartRequest}};
+use crate::shared::attachment::{PartInShip, Parts};
+use crate::shared::ecs::{CraftPartRequest, Part, Player, SingleStorage, VariableStorage};
pub fn craft_plugin(app: &mut App) {
app.add_systems(Update, receive_crafting_request);
M crates/unified/src/server/drill.rs => crates/unified/src/server/drill.rs +5 -1
@@ 1,4 1,8 @@
-use crate::{attachment::{PartInShip, Parts}, config::planet::Planet, ecs::{Drill, Part, PlanetSensor, Player, SingleStorage, ToggleDrillEvent, VariableStorage}, prelude::*};
+use crate::client::components::PlanetSensor;
+use crate::prelude::*;
+use crate::shared::attachment::{PartInShip, Parts};
+use crate::shared::config::planet::Planet;
+use crate::shared::ecs::{Drill, Part, Player, SingleStorage, ToggleDrillEvent, VariableStorage};
pub fn drill_plugin(app: &mut App) {
app.add_systems(Update, (toggle_drill, drill_on_planet, do_drilling));
M crates/unified/src/server/earth_parts.rs => crates/unified/src/server/earth_parts.rs +2 -2
@@ 1,6 1,6 @@
-use crate::config::planet::Planet;
+use crate::shared::config::planet::Planet;
use crate::server::part::{SpawnPartBundle, SpawnPartRequest};
-use crate::world_config::WorldConfigResource;
+use crate::shared::world_config::WorldConfigResource;
use bevy::app::App;
use crate::prelude::*;
use bevy::time::Time;
M crates/unified/src/server/gravity.rs => crates/unified/src/server/gravity.rs +3 -3
@@ 1,8 1,8 @@
-use crate::config::planet::Planet;
-use crate::ecs::Part;
+use crate::shared::config::planet::Planet;
+use crate::shared::ecs::Part;
use crate::prelude::*;
use crate::server::system_sets::WorldUpdateSet;
-use crate::world_config::WorldConfigResource;
+use crate::shared::world_config::WorldConfigResource;
pub fn newtonian_gravity_plugin(app: &mut App) {
app.add_systems(Update, update_gravity.in_set(WorldUpdateSet));
M crates/unified/src/server/heat/conduction.rs => crates/unified/src/server/heat/conduction.rs +2 -1
@@ 1,4 1,5 @@
-use crate::{attachment::Peer, prelude::*};
+use crate::prelude::*;
+use crate::shared::attachment::Peer;
pub fn heat_conduction_plugin(app: &mut App) {
app.add_systems(Update, propagate_heat);
M crates/unified/src/server/heat/cooling.rs => crates/unified/src/server/heat/cooling.rs +1 -1
@@ 1,5 1,5 @@
use crate::prelude::*;
-use crate::ecs::{Cooler, Temperature};
+use crate::shared::ecs::{Cooler, Temperature};
pub fn heat_cooling_plugin(app: &mut App) {
app.add_systems(Update, cool_part);
M crates/unified/src/server/heat/radiation.rs => crates/unified/src/server/heat/radiation.rs +2 -1
@@ 1,4 1,5 @@
-use crate::{ecs::{Part, Radiator, Temperature}, prelude::*};
+use crate::prelude::*;
+use crate::shared::ecs::{Part, Radiator, Temperature};
const STEFAN_BOLTZMANN: f64 = 5.670374419E-8;
const T_ENV: f64 = 4.0; // units: Kelvin
M crates/unified/src/server/mod.rs => crates/unified/src/server/mod.rs +1 -0
@@ 9,6 9,7 @@ pub mod planets;
pub mod player;
mod system_sets;
pub mod orbit;
+pub mod plugins;
use crate::server::craft::craft_plugin;
use crate::server::damping::damping_plugin;
M crates/unified/src/server/orbit/mod.rs => crates/unified/src/server/orbit/mod.rs +2 -2
@@ 4,9 4,9 @@ use avian2d::math::TAU;
use avian2d::prelude::{LinearVelocity, Mass};
use bevy::prelude::{Plugin, Transform};
use bevy::time::Time;
-use crate::config::planet::{Planet, PlanetSpring};
+use crate::shared::config::planet::{Planet, PlanetSpring};
use crate::prelude::{App, Query, Res, Update, Without};
-use crate::world_config::WorldConfigResource;
+use crate::shared::world_config::WorldConfigResource;
pub struct OrbitPlugin;
impl Plugin for OrbitPlugin {
M crates/unified/src/server/part.rs => crates/unified/src/server/part.rs +4 -4
@@ 1,10 1,10 @@
use std::collections::HashMap;
-use crate::attachment::{Joint, JointId, JointOf, Joints, Peer, SnapOf, SnapOfJoint};
-use crate::config::part::{CoolingConfig, CraftingConfig, DrillConfig, JointConfig, PartConfig, StorageConfig, StorageType};
-use crate::ecs::{CanCraft, Cooler, Drill, Part, PartHandle, Radiator, SingleStorage, Temperature, VariableStorage};
+use crate::shared::attachment::{Joint, JointId, JointOf, Joints, Peer, SnapOf, SnapOfJoint};
+use crate::shared::config::part::{CoolingConfig, CraftingConfig, DrillConfig, JointConfig, PartConfig, StorageConfig, StorageType};
+use crate::shared::ecs::{CanCraft, Cooler, Drill, Part, PartHandle, Radiator, SingleStorage, Temperature, VariableStorage};
use crate::prelude::*;
-use crate::ecs::thruster::{PartThrusters, Thruster, ThrusterBundle, ThrusterId, ThrusterOfPart};
+use crate::shared::ecs::thruster::{PartThrusters, Thruster, ThrusterBundle, ThrusterId, ThrusterOfPart};
pub fn part_management_plugin(app: &mut App) {
app.add_systems(PreUpdate, (handle_ready_parts, handle_part_reloading));
M crates/unified/src/server/planets.rs => crates/unified/src/server/planets.rs +4 -2
@@ 1,7 1,9 @@
-use crate::{config::planet::{Planet, PlanetBundle, PlanetConfigCollection}, ecs::PlanetSensor, world_config::WorldConfigResource};
+use crate::client::components::PlanetSensor;
use bevy::{asset::Handle, math::DVec3};
use crate::prelude::*;
-use crate::config::planet::{PlanetSpring, PlanetSpringJoint};
+use crate::shared::config::planet::{PlanetSpring, PlanetSpringJoint};
+use crate::shared::config::planet::{Planet, PlanetBundle, PlanetConfigCollection};
+use crate::shared::world_config::WorldConfigResource;
pub fn planets_plugin(app: &mut App) {
app.init_resource::<PlanetConfigResource>()
M crates/unified/src/server/player.rs => crates/unified/src/server/player.rs +4 -3
@@ 1,13 1,14 @@
pub mod join;
pub mod thrust;
-use crate::attachment::{Joint, JointOf, Joints, PartInShip, Peer, SnapOf, SnapOfJoint};
-use crate::ecs::{DragRequestEvent, Me, Part, Player, PlayerStorage};
+use crate::shared::attachment::{Joint, JointOf, Joints, PartInShip, Peer, SnapOf, SnapOfJoint};
+use crate::shared::ecs::{DragRequestEvent, Part, Player, PlayerStorage};
use crate::server::damping::ModuleJointDamping;
use crate::server::system_sets::PlayerInputSet;
use crate::prelude::*;
-use crate::world_config::WorldConfigResource;
+use crate::shared::world_config::WorldConfigResource;
use std::f64::consts::PI;
+use crate::client::components::Me;
pub fn player_management_plugin(app: &mut App) {
app.add_systems(
M crates/unified/src/server/player/join.rs => crates/unified/src/server/player/join.rs +5 -4
@@ 1,10 1,11 @@
-use crate::config::planet::Planet;
-use crate::config::world::GlobalWorldConfig;
-use crate::ecs::{Me, Player, PlayerStorage};
+use crate::client::components::Me;
+use crate::shared::config::planet::Planet;
+use crate::shared::config::world::GlobalWorldConfig;
+use crate::shared::ecs::{Player, PlayerStorage};
use crate::prelude::*;
use crate::server::ConnectedGameEntity;
use crate::server::part::SpawnPartRequest;
-use crate::world_config::WorldConfigResource;
+use crate::shared::world_config::WorldConfigResource;
fn join_player(joined_player: Entity, mut commands: Commands, wc: &GlobalWorldConfig,
planets: Query<(&Transform, &LinearVelocity, &Planet)>, asset_server: &AssetServer
M crates/unified/src/server/player/thrust.rs => crates/unified/src/server/player/thrust.rs +5 -4
@@ 2,11 2,12 @@
//! The thrust solver runs on the client and sends a `ThrustSolution` message;
//! this file receives it and applies it to the physics simulation.
-use crate::ecs::{Me, Part, Temperature};
-use crate::ecs::thruster::{Thruster, ThrusterOfPart};
+use crate::client::components::Me;
+use crate::shared::ecs::{Part, Temperature};
+use crate::shared::ecs::thruster::{Thruster, ThrusterOfPart};
use crate::prelude::*;
-use crate::attachment::Parts;
-use crate::thrust::ThrustSolution;
+use crate::shared::attachment::Parts;
+use crate::shared::thrust::ThrustSolution;
pub fn server_thrust_plugin(app: &mut App) {
app
R crates/unified/src/server_plugins.rs => crates/unified/src/server/plugins.rs +0 -0
R crates/unified/src/attachment.rs => crates/unified/src/shared/attachment.rs +0 -0
R crates/unified/src/config/mod.rs => crates/unified/src/shared/config/mod.rs +0 -0
R crates/unified/src/config/part.rs => crates/unified/src/shared/config/part.rs +0 -0
R crates/unified/src/config/planet.rs => crates/unified/src/shared/config/planet.rs +0 -0
R crates/unified/src/config/recipe.rs => crates/unified/src/shared/config/recipe.rs +0 -0
R crates/unified/src/config/world.rs => crates/unified/src/shared/config/world.rs +0 -0
R crates/unified/src/ecs.rs => crates/unified/src/shared/ecs.rs +3 -39
@@ 1,6 1,6 @@
pub mod thruster;
-use crate::config::part::PartConfig;
+use crate::shared::config::part::PartConfig;
use bevy::math::{Quat, Vec2};
use bevy::camera::visibility::RenderLayers;
use crate::prelude::*;
@@ 19,29 19,7 @@ pub const STARGUIDE_LAYER: RenderLayers = RenderLayers::layer(1);
pub static MAIN_STAR_LAYERS: LazyLock<RenderLayers> = LazyLock::new(|| RenderLayers::from_layers(&[0, 1]));
pub const ORBIT_LAYER: RenderLayers = RenderLayers::layer(2);
-#[derive(Component)]
-pub struct MainCamera;
-#[derive(Component)]
-pub struct StarguideCamera;
-#[derive(Component)]
-pub struct OrbitCamera;
-
-#[derive(Default, Reflect, GizmoConfigGroup)]
-pub struct StarguideGizmos;
-
-#[derive(Component)]
-pub struct StarfieldFront;
-#[derive(Component)]
-pub struct StarfieldMid;
-#[derive(Component)]
-pub struct StarfieldBack;
-#[derive(Component)]
-pub struct FuelText;
-#[derive(Component)]
-pub struct PowerText;
-
-#[derive(Component)]
-pub struct PlanetSensor(pub String); // corresponding planet name
+// corresponding planet name
#[derive(Component, Serialize, Deserialize, Debug)]
#[require(
@@ 78,21 56,8 @@ pub struct PlayerStorage {
pub power: f32,
}
-#[derive(Component)]
-pub struct Me;
-#[derive(Component)]
-pub struct StarguideMe;
-
-#[derive(Resource)]
-pub struct StarguideOrbitImage(pub Handle<Image>);
-
-#[derive(Component)]
-pub struct StarguideOrbit;
-
#[derive(Component, Serialize, Deserialize, Debug)]
pub struct CanCraft;
-#[derive(Component, Serialize, Deserialize, Debug)]
-pub struct CraftingUi;
#[derive(Message, Debug, Clone)]
pub struct CraftPartRequest {
pub crafting_part: Entity,
@@ 103,8 68,6 @@ pub struct CraftPartRequest {
#[derive(Component, Serialize, Deserialize, Debug)]
pub struct Temperature(pub f64);
#[derive(Component, Serialize, Deserialize, Debug)]
-pub struct TemperatureSprite;
-#[derive(Component, Serialize, Deserialize, Debug)]
pub struct Cooler {
pub cool_temperature: f64,
pub heat_cooling_constant: f64,
@@ 137,3 100,4 @@ pub struct VariableStorage {
pub resources: HashMap<String, f32>,
pub capacity: f32,
}
+
R crates/unified/src/ecs/thruster.rs => crates/unified/src/shared/ecs/thruster.rs +0 -0
A crates/unified/src/shared/mod.rs => crates/unified/src/shared/mod.rs +7 -0
@@ 0,0 1,7 @@
+pub mod attachment;
+pub mod config;
+pub mod physics;
+pub mod thrust;
+pub mod world_config;
+pub mod plugins;
+pub mod ecs;<
\ No newline at end of file
R crates/unified/src/physics.rs => crates/unified/src/shared/physics.rs +0 -0
R crates/unified/src/shared_plugins.rs => crates/unified/src/shared/plugins.rs +7 -7
@@ 1,13 1,13 @@
-use crate::ecs::{CraftPartRequest, DragRequestEvent, ToggleDrillEvent};
-use crate::thrust::ThrustSolution;
+use crate::shared::ecs::{CraftPartRequest, DragRequestEvent, ToggleDrillEvent};
+use crate::shared::thrust::ThrustSolution;
use bevy::app::{App, PluginGroup, PluginGroupBuilder};
use bevy_common_assets::toml::TomlAssetPlugin;
use crate::prelude::*;
-use crate::config::part::PartConfig;
-use crate::config::planet::PlanetConfigCollection;
-use crate::config::recipe::RecipesConfig;
-use crate::config::world::GlobalWorldConfig;
-use crate::world_config::world_config_plugin;
+use crate::shared::config::part::PartConfig;
+use crate::shared::config::planet::PlanetConfigCollection;
+use crate::shared::config::recipe::RecipesConfig;
+use crate::shared::config::world::GlobalWorldConfig;
+use crate::shared::world_config::world_config_plugin;
pub struct SharedPluginGroup;
R crates/unified/src/thrust.rs => crates/unified/src/shared/thrust.rs +0 -0
R crates/unified/src/world_config.rs => crates/unified/src/shared/world_config.rs +1 -1
@@ 1,4 1,4 @@
-use crate::config::world::GlobalWorldConfig;
+use crate::shared::config::world::GlobalWorldConfig;
use bevy::asset::Handle;
use crate::prelude::*;
M crates/unified/src/wasm_entrypoint.rs => crates/unified/src/wasm_entrypoint.rs +3 -3
@@ 1,6 1,6 @@
-use crate::client_plugins::ClientPluginGroup;
-use crate::server_plugins::ServerPluginGroup;
-use crate::shared_plugins::SharedPluginGroup;
+use crate::client::plugins::ClientPluginGroup;
+use crate::server::plugins::ServerPluginGroup;
+use crate::shared::plugins::SharedPluginGroup;
use bevy::app::App;
use bevy::log::LogPlugin;
use bevy::ui::UiPlugin;