From 25e4fd63331cdb6c895d19a42630c6ad4954a384 Mon Sep 17 00:00:00 2001 From: core Date: Tue, 8 Jul 2025 12:45:01 -0400 Subject: [PATCH] chore: fix warnings --- crates/unified/src/attachment.rs | 1 + crates/unified/src/client/mod.rs | 6 +++--- crates/unified/src/ecs.rs | 1 + crates/unified/src/main.rs | 4 +--- crates/unified/src/server/part.rs | 30 +++++++++++++++++------------ crates/unified/src/server/player.rs | 10 +++++++--- 6 files changed, 31 insertions(+), 21 deletions(-) diff --git a/crates/unified/src/attachment.rs b/crates/unified/src/attachment.rs index 82f2743e3906f209e7a66bba8e228be42e40c917..ad67e85085d4da75f2e272559511efa4729f58c6 100644 --- a/crates/unified/src/attachment.rs +++ b/crates/unified/src/attachment.rs @@ -18,6 +18,7 @@ pub struct PartInShip(#[entities] Entity); #[derive(Component, Serialize, Deserialize)] +#[require(Transform)] pub struct Joint { pub id: JointId, pub transform: Transform diff --git a/crates/unified/src/client/mod.rs b/crates/unified/src/client/mod.rs index 465aa4173ef125cacbeb39dda70793256a453f0c..9bc46dd20e2b312935167b3a4d4e1f0b87464e7a 100644 --- a/crates/unified/src/client/mod.rs +++ b/crates/unified/src/client/mod.rs @@ -22,6 +22,7 @@ use bevy::core_pipeline::tonemapping::DebandDither; use bevy::dev_tools::picking_debug::DebugPickingMode; use bevy::prelude::*; use bevy::window::PrimaryWindow; +use bevy_egui::EguiPlugin; use bevy_replicon::shared::server_entity_map::ServerEntityMap; use crate::client::net::set_config; use crate::client::planet::indicators::indicators_plugin; @@ -68,10 +69,9 @@ fn find_me( asset_server: Res, ) { for (entity, player, part) in q_clients.iter() { - let this_id_clientside = entity_map.to_client().get(&player.client).unwrap(); - if *this_id_clientside == entity { + if player.client == entity { commands.entity(entity).insert(Me); - let mut heart_sprite = Sprite::from_image(asset_server.load("sprites/heart_sprite.png")); + let mut heart_sprite = Sprite::from_image(asset_server.load("sprites/hearty_heart.png")); heart_sprite.custom_size = Some(Vec2::new(part.width, part.height)); heart_sprite.color = Color::srgb(20.0, 0.0, 0.0); diff --git a/crates/unified/src/ecs.rs b/crates/unified/src/ecs.rs index 58de158e42e280633a67ea88519240b5f62f8b5c..c478d1309ca139abb6a31e3c8dcfb55a10c194bc 100644 --- a/crates/unified/src/ecs.rs +++ b/crates/unified/src/ecs.rs @@ -47,6 +47,7 @@ pub struct PartBundle { #[derive(Component, Serialize, Deserialize, Debug)] pub struct Player { + #[entities] pub client: Entity, } diff --git a/crates/unified/src/main.rs b/crates/unified/src/main.rs index 45aaacb0fb4f41cf0dd5e4666cc1e542c85ce6e5..8a673cd4732d21aafccea7307042011e4f7a6dcc 100644 --- a/crates/unified/src/main.rs +++ b/crates/unified/src/main.rs @@ -36,9 +36,7 @@ fn main() -> AppExit { tracing_subscriber::fmt() .with_env_filter( - EnvFilter::builder() - .with_default_directive(Level::INFO.into()) - .from_env_lossy(), + EnvFilter::from_default_env() ) .finish() .init(); diff --git a/crates/unified/src/server/part.rs b/crates/unified/src/server/part.rs index 7e6720e0a7ee2065bca08168481e0a0d57674fbe..beb82f0aea8c331d679b15f01b3ab5ac0157e3e7 100644 --- a/crates/unified/src/server/part.rs +++ b/crates/unified/src/server/part.rs @@ -7,11 +7,13 @@ use crate::config::part::{JointOffset, PartConfig}; use crate::ecs::Part; pub fn part_config_plugin(app: &mut App) { - app.add_systems(PreUpdate, handle_spawn_part_requests) - .add_systems(Update, update_part_requests); + app.add_systems(Update, handle_spawn_part_requests) + // delay 1 tick + .add_systems(PreUpdate, update_part_requests); } #[derive(Component, Debug)] +#[require(Transform, Replicated)] pub struct SpawnPart(pub String); #[derive(Component)] struct LoadingPart(Handle); @@ -21,19 +23,19 @@ struct PartType(AssetId); /// STOP DELETING MY ASSET BEVY struct LiveConfigHandle(Handle); -// watch for new SpawnPart components and start loading their config files -fn handle_spawn_part_requests(new_parts: Query<(Entity, &SpawnPart), Added>, mut commands: Commands, asset_server: Res, assets: Res>, parts: Query<(&Joints, &JointSnaps), With>,) { +// watch for SpawnPart components and start loading their config files +fn handle_spawn_part_requests(new_parts: Query<(Entity, &SpawnPart), (With)>, mut commands: Commands, asset_server: Res, assets: Res>, parts: Query<(&Joints, &JointSnaps), With>,transform: Query<&GlobalTransform>) { for (new_part, request) in &new_parts { trace!(?new_part, ?request, "answering part request"); let hdl: Handle = asset_server.load(request.0.clone()); commands.entity(new_part) - .remove::() - .insert(LiveConfigHandle(hdl.clone())); + .insert(LiveConfigHandle(hdl.clone())) + .remove::(); if let Some(cfg) = assets.get(&hdl) { - spawn_part(commands.reborrow(), new_part, cfg, &hdl.id(), parts, false); + spawn_part(commands.reborrow(), new_part, cfg, &hdl.id(), parts, transform,false); } else { commands.entity(new_part) .insert(LoadingPart(hdl.clone())); @@ -47,6 +49,7 @@ fn update_part_requests( mut assets: ResMut>, mut commands: Commands, parts: Query<(&Joints, &JointSnaps), With>, + transform: Query<&GlobalTransform> ) { for ev in ev_config.read() { match ev { @@ -56,7 +59,7 @@ fn update_part_requests( if req.0.id() == *id { let Some(asset) = assets.get(*id) else { continue; }; - spawn_part(commands.reborrow(), loading_part, asset, id, parts, false); + spawn_part(commands.reborrow(), loading_part, asset, id, parts, transform,false); } } }, @@ -65,7 +68,7 @@ fn update_part_requests( for (existing_part, ptype) in &existing_parts { if ptype.0 == *id { let Some(asset) = assets.get(ptype.0) else { continue; }; - spawn_part(commands.reborrow(), existing_part, asset, id, parts, true); + spawn_part(commands.reborrow(), existing_part, asset, id, parts, transform,true); } } } @@ -74,7 +77,7 @@ fn update_part_requests( } } -fn spawn_part(mut commands: Commands, entity: Entity, part: &PartConfig, id: &AssetId, parts: Query<(&Joints, &JointSnaps), With>, is_update: bool) { +fn spawn_part(mut commands: Commands, entity: Entity, part: &PartConfig, id: &AssetId, parts: Query<(&Joints, &JointSnaps), With>, transform: Query<&GlobalTransform>, is_update: bool) { commands.entity(entity) .remove::() .insert(Part { @@ -121,12 +124,15 @@ fn spawn_part(mut commands: Commands, entity: Entity, part: &PartConfig, id: &As JointOf(entity), Replicated, )).id(); - commands.spawn(( + trace!(?e, "spawned joint"); + + let e = commands.spawn(( ChildOf(entity), JointSnapFor(e), >::into(joint.snap), Replicated, - )); + )).id(); + trace!(?e, "spawned jointsnap"); } } } \ No newline at end of file diff --git a/crates/unified/src/server/player.rs b/crates/unified/src/server/player.rs index eba318a00ce57377bf27f842d79f6f3b6495da88..4f06661b2248eb4a43ab4c64eb50389a5940fe9c 100644 --- a/crates/unified/src/server/player.rs +++ b/crates/unified/src/server/player.rs @@ -29,7 +29,9 @@ fn handle_new_players( q_new_clients: Query>, world_config: Res, planets: Query<(&Transform, &Planet)>, - asset_server: Res + asset_server: Res, + gt: Query<&GlobalTransform>, + child_of: Query<&ChildOf> ) { let Some(wc) = &world_config.config else { return; @@ -48,11 +50,13 @@ fn handle_new_players( new_transform.rotate_z(angle); new_transform.translation += spawn_planet_pos.translation; - info!(?new_transform, "set player's position!"); + info!(?new_transform, ?joined_player, "set player's position!"); + + commands.entity(joined_player) + .insert(new_transform); commands.entity(joined_player) .insert(SpawnPart("config/parts/hearty.part.toml".to_string())) - .insert(new_transform) .insert(PlayerThrust::default()) .insert(Player { client: joined_player