From 05859d6f9c614f9c6b8e01bf1b4f8d21782e0e0b Mon Sep 17 00:00:00 2001 From: demenik Date: Wed, 26 Nov 2025 22:17:25 +0100 Subject: [PATCH] refactor: Move get_internal_path() out of savegame feature --- src/features/savegame/components.rs | 13 +------------ src/lib.rs | 1 + src/prelude.rs | 1 + src/utils/mod.rs | 1 + src/utils/path.rs | 12 ++++++++++++ 5 files changed, 16 insertions(+), 12 deletions(-) create mode 100644 src/utils/mod.rs create mode 100644 src/utils/path.rs diff --git a/src/features/savegame/components.rs b/src/features/savegame/components.rs index 6452f22..be3791f 100644 --- a/src/features/savegame/components.rs +++ b/src/features/savegame/components.rs @@ -1,23 +1,12 @@ use crate::prelude::*; -use directories::ProjectDirs; use std::path::PathBuf; #[derive(Resource)] pub struct SavegamePath(pub PathBuf); impl SavegamePath { - pub fn get_project_path() -> Option { - let project_dirs = ProjectDirs::from("de", "demenik", "pomomon-garden"); - - if let Some(dirs) = project_dirs { - Some(dirs.data_local_dir().to_path_buf()) - } else { - None - } - } - pub fn new(name: &str) -> Self { - let base_path = Self::get_project_path().unwrap_or_else(|| { + let base_path = get_internal_path().unwrap_or_else(|| { println!( "Could not determine platform-specific save directory. Falling back to `./saves/" ); diff --git a/src/lib.rs b/src/lib.rs index e570eb4..190c8cc 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,2 +1,3 @@ pub mod features; pub mod prelude; +pub mod utils; diff --git a/src/prelude.rs b/src/prelude.rs index ed5c227..43cb34e 100644 --- a/src/prelude.rs +++ b/src/prelude.rs @@ -15,6 +15,7 @@ pub use crate::features::{ savegame::components::SavegamePath, ui::components::*, }; +pub use crate::utils::path::get_internal_path; pub use bevy::prelude::*; pub use bevy_aseprite_ultra::prelude::*; pub use serde::{Deserialize, Serialize}; diff --git a/src/utils/mod.rs b/src/utils/mod.rs new file mode 100644 index 0000000..4da9789 --- /dev/null +++ b/src/utils/mod.rs @@ -0,0 +1 @@ +pub mod path; diff --git a/src/utils/path.rs b/src/utils/path.rs new file mode 100644 index 0000000..22d3cfb --- /dev/null +++ b/src/utils/path.rs @@ -0,0 +1,12 @@ +use directories::ProjectDirs; +use std::path::PathBuf; + +pub fn get_internal_path() -> Option { + let project_dirs = ProjectDirs::from("de", "demenik", "pomomon-garden"); + + if let Some(dirs) = project_dirs { + Some(dirs.data_local_dir().to_path_buf()) + } else { + None + } +}