From 4f787c33e80e97c8f0cb96b518902ce1186663d6 Mon Sep 17 00:00:00 2001 From: yuni Date: Fri, 12 Jul 2024 14:22:56 +0200 Subject: [PATCH] cleanup (remove unnecessary scope block, unindenting by 1) (I had this scope block before in order to release ownership of some variable so that it can be used again after the scope block, but seems like this is not necessary anymore by now) --- src/cmd.rs | 410 ++++++++++++++++++++++++++--------------------------- 1 file changed, 204 insertions(+), 206 deletions(-) diff --git a/src/cmd.rs b/src/cmd.rs index 179bb0f..c83e377 100644 --- a/src/cmd.rs +++ b/src/cmd.rs @@ -840,223 +840,221 @@ fn spawn_entities( // Spawn the actor let actor_entity; - { - let mut actor = commands.spawn_empty(); - actor.insert(actor::Actor { - id: state.id.clone(), - name: state.name.clone(), - camdistance: state.camdistance, + let mut actor = commands.spawn_empty(); + actor.insert(actor::Actor { + id: state.id.clone(), + name: state.name.clone(), + camdistance: state.camdistance, + ..default() + }); + actor.insert(SleepingDisabled); + if orbits_jupiter { + actor.insert(actor::OrbitsJupiter); + } + actor.insert(world::DespawnOnPlayerDeath); + actor.insert(actor::HitPoints::default()); + actor.insert(Position::from(absolute_pos)); + if state.is_sphere { + let sphere_texture_handle = if let Some(model) = &state.model { + Some(asset_server.load(format!("textures/{}.jpg", model))) + } else { + None + }; + rotation = Quat::from_rotation_x(-90f32.to_radians()) * rotation; + let sphere_handle = meshes.add(Sphere::new(1.0).mesh().uv(128, 128)); + let sphere_material_handle = materials.add(StandardMaterial { + base_color_texture: sphere_texture_handle, + perceptual_roughness: 1.0, + metallic: 0.0, ..default() }); - actor.insert(SleepingDisabled); - if orbits_jupiter { - actor.insert(actor::OrbitsJupiter); - } - actor.insert(world::DespawnOnPlayerDeath); - actor.insert(actor::HitPoints::default()); - actor.insert(Position::from(absolute_pos)); - if state.is_sphere { - let sphere_texture_handle = if let Some(model) = &state.model { - Some(asset_server.load(format!("textures/{}.jpg", model))) - } else { - None - }; - rotation = Quat::from_rotation_x(-90f32.to_radians()) * rotation; - let sphere_handle = meshes.add(Sphere::new(1.0).mesh().uv(128, 128)); - let sphere_material_handle = materials.add(StandardMaterial { - base_color_texture: sphere_texture_handle, - perceptual_roughness: 1.0, - metallic: 0.0, - ..default() - }); - actor.insert(PbrBundle { - mesh: sphere_handle, - material: sphere_material_handle, - transform: Transform::from_scale(scale), - ..default() - }); - } else if let Some(model) = &state.model { - actor.insert(SpatialBundle { - transform: Transform::from_scale(scale), - ..default() - }); - load_asset(model.as_str(), &mut actor, &*asset_server); - } - actor.insert(Rotation::from(rotation)); + actor.insert(PbrBundle { + mesh: sphere_handle, + material: sphere_material_handle, + transform: Transform::from_scale(scale), + ..default() + }); + } else if let Some(model) = &state.model { + actor.insert(SpatialBundle { + transform: Transform::from_scale(scale), + ..default() + }); + load_asset(model.as_str(), &mut actor, &*asset_server); + } + actor.insert(Rotation::from(rotation)); - // Physics Parameters - if state.has_physics { - actor.insert(RigidBody::Dynamic); - actor.insert(LinearVelocity(velocity)); - actor.insert(AngularVelocity(state.angular_momentum)); - actor.insert(ColliderDensity(state.density)); - if state.collider_is_mesh { - actor.insert(MassPropertiesBundle::new_computed( - &Collider::sphere(0.5 * state.model_scale as f64), - state.density, - )); - actor.insert(AsyncSceneCollider::new(Some( - ComputedCollider::TriMesh, //ComputedCollider::ConvexDecomposition(VHACDParameters::default()) - ))); - } else if state.collider_is_one_mesh_of_scene { - actor.insert(MassPropertiesBundle::new_computed( - &Collider::sphere(0.5 * state.model_scale as f64), - state.density, - )); - actor.insert( - AsyncSceneCollider::new(None) - .with_shape_for_name("Collider", ComputedCollider::TriMesh) - .with_layers_for_name("Collider", CollisionLayers::ALL), //.with_density_for_name("Collider", state.density) - ); - actor.insert(NeedsSceneColliderRemoved); - } else { - actor.insert(state.collider.clone()); - } - } - // TODO: angular velocity for objects without collisions, static objects - - // Optional Components - if state.is_player { - actor.insert(actor::Player); - actor.insert(actor::PlayerCamera); - actor.insert(hud::AugmentedRealityOverlayBroadcaster); - ew_updateavatar.send(hud::UpdateAvatarEvent); - } - if state.is_sun { - let (r, g, b) = nature::star_color_index_to_rgb(0.656); - actor.insert(materials.add(StandardMaterial { - base_color: Color::srgb(r * 13.0, g * 13.0, b * 13.0), - unlit: true, - ..default() - })); - actor.insert((NotShadowCaster, NotShadowReceiver)); - } - if state.is_targeted_on_startup { - actor.insert(hud::IsTargeted); - } - if let Some((mindist, id)) = &state.show_only_in_map_at_distance { - actor.insert(camera::ShowOnlyInMap { - min_distance: *mindist, - distance_to_id: id.clone(), - }); - } - if state.is_player || state.is_vehicle { - // used to apply mouse movement to actor rotation - actor.insert(ExternalTorque::ZERO.with_persistence(false)); - } - if state.is_lifeform { - actor.insert(actor::LifeForm::default()); - actor.insert(actor::ExperiencesGForce::default()); - actor.insert(actor::Suit { - oxygen: state.oxygen, - oxygen_max: nature::OXY_D, - integrity: state.suit_integrity, - ..default() - }); - actor.insert(actor::Battery::default()); - } - if state.is_clickable { - actor.insert(hud::IsClickable { - name: state.name.clone(), - pronoun: state.pronoun.clone(), - ..default() - }); - } - if let Some(value) = state.wants_maxrotation { - actor.insert(actor::WantsMaxRotation(value)); - } - if let Some(value) = state.wants_maxvelocity { - actor.insert(actor::WantsMaxVelocity(value)); - } - if let Some(value) = &state.wants_tolookat_id { - actor.insert(actor::WantsToLookAt(value.clone())); - } - if let Some(value) = &state.wants_matchvelocity_id { - actor.insert(actor::WantsMatchVelocityWith(value.clone())); - } - if let Some(color) = state.light_color { - actor.insert(( - PointLight { - intensity: state.light_brightness, - color, - range: 2000.0, - shadows_enabled: settings.shadows_pointlights, - ..default() - }, - bevy::pbr::CubemapVisibleEntities::default(), - bevy::render::primitives::CubemapFrusta::default(), + // Physics Parameters + if state.has_physics { + actor.insert(RigidBody::Dynamic); + actor.insert(LinearVelocity(velocity)); + actor.insert(AngularVelocity(state.angular_momentum)); + actor.insert(ColliderDensity(state.density)); + if state.collider_is_mesh { + actor.insert(MassPropertiesBundle::new_computed( + &Collider::sphere(0.5 * state.model_scale as f64), + state.density, )); + actor.insert(AsyncSceneCollider::new(Some( + ComputedCollider::TriMesh, //ComputedCollider::ConvexDecomposition(VHACDParameters::default()) + ))); + } else if state.collider_is_one_mesh_of_scene { + actor.insert(MassPropertiesBundle::new_computed( + &Collider::sphere(0.5 * state.model_scale as f64), + state.density, + )); + actor.insert( + AsyncSceneCollider::new(None) + .with_shape_for_name("Collider", ComputedCollider::TriMesh) + .with_layers_for_name("Collider", CollisionLayers::ALL), //.with_density_for_name("Collider", state.density) + ); + actor.insert(NeedsSceneColliderRemoved); + } else { + actor.insert(state.collider.clone()); } - if !state.id.is_empty() { - actor.insert(actor::Identifier(state.id.clone())); - id2pos.0.insert(state.id.clone(), absolute_pos); - } - if !state.chat.is_empty() { - actor.insert(chat::Talker { - actor_id: state.id.clone(), - chat_name: state.chat.clone(), - name: state.name.clone(), - pronoun: state.pronoun.clone(), - talking_speed: 1.0, - }); - if let Some(name) = &state.name { - achievement_tracker.all_people.insert(name.clone()); - } - } - if state.is_vehicle { - actor.insert(actor::Vehicle::default()); - if let Some(name) = &state.name { - achievement_tracker.all_vehicles.insert(name.clone()); - } - } - if state.is_vehicle - || state.is_suited - || state.thrust_forward > 0.0 - || state.thrust_sideways > 0.0 - || state.thrust_back > 0.0 - || state.reaction_wheels > 0.0 - { - actor.insert(actor::Engine { - thrust_forward: state.thrust_forward, - thrust_back: state.thrust_back, - thrust_sideways: state.thrust_sideways, - reaction_wheels: state.reaction_wheels, - warmup_seconds: state.warmup_seconds, - engine_type: state.engine_type, + } + // TODO: angular velocity for objects without collisions, static objects + + // Optional Components + if state.is_player { + actor.insert(actor::Player); + actor.insert(actor::PlayerCamera); + actor.insert(hud::AugmentedRealityOverlayBroadcaster); + ew_updateavatar.send(hud::UpdateAvatarEvent); + } + if state.is_sun { + let (r, g, b) = nature::star_color_index_to_rgb(0.656); + actor.insert(materials.add(StandardMaterial { + base_color: Color::srgb(r * 13.0, g * 13.0, b * 13.0), + unlit: true, + ..default() + })); + actor.insert((NotShadowCaster, NotShadowReceiver)); + } + if state.is_targeted_on_startup { + actor.insert(hud::IsTargeted); + } + if let Some((mindist, id)) = &state.show_only_in_map_at_distance { + actor.insert(camera::ShowOnlyInMap { + min_distance: *mindist, + distance_to_id: id.clone(), + }); + } + if state.is_player || state.is_vehicle { + // used to apply mouse movement to actor rotation + actor.insert(ExternalTorque::ZERO.with_persistence(false)); + } + if state.is_lifeform { + actor.insert(actor::LifeForm::default()); + actor.insert(actor::ExperiencesGForce::default()); + actor.insert(actor::Suit { + oxygen: state.oxygen, + oxygen_max: nature::OXY_D, + integrity: state.suit_integrity, + ..default() + }); + actor.insert(actor::Battery::default()); + } + if state.is_clickable { + actor.insert(hud::IsClickable { + name: state.name.clone(), + pronoun: state.pronoun.clone(), + ..default() + }); + } + if let Some(value) = state.wants_maxrotation { + actor.insert(actor::WantsMaxRotation(value)); + } + if let Some(value) = state.wants_maxvelocity { + actor.insert(actor::WantsMaxVelocity(value)); + } + if let Some(value) = &state.wants_tolookat_id { + actor.insert(actor::WantsToLookAt(value.clone())); + } + if let Some(value) = &state.wants_matchvelocity_id { + actor.insert(actor::WantsMatchVelocityWith(value.clone())); + } + if let Some(color) = state.light_color { + actor.insert(( + PointLight { + intensity: state.light_brightness, + color, + range: 2000.0, + shadows_enabled: settings.shadows_pointlights, ..default() - }); + }, + bevy::pbr::CubemapVisibleEntities::default(), + bevy::render::primitives::CubemapFrusta::default(), + )); + } + if !state.id.is_empty() { + actor.insert(actor::Identifier(state.id.clone())); + id2pos.0.insert(state.id.clone(), absolute_pos); + } + if !state.chat.is_empty() { + actor.insert(chat::Talker { + actor_id: state.id.clone(), + chat_name: state.chat.clone(), + name: state.name.clone(), + pronoun: state.pronoun.clone(), + talking_speed: 1.0, + }); + if let Some(name) = &state.name { + achievement_tracker.all_people.insert(name.clone()); } - if let Some(_) = state.ar_model { - actor.insert(hud::AugmentedRealityOverlayBroadcaster); + } + if state.is_vehicle { + actor.insert(actor::Vehicle::default()); + if let Some(name) = &state.name { + achievement_tracker.all_vehicles.insert(name.clone()); } - if state.is_player { - actor.with_children(|builder| { - builder.spawn(( - world::DespawnOnPlayerDeath, - actor::PlayersFlashLight, - SpotLightBundle { - transform: Transform { - translation: Vec3::new(0.0, 0.0, 1.0), - rotation: Quat::from_rotation_y(180f32.to_radians()), - ..default() - }, - spot_light: SpotLight { - intensity: 40_000_000.0, // lumens - color: Color::WHITE, - shadows_enabled: true, - inner_angle: PI32 / 8.0 * 0.85, - outer_angle: PI32 / 4.0, - range: 2000.0, - ..default() - }, - visibility: Visibility::Hidden, + } + if state.is_vehicle + || state.is_suited + || state.thrust_forward > 0.0 + || state.thrust_sideways > 0.0 + || state.thrust_back > 0.0 + || state.reaction_wheels > 0.0 + { + actor.insert(actor::Engine { + thrust_forward: state.thrust_forward, + thrust_back: state.thrust_back, + thrust_sideways: state.thrust_sideways, + reaction_wheels: state.reaction_wheels, + warmup_seconds: state.warmup_seconds, + engine_type: state.engine_type, + ..default() + }); + } + if let Some(_) = state.ar_model { + actor.insert(hud::AugmentedRealityOverlayBroadcaster); + } + if state.is_player { + actor.with_children(|builder| { + builder.spawn(( + world::DespawnOnPlayerDeath, + actor::PlayersFlashLight, + SpotLightBundle { + transform: Transform { + translation: Vec3::new(0.0, 0.0, 1.0), + rotation: Quat::from_rotation_y(180f32.to_radians()), ..default() }, - )); - }); - } - actor_entity = actor.id(); + spot_light: SpotLight { + intensity: 40_000_000.0, // lumens + color: Color::WHITE, + shadows_enabled: true, + inner_angle: PI32 / 8.0 * 0.85, + outer_angle: PI32 / 4.0, + range: 2000.0, + ..default() + }, + visibility: Visibility::Hidden, + ..default() + }, + )); + }); } + actor_entity = actor.id(); if let Some(ar_asset_name) = &state.ar_model { let mut entitycmd = commands.spawn((