diff --git a/apps/ai-game-creator-shell/src-tauri/src/agent/generation/canvas_generation.rs b/apps/ai-game-creator-shell/src-tauri/src/agent/generation/canvas_generation.rs index 598274053..256076602 100644 --- a/apps/ai-game-creator-shell/src-tauri/src/agent/generation/canvas_generation.rs +++ b/apps/ai-game-creator-shell/src-tauri/src/agent/generation/canvas_generation.rs @@ -6852,7 +6852,7 @@ fn existing_platform_art_slice_registrations_are_complete( return Ok(false); }; if candidates.next().is_some() - || asset.kind != "art-spritesheet-slice" + || asset.kind != GameCreationAppAssetKind::Icon || asset.media_type != "image/png" || asset.source.kind != GameCreationAppAssetSourceKind::Canvas || asset.source.generation_route.as_deref() @@ -6941,10 +6941,12 @@ pub(in crate::agent) fn register_existing_platform_art_slices_at( .clone() .filter(|value| !value.trim().is_empty()) .ok_or_else(|| "旧项目图集源资源缺少 sourceResourceId".to_string())?; - let has_partial_or_invalid_registration = manifest - .assets - .iter() - .any(|asset| asset.kind == "art-spritesheet-slice"); + let has_partial_or_invalid_registration = manifest.assets.iter().any(|asset| { + asset.kind == GameCreationAppAssetKind::Icon + && asset + .local_path + .starts_with("assets/art-spritesheet-slices/") + }); let receipt_path = resolve_local_project_path(root, ".agent/runtime/art-spritesheet-contract.json")?; @@ -12053,7 +12055,7 @@ mod canvas_generation_tests { let first_slice_ids = registered .assets .iter() - .filter(|asset| asset.kind == "art-spritesheet-slice") + .filter(|asset| asset.kind == GameCreationAppAssetKind::Icon) .map(|asset| { assert_eq!(asset.source.kind, GameCreationAppAssetSourceKind::Canvas); assert_eq!( @@ -12087,7 +12089,7 @@ mod canvas_generation_tests { .clone(); mutate_manifest_at(root, |manifest| { manifest.assets.retain(|asset| { - asset.kind != "art-spritesheet-slice" || asset.local_path == retained_path + asset.kind != GameCreationAppAssetKind::Icon || asset.local_path == retained_path }); Ok(()) }) @@ -12101,7 +12103,7 @@ mod canvas_generation_tests { let backfilled_slice_ids = backfilled .assets .iter() - .filter(|asset| asset.kind == "art-spritesheet-slice") + .filter(|asset| asset.kind == GameCreationAppAssetKind::Icon) .map(|asset| (asset.local_path.clone(), asset.id.clone())) .collect::>(); assert_eq!(backfilled_slice_ids.len(), 4); @@ -12150,7 +12152,7 @@ mod canvas_generation_tests { let replaced_slice_ids = replaced .assets .iter() - .filter(|asset| asset.kind == "art-spritesheet-slice") + .filter(|asset| asset.kind == GameCreationAppAssetKind::Icon) .map(|asset| { assert_eq!( asset.source.reference_resource_ids, @@ -12244,7 +12246,7 @@ mod canvas_generation_tests { assert!(after .assets .iter() - .all(|asset| asset.kind != "art-spritesheet-slice")); + .all(|asset| asset.kind != GameCreationAppAssetKind::Icon)); register_local_asset_entry( root,