修正图集切片读取侧枚举判断

恢复校验和测试筛选统一识别 Icon 资源 kind。

部分登记探测限定在图集切片路径,避免误判普通图标。
This commit is contained in:
2026-09-15 19:48:48 +08:00
parent f0a62c6306
commit 8b007c637d
@@ -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::<std::collections::BTreeMap<_, _>>();
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,