From a28297914e15b2ed1155067815a40d2eff055884 Mon Sep 17 00:00:00 2001 From: Danny McGee Date: Tue, 14 Nov 2023 20:40:07 -0500 Subject: [PATCH] Code cleanup --- studio/src/scene/mod.rs | 9 +++++++-- studio/src/scene/wasm.rs | 38 +++++++++++++++++--------------------- 2 files changed, 24 insertions(+), 23 deletions(-) diff --git a/studio/src/scene/mod.rs b/studio/src/scene/mod.rs index c14b634..4c14f02 100644 --- a/studio/src/scene/mod.rs +++ b/studio/src/scene/mod.rs @@ -44,8 +44,13 @@ impl Plugin for ScenePlugin { .add_systems(PostUpdate, move_plane_with_camera.after(CameraMotionSystem)); #[cfg(feature = "wasm")] - app.add_systems(PostUpdate, wasm::notify_entity_spawn_changes.pipe(error)) - .add_systems(Update, wasm::save_scene_system); + app.add_systems( + PostUpdate, + ( + wasm::notify_entity_spawn_changes.pipe(error), + wasm::save_scene_system.pipe(error), + ), + ); } } diff --git a/studio/src/scene/wasm.rs b/studio/src/scene/wasm.rs index cb4d51f..b20034c 100644 --- a/studio/src/scene/wasm.rs +++ b/studio/src/scene/wasm.rs @@ -17,7 +17,7 @@ pub fn save_scene() { wasm::write_message!(SCENE_REQUEST, ()); } -pub(super) fn save_scene_system(world: &mut World) { +pub(super) fn save_scene_system(world: &mut World) -> Result<(), String> { wasm::read_buffer!(SCENE_REQUEST, |_| { let mut scene = DynamicScene::from_world(world); let type_registry = world.resource::(); @@ -48,29 +48,25 @@ pub(super) fn save_scene_system(world: &mut World) { }) .collect(); - match scene.serialize_ron(type_registry) { - Ok(serialized) => { - let Some(window) = world.iter_entities().find_map(|ent| { - if ent.contains::() { - ent.get::() - } else { - None - } - }) else { - warn!("Failed to get window from &mut World"); - return; - }; + let serialized = scene + .serialize_ron(type_registry) + .map_err(|err| format!("{err}"))?; - if let Err(err) = wasm::dispatch_to_js(window, "scene-download-ready", &serialized) - { - error!("{err}"); + let window = world + .iter_entities() + .find_map(|ent| { + if ent.contains::() { + ent.get::() + } else { + None } - } - Err(err) => { - error!("{err}"); - } - } + }) + .ok_or_else(|| "Failed to get Window from &mut World".to_string())?; + + wasm::dispatch_to_js(window, "scene-download-ready", &serialized)?; }); + + Ok(()) } #[wasm_bindgen(typescript_custom_section)]