summaryrefslogtreecommitdiff
path: root/engine/src/model
diff options
context:
space:
mode:
Diffstat (limited to 'engine/src/model')
-rw-r--r--engine/src/model/asset.rs11
1 files changed, 9 insertions, 2 deletions
diff --git a/engine/src/model/asset.rs b/engine/src/model/asset.rs
index ff5eddf..af3e1b2 100644
--- a/engine/src/model/asset.rs
+++ b/engine/src/model/asset.rs
@@ -42,15 +42,19 @@ impl Default for Settings
pub fn add_importers(assets: &mut Assets)
{
- assets.set_importer(["obj"], import_wavefront_obj_asset);
+ assets.set_importer::<Spec, Settings, Error>(import);
}
-fn import_wavefront_obj_asset(
+fn import(
asset_submitter: &mut AssetSubmitter<'_>,
path: &Path,
settings: Option<&Settings>,
) -> Result<(), Error>
{
+ if path.extension().is_none_or(|ext| ext != "obj") {
+ return Err(Error::UnsupportedFileType);
+ }
+
let settings = match settings {
Some(settings) => settings,
None => &Settings::default(),
@@ -107,6 +111,9 @@ fn import_wavefront_obj_asset(
#[derive(Debug, thiserror::Error)]
enum Error
{
+ #[error("File type is unsupported")]
+ UnsupportedFileType,
+
#[error("Invalid path '{}'", .0.display())]
InvalidPath(PathBuf),