修正陶泥儿运行态图片筛选残留的旧 kind 字面量

- direct_runtime/mod.rs:`direct_game_sources_referenced_taonier_assets` 的 manifest 兜底由 `art-spritesheet | art-spritesheet-slice | game-background` 改为 `IconSpritesheet | Icon | Scene`,恢复对项目自定义图集与背景的收录。
- direct_runtime/mod.rs:同处与 `direct_registered_taonier_runtime_image_paths` 的「切片不得绕过严格校验」排除条件改用 `GameCreationAppAssetKind::Icon`,并顺手把 `icon-spec` 比较改为枚举成员。
- 理由:kind 收紧为枚举后 `as_str()` 只会返回 canonical 名,旧字面量恒不命中,兜底筛选与切片排除同时失效。
This commit is contained in:
2026-09-16 23:13:21 +08:00
parent 9dccf5318e
commit 41930b858e
@@ -2822,15 +2822,17 @@ fn direct_game_sources_referenced_taonier_assets(root: &Path) -> Vec<String> {
.into_iter()
.filter(|asset| {
matches!(
asset.kind.as_str(),
"art-spritesheet" | "art-spritesheet-slice" | "game-background"
asset.kind,
GameCreationAppAssetKind::IconSpritesheet
| GameCreationAppAssetKind::Icon
| GameCreationAppAssetKind::Scene
) && asset.media_type == "image/png"
&& asset.source.kind == GameCreationAppAssetSourceKind::Canvas
&& asset.local_path.starts_with("assets/")
// Canonical slices are admitted above only after the
// full slice manifest/receipt/content validation. Do
// not let this generic manifest fallback bypass it.
&& !(asset.kind == "art-spritesheet-slice"
&& !(asset.kind == GameCreationAppAssetKind::Icon
&& asset
.local_path
.starts_with("assets/art-spritesheet-slices/"))
@@ -2861,7 +2863,7 @@ fn direct_registered_taonier_runtime_image_paths(root: &Path) -> Vec<String> {
.iter()
.filter(|asset| {
asset.media_type.starts_with("image/")
&& asset.kind != "icon-spec"
&& asset.kind != GameCreationAppAssetKind::IconSpec
&& asset.source.kind == GameCreationAppAssetSourceKind::Canvas
&& asset
.source
@@ -2873,7 +2875,7 @@ fn direct_registered_taonier_runtime_image_paths(root: &Path) -> Vec<String> {
// manifest/receipt/content validation. This generic fallback
// must not re-admit a slice whose bytes no longer match the
// registered receipt.
&& !(asset.kind == "art-spritesheet-slice"
&& !(asset.kind == GameCreationAppAssetKind::Icon
&& asset
.local_path
.starts_with("assets/art-spritesheet-slices/"))