修正陶泥儿运行态图片筛选残留的旧 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:
@@ -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/"))
|
||||
|
||||
Reference in New Issue
Block a user